From adfa563225139450cc03e1896eafbf060e3333a0 Mon Sep 17 00:00:00 2001 From: Tasso Date: Tue, 16 Sep 2025 18:13:44 -0300 Subject: [PATCH 01/20] Change manifest exports --- packages/i18n/package.json | 23 ++++++++++-- packages/i18n/src/scripts/build.mjs | 56 ++++++++++++++--------------- 2 files changed, 48 insertions(+), 31 deletions(-) diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 770e66060a219..93e43a12ee146 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -2,9 +2,26 @@ "name": "@rocket.chat/i18n", "version": "1.10.0", "private": true, - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "typings": "./dist/index.d.ts", + "type": "module", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.js", + "types": "./dist/esm/index.d.ts" + }, + "./dist/resources": { + "import": "./dist/resources.mjs", + "require": "./dist/resources.js", + "types": "./dist/resources.d.ts" + }, + "./dist/languages": { + "import": "./dist/languages.mjs", + "require": "./dist/languages.js", + "types": "./dist/languages.d.ts" + } + }, + "main": "./dist/cjs/index.js", + "types": "./dist/esm/index.d.ts", "files": [ "/dist" ], diff --git a/packages/i18n/src/scripts/build.mjs b/packages/i18n/src/scripts/build.mjs index 5609adec3dad4..7857e6df76b3f 100644 --- a/packages/i18n/src/scripts/build.mjs +++ b/packages/i18n/src/scripts/build.mjs @@ -105,34 +105,34 @@ exports.default = ${languagesSerialized};`, export default languages;`, ); - // ./index - await writeFile(join(distDirectory, 'index.mjs'), `export * from './esm/index.js';`); - - await writeFile( - join(distDirectory, 'index.js'), - `"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./cjs/index"), exports);`, - ); - - await writeFile(join(distDirectory, 'index.d.ts'), `export * from './esm/index';`); + // // ./index + // await writeFile(join(distDirectory, 'index.mjs'), `export * from './esm/index.js';`); + + // await writeFile( + // join(distDirectory, 'index.js'), + // `"use strict"; + // var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + // if (k2 === undefined) k2 = k; + // var desc = Object.getOwnPropertyDescriptor(m, k); + // if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + // desc = { enumerable: true, get: function() { return m[k]; } }; + // } + // Object.defineProperty(o, k2, desc); + // }) : (function(o, m, k, k2) { + // if (k2 === undefined) k2 = k; + // o[k2] = m[k]; + // })); + // var __exportStar = (this && this.__exportStar) || function(m, exports) { + // for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + // }; + // var __importDefault = (this && this.__importDefault) || function (mod) { + // return (mod && mod.__esModule) ? mod : { "default": mod }; + // }; + // Object.defineProperty(exports, "__esModule", { value: true }); + // __exportStar(require("./cjs/index"), exports);`, + // ); + + // await writeFile(join(distDirectory, 'index.d.ts'), `export * from './esm/index';`); } if (import.meta.url.startsWith('file:')) { From 28b99921b23c493759558453ad533729ce85f2ba Mon Sep 17 00:00:00 2001 From: Tasso Date: Tue, 16 Sep 2025 19:59:38 -0300 Subject: [PATCH 02/20] Include .mts and .cts files in linting --- packages/eslint-config/standard/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/eslint-config/standard/index.js b/packages/eslint-config/standard/index.js index d0d3050c1c8e9..10c32e706f8f4 100644 --- a/packages/eslint-config/standard/index.js +++ b/packages/eslint-config/standard/index.js @@ -7,7 +7,7 @@ module.exports = { settings: { 'import/resolver': { node: { - extensions: ['.js', '.ts', '.tsx'], + extensions: ['.js', '.ts', '.tsx', '.cts', '.mts'], }, }, }, @@ -16,7 +16,7 @@ module.exports = { }, overrides: [ { - files: ['**/*.ts', '**/*.tsx'], + files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'], extends: [ 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/eslint-recommended', @@ -120,7 +120,7 @@ module.exports = { settings: { 'import/resolver': { node: { - extensions: ['.js', '.ts', '.tsx'], + extensions: ['.js', '.ts', '.tsx', '.cts', '.mts'], }, typescript: {}, }, From 8eb4681e8dd0f2f9b27b930edbb5889302ea7618 Mon Sep 17 00:00:00 2001 From: Tasso Date: Tue, 16 Sep 2025 20:00:36 -0300 Subject: [PATCH 03/20] Convert scripts to TypeScript --- packages/i18n/package.json | 6 +- packages/i18n/src/index.ts | 7 +- .../i18n/src/scripts/{build.mjs => build.mts} | 50 ++++----------- .../scripts/{normalize.mjs => normalize.mts} | 64 ++++++++++--------- packages/i18n/src/scripts/normalize.spec.mjs | 2 +- packages/i18n/tsconfig.cjs.json | 9 +-- packages/i18n/tsconfig.esm.json | 6 +- packages/i18n/tsconfig.json | 10 ++- 8 files changed, 70 insertions(+), 84 deletions(-) rename packages/i18n/src/scripts/{build.mjs => build.mts} (71%) rename packages/i18n/src/scripts/{normalize.mjs => normalize.mts} (58%) diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 93e43a12ee146..2ac612d3be270 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -28,9 +28,9 @@ "scripts": { ".:build:cjs": "tsc -p tsconfig.cjs.json", ".:build:esm": "tsc -p tsconfig.esm.json", - "build": "node ./src/scripts/build.mjs && run .:build:esm && run .:build:cjs", - "lint": "eslint --ext .mjs,.js,.jsx,.ts,.tsx .", - "lint:fix": "eslint --ext .mjs,.js,.jsx,.ts,.tsx . --fix", + "build": "node --experimental-transform-types ./src/scripts/build.mts && run .:build:esm && run .:build:cjs", + "lint": "eslint .", + "lint:fix": "eslint . --fix", "test": "jest", "testunit": "jest" }, diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index bd0aa3ac4de7c..2c6d1445bf378 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -1,8 +1,7 @@ import { isObject } from '@rocket.chat/tools'; -import type i18next from 'i18next'; -import type { TOptions } from 'i18next'; +import type { i18n, TOptions } from 'i18next'; -import type { RocketchatI18nKeys } from '../resources'; +import type { RocketchatI18nKeys } from '../resources.ts'; export type { RocketchatI18nKeys }; @@ -128,7 +127,7 @@ export const availableTranslationNamespaces = Object.keys(namespacesMap) as Tran export const defaultTranslationNamespace: TranslationNamespace = 'core'; export const applyCustomTranslations = ( - i18n: typeof i18next, + i18n: i18n, parsedCustomTranslations: Record>, { namespaces, languages }: { namespaces?: string[]; languages?: string[] } = {}, ) => { diff --git a/packages/i18n/src/scripts/build.mjs b/packages/i18n/src/scripts/build.mts similarity index 71% rename from packages/i18n/src/scripts/build.mjs rename to packages/i18n/src/scripts/build.mts index 7857e6df76b3f..1434f383b7837 100644 --- a/packages/i18n/src/scripts/build.mjs +++ b/packages/i18n/src/scripts/build.mts @@ -2,7 +2,7 @@ import { mkdir, readdir, readFile, rm, writeFile } from 'node:fs/promises'; import { basename, dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; -import { normalizeI18nInterpolations } from './normalize.mjs'; +import { normalizeI18nInterpolations } from './normalize.mts'; export async function build() { const rootDirectory = join(dirname(fileURLToPath(import.meta.url)), '..', '..'); @@ -19,7 +19,7 @@ export async function build() { ); // normalize the interpolations and collect the stats - const countsByNormalization = { + const countsByNormalization: Record = { __: 0, sprintf: 0, i18nextComponentsArray: 0, @@ -31,7 +31,7 @@ export async function build() { // const languageLength = resources.reduce((max, resource) => Math.max(max, resource.language.length), 0); // const statKeyLength = Object.keys(countsByNormalization).reduce((max, key) => Math.max(max, key.length), 0); for (const resource of resources) { - resource.content = normalizeI18nInterpolations(resource.content, resource.language, (statName) => { + resource.content = normalizeI18nInterpolations(resource.content, resource.language, (statName: string) => { countsByNormalization[statName]++; // console.log(`${statName.padEnd(statKeyLength)} ${resource.language.padStart(languageLength)} ${JSON.stringify(record.key)}`); }); @@ -57,12 +57,15 @@ export async function build() { } // ./resources - const allResources = resources.reduce((acc, resource) => { - return { - ...acc, - [resource.language]: resource.content, - }; - }, {}); + const allResources = resources.reduce( + (acc, resource) => { + return { + ...acc, + [resource.language]: resource.content, + }; + }, + {} as Record>, + ); const allResourcesSerialized = JSON.stringify(allResources, null, 2); await writeFile(join(distDirectory, 'resources.mjs'), `export default ${allResourcesSerialized};`); @@ -104,35 +107,6 @@ exports.default = ${languagesSerialized};`, `declare const languages: string[]; export default languages;`, ); - - // // ./index - // await writeFile(join(distDirectory, 'index.mjs'), `export * from './esm/index.js';`); - - // await writeFile( - // join(distDirectory, 'index.js'), - // `"use strict"; - // var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - // if (k2 === undefined) k2 = k; - // var desc = Object.getOwnPropertyDescriptor(m, k); - // if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - // desc = { enumerable: true, get: function() { return m[k]; } }; - // } - // Object.defineProperty(o, k2, desc); - // }) : (function(o, m, k, k2) { - // if (k2 === undefined) k2 = k; - // o[k2] = m[k]; - // })); - // var __exportStar = (this && this.__exportStar) || function(m, exports) { - // for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); - // }; - // var __importDefault = (this && this.__importDefault) || function (mod) { - // return (mod && mod.__esModule) ? mod : { "default": mod }; - // }; - // Object.defineProperty(exports, "__esModule", { value: true }); - // __exportStar(require("./cjs/index"), exports);`, - // ); - - // await writeFile(join(distDirectory, 'index.d.ts'), `export * from './esm/index';`); } if (import.meta.url.startsWith('file:')) { diff --git a/packages/i18n/src/scripts/normalize.mjs b/packages/i18n/src/scripts/normalize.mts similarity index 58% rename from packages/i18n/src/scripts/normalize.mjs rename to packages/i18n/src/scripts/normalize.mts index e008b0aae329b..3166d56450808 100644 --- a/packages/i18n/src/scripts/normalize.mjs +++ b/packages/i18n/src/scripts/normalize.mts @@ -13,41 +13,39 @@ const replacements = { }, }; -const replaceI18nInterpolation = (translation) => { - if (!translation) { - return [undefined, false]; - } +const replaceI18nInterpolation = (translation: string) => { + if (!translation) return [undefined, false] as const; const exist = translation?.match(replacements.__.regex); - return [translation?.replace(replacements.__.regex, replacements.__.replacement), Boolean(exist)]; + return [translation?.replace(replacements.__.regex, replacements.__.replacement), Boolean(exist)] as const; }; -const replaceSprintfInterpolation = (translation) => { +const replaceSprintfInterpolation = (translation: string) => { const exist = translation?.match(replacements.sprintf.regex); - - return [undefined, Boolean(exist)]; + return [undefined, Boolean(exist)] as const; }; -const replaceI18nextComponentsArrayInterpolation = (translation) => { +const replaceI18nextComponentsArrayInterpolation = (translation: string) => { const exist = translation?.match(replacements.i18nextComponentsArray.regex); - return [undefined, Boolean(exist)]; + return [undefined, Boolean(exist)] as const; }; -const replaceNullValuesInterpolation = (translation) => { - return [undefined, translation === null]; +const replaceNullValuesInterpolation = (translation: string) => { + return [undefined, translation === null] as const; }; -const generator = (fn, id) => (dictionary, language, cb) => { - return Object.entries(dictionary).reduce((dic, [key, value]) => { - const [replacement, exist] = fn(value); - if (exist) { - cb?.(id, { language, key }); - } - if (replacement) { - dic[key] = replacement; - } - return dic; - }, dictionary); -}; +const generator = + (fn: (translation: string) => readonly [string | undefined, boolean], id: string) => + (dictionary: Record, language: string, cb?: (id: string, info: { language: string; key: string }) => void) => + Object.entries(dictionary).reduce((dic, [key, value]) => { + const [replacement, exist] = fn(value); + if (exist) { + cb?.(id, { language, key }); + } + if (replacement) { + dic[key] = replacement; + } + return dic; + }, dictionary); const replaceI18nInterpolations = generator(replaceI18nInterpolation, '__'); @@ -57,7 +55,11 @@ const replaceI18nextComponentsArrayInterpolations = generator(replaceI18nextComp const replaceNullValues = generator(replaceNullValuesInterpolation, 'nullValues'); -const replaceNestedPlurals = (dictionary, language, cb) => { +const replaceNestedPlurals = ( + dictionary: Record, + language: string, + cb: (statName: string, info: { language: string; key: string }) => void, +) => { const entries = []; const plurals = ['zero', 'one', 'two', 'few', 'many', 'other']; @@ -81,14 +83,18 @@ const replaceNestedPlurals = (dictionary, language, cb) => { return Object.fromEntries(entries); }; -export const pipe = - (...fns) => - (y, ...x) => +const pipe = + (...fns: ((y: Y, ...x: X) => Y)[]) => + (y: Y, ...x: X) => fns.reduce((v, f) => { return f(v, ...x); }, y); -export const normalizeI18nInterpolations = (dictionary, language, cb) => { +export const normalizeI18nInterpolations = ( + dictionary: Record, + language: string, + cb: (statName: string, info: { language: string; key: string }) => void, +) => { const result = pipe( replaceNestedPlurals, replaceNullValues, diff --git a/packages/i18n/src/scripts/normalize.spec.mjs b/packages/i18n/src/scripts/normalize.spec.mjs index 14f7c64827748..d58537c1bdedb 100644 --- a/packages/i18n/src/scripts/normalize.spec.mjs +++ b/packages/i18n/src/scripts/normalize.spec.mjs @@ -1,4 +1,4 @@ -import { normalizeI18nInterpolations } from './normalize.mjs'; +import { normalizeI18nInterpolations } from './normalize.mts'; describe('normalizeI18nInterpolations', () => { it('should return the same object if there are no interpolations', async () => { diff --git a/packages/i18n/tsconfig.cjs.json b/packages/i18n/tsconfig.cjs.json index b1c0c8a2f589d..3d83220f43817 100644 --- a/packages/i18n/tsconfig.cjs.json +++ b/packages/i18n/tsconfig.cjs.json @@ -3,10 +3,11 @@ "compilerOptions": { "rootDir": "./src", "outDir": "./dist/cjs", - "declaration": true, - "target": "ESNext", - "module": "CommonJS" + "declaration": false, + "verbatimModuleSyntax": false, + "module": "CommonJS", + "moduleResolution": "node10" }, "include": ["./src/**/*"], - "exclude": ["node_modules", "**/*.spec.ts"] + "exclude": ["node_modules", "**/*.spec.ts", "./src/scripts/**/*"] } diff --git a/packages/i18n/tsconfig.esm.json b/packages/i18n/tsconfig.esm.json index b106dad8b7241..5e121f924c9b8 100644 --- a/packages/i18n/tsconfig.esm.json +++ b/packages/i18n/tsconfig.esm.json @@ -3,10 +3,8 @@ "compilerOptions": { "rootDir": "./src", "outDir": "./dist/esm", - "declaration": true, - "target": "ESNext", - "module": "ESNext" + "declaration": true }, "include": ["./src/**/*"], - "exclude": ["node_modules", "**/*.spec.ts"] + "exclude": ["node_modules", "**/*.spec.ts", "./src/scripts/**/*"] } diff --git a/packages/i18n/tsconfig.json b/packages/i18n/tsconfig.json index 86d206e838099..968cc333aeb19 100644 --- a/packages/i18n/tsconfig.json +++ b/packages/i18n/tsconfig.json @@ -2,11 +2,19 @@ "extends": "@rocket.chat/tsconfig/base.json", "compilerOptions": { "target": "es2024", + "module": "node18", + "moduleResolution": "node16", + "rewriteRelativeImportExtensions": true, + "erasableSyntaxOnly": true, + "verbatimModuleSyntax": true, + "esModuleInterop": true, "rootDirs": ["./src", "./"], "outDir": "./dist", "declaration": true, + "allowJs": false, + "lib": ["ES2024", "ESNext.Collection"], "paths": { - "../resources": ["./src/resources"], + "../resources": ["./src/resources"] } }, "include": ["./src/**/*", "./jest.config.ts"] From 56a2fb8767b0a738f76cfdeed62de06e25489843 Mon Sep 17 00:00:00 2001 From: Tasso Date: Wed, 17 Sep 2025 02:44:15 -0300 Subject: [PATCH 04/20] Use tsx to run Mocha tests --- apps/meteor/.mocharc.base.json | 2 +- apps/meteor/.mocharc.definition.js | 14 -------------- apps/meteor/.mocharc.js | 14 -------------- apps/meteor/package.json | 9 +++++---- 4 files changed, 6 insertions(+), 33 deletions(-) diff --git a/apps/meteor/.mocharc.base.json b/apps/meteor/.mocharc.base.json index e81bd7ee4f7c5..b08132183ae2c 100644 --- a/apps/meteor/.mocharc.base.json +++ b/apps/meteor/.mocharc.base.json @@ -3,7 +3,7 @@ "reporter": "spec", "extension": ["js", "ts", "tsx"], "require": [ - "ts-node/register", + "tsx", "./tests/setup/chaiPlugins.ts" ], "watch-files": [ diff --git a/apps/meteor/.mocharc.definition.js b/apps/meteor/.mocharc.definition.js index eee0d51b4cbce..faeef22ddabd4 100644 --- a/apps/meteor/.mocharc.definition.js +++ b/apps/meteor/.mocharc.definition.js @@ -6,20 +6,6 @@ const base = require('./.mocharc.base.json'); -/** - * Mocha will run `ts-node` without doing type checking to speed-up the tests. It should be fine as `npm run typecheck` - * covers test files too. - */ - -Object.assign( - process.env, - { - TS_NODE_FILES: true, - TS_NODE_TRANSPILE_ONLY: true, - }, - process.env, -); - module.exports = { ...base, // see https://github.com/mochajs/mocha/issues/3916 require: [...base.require], diff --git a/apps/meteor/.mocharc.js b/apps/meteor/.mocharc.js index 78a2a22611a5b..6001bb77b7e58 100644 --- a/apps/meteor/.mocharc.js +++ b/apps/meteor/.mocharc.js @@ -6,20 +6,6 @@ const base = require('./.mocharc.base.json'); -/** - * Mocha will run `ts-node` without doing type checking to speed-up the tests. It should be fine as `npm run typecheck` - * covers test files too. - */ - -Object.assign( - process.env, - { - TS_NODE_FILES: true, - TS_NODE_TRANSPILE_ONLY: true, - }, - process.env, -); - module.exports = { ...base, // see https://github.com/mochajs/mocha/issues/3916 exit: true, diff --git a/apps/meteor/package.json b/apps/meteor/package.json index 7687c384abfbe..6215ee2d2fc64 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -38,10 +38,10 @@ "test:e2e:nyc": "nyc report --reporter=lcov", "testapi": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' mocha --config ./.mocharc.api.js", "testunit": "yarn .testunit:definition && yarn .testunit:client && yarn .testunit:server:cov", - ".testunit:server": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' mocha --config ./.mocharc.js", - ".testunit:server:cov": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' nyc -r text -r lcov mocha --config ./.mocharc.js", - ".testunit:client": "jest", - ".testunit:definition": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' mocha --config ./.mocharc.definition.js", + ".testunit:server": "mocha --config ./.mocharc.js", + ".testunit:server:cov": "nyc -r text -r lcov mocha --config ./.mocharc.js", + ".testunit:client": "TS_NODE_COMPILER_OPTIONS='{\"allowJs\": false}' jest", + ".testunit:definition": "mocha --config ./.mocharc.definition.js", "testunit-watch": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' mocha --watch --config ./.mocharc.js", "test": "yarn testunit && yarn testapi", "translation-diff": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/translation-diff.ts", @@ -218,6 +218,7 @@ "supports-color": "~7.2.0", "template-file": "^6.0.1", "ts-node": "^10.9.2", + "tsx": "~4.20.5", "typescript": "~5.9.2", "webpack": "~5.99.9" }, From 7b0b6060da2aa8b6db7a9533969987df26b0403a Mon Sep 17 00:00:00 2001 From: Tasso Date: Wed, 17 Sep 2025 02:45:09 -0300 Subject: [PATCH 05/20] Make `@rocket.chat/jest-presets` a ESM package --- packages/jest-presets/package.json | 14 ++++++++++++++ packages/jest-presets/src/client/index.ts | 2 +- packages/jest-presets/tsconfig.json | 5 ++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/jest-presets/package.json b/packages/jest-presets/package.json index 45d5731765d58..bf740568c25df 100644 --- a/packages/jest-presets/package.json +++ b/packages/jest-presets/package.json @@ -7,6 +7,20 @@ "build": "tsc", "lint": "eslint ." }, + "type": "module", + "exports": { + "./server": { + "default": "./dist/server/index.js", + "types": "./dist/server/index.d.ts" + }, + "./server/jest-preset": "./dist/server/jest-preset.js", + "./client": { + "default": "./dist/client/index.js", + "types": "./dist/client/index.d.ts" + }, + "./client/jest-preset": "./dist/client/jest-preset.js", + "./client/jest-setup": "./dist/client/jest-setup.js" + }, "files": [ "/dist", "/client", diff --git a/packages/jest-presets/src/client/index.ts b/packages/jest-presets/src/client/index.ts index 4194d7ebc206b..2a14559a11ca9 100644 --- a/packages/jest-presets/src/client/index.ts +++ b/packages/jest-presets/src/client/index.ts @@ -6,5 +6,5 @@ const preset = '@rocket.chat/jest-presets/client'; export default { preset, - setupFilesAfterEnv: [`${preset}/jest-setup.js`], + setupFilesAfterEnv: [`${preset}/jest-setup`], } satisfies Config; diff --git a/packages/jest-presets/tsconfig.json b/packages/jest-presets/tsconfig.json index 596c8c70ad5c2..8dc6948852e82 100644 --- a/packages/jest-presets/tsconfig.json +++ b/packages/jest-presets/tsconfig.json @@ -3,7 +3,10 @@ "compilerOptions": { "rootDir": "./src", "outDir": "./dist", - "declaration": true + "declaration": true, + "target": "ES2024", + "module": "nodenext", + "moduleResolution": "nodenext", }, "include": ["./src"] } From 0c6eb465d1b7d94d226c0ed8fe7d16177e1aa84d Mon Sep 17 00:00:00 2001 From: Tasso Date: Wed, 17 Sep 2025 02:45:31 -0300 Subject: [PATCH 06/20] Remove unnecessary `allowJs` directive on tsconfigs --- ee/apps/account-service/tsconfig.json | 1 - ee/apps/authorization-service/tsconfig.json | 1 - ee/apps/ddp-streamer/tsconfig.json | 1 - ee/apps/omnichannel-transcript/tsconfig.json | 1 - ee/apps/presence-service/tsconfig.json | 1 - ee/apps/queue-worker/tsconfig.json | 1 - ee/apps/stream-hub-service/tsconfig.json | 1 - packages/base64/package.json | 3 +- packages/base64/tsconfig.json | 1 - packages/random/package.json | 3 +- packages/random/tsconfig.json | 1 - packages/sha256/package.json | 3 +- packages/sha256/tsconfig.json | 1 - yarn.lock | 290 ++++++++++++++++++- 14 files changed, 295 insertions(+), 14 deletions(-) diff --git a/ee/apps/account-service/tsconfig.json b/ee/apps/account-service/tsconfig.json index ed0defa8cc0d9..fe5d33c19430d 100644 --- a/ee/apps/account-service/tsconfig.json +++ b/ee/apps/account-service/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@rocket.chat/tsconfig/server.json", "compilerOptions": { - "allowJs": true, // TODO remove asap "incremental": true, /* Strict Type-Checking Options */ diff --git a/ee/apps/authorization-service/tsconfig.json b/ee/apps/authorization-service/tsconfig.json index b1b8d22bebdd5..04f7fc0034d1c 100644 --- a/ee/apps/authorization-service/tsconfig.json +++ b/ee/apps/authorization-service/tsconfig.json @@ -2,7 +2,6 @@ "extends": "@rocket.chat/tsconfig/server.json", "compilerOptions": { "strictPropertyInitialization": false, // TODO: Remove this line - "allowJs": true, // TODO: Remove this line "outDir": "./dist" }, "files": ["./src/service.ts"], diff --git a/ee/apps/ddp-streamer/tsconfig.json b/ee/apps/ddp-streamer/tsconfig.json index 376c816e3ec77..584d735af29e5 100644 --- a/ee/apps/ddp-streamer/tsconfig.json +++ b/ee/apps/ddp-streamer/tsconfig.json @@ -2,7 +2,6 @@ "extends": "@rocket.chat/tsconfig/server.json", "compilerOptions": { "strictPropertyInitialization": false, // TODO: Remove this line - "allowJs": true, // TODO: Remove this line "outDir": "./dist" }, "include": ["./src/**/*", "./definition", "../../../apps/meteor/definition/externals/meteor/rocketchat-streamer.d.ts"], diff --git a/ee/apps/omnichannel-transcript/tsconfig.json b/ee/apps/omnichannel-transcript/tsconfig.json index edbb10a4ebf14..6c7f2d916a732 100644 --- a/ee/apps/omnichannel-transcript/tsconfig.json +++ b/ee/apps/omnichannel-transcript/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@rocket.chat/tsconfig/server.json", "compilerOptions": { - "allowJs": true, "strictPropertyInitialization": false, "outDir": "./dist/ee/apps/omnichannel-transcript/src", }, diff --git a/ee/apps/presence-service/tsconfig.json b/ee/apps/presence-service/tsconfig.json index f1253d46ebf21..ff29a55af231c 100644 --- a/ee/apps/presence-service/tsconfig.json +++ b/ee/apps/presence-service/tsconfig.json @@ -2,7 +2,6 @@ "extends": "@rocket.chat/tsconfig/server.json", "compilerOptions": { "strictPropertyInitialization": false, // TODO: Remove this line - "allowJs": true, // TODO: Remove this line "outDir": "./dist/ee/apps/presence-service/src", }, "files": ["./src/service.ts"], diff --git a/ee/apps/queue-worker/tsconfig.json b/ee/apps/queue-worker/tsconfig.json index d3c2ffae9909e..c12ebd48bcdc0 100644 --- a/ee/apps/queue-worker/tsconfig.json +++ b/ee/apps/queue-worker/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@rocket.chat/tsconfig/server.json", "compilerOptions": { - "allowJs": true, "strictPropertyInitialization": false, "outDir": "./dist/ee/apps/queue-worker/src", }, diff --git a/ee/apps/stream-hub-service/tsconfig.json b/ee/apps/stream-hub-service/tsconfig.json index b1b8d22bebdd5..04f7fc0034d1c 100644 --- a/ee/apps/stream-hub-service/tsconfig.json +++ b/ee/apps/stream-hub-service/tsconfig.json @@ -2,7 +2,6 @@ "extends": "@rocket.chat/tsconfig/server.json", "compilerOptions": { "strictPropertyInitialization": false, // TODO: Remove this line - "allowJs": true, // TODO: Remove this line "outDir": "./dist" }, "files": ["./src/service.ts"], diff --git a/packages/base64/package.json b/packages/base64/package.json index 54ba191f4cf31..63ef17f0032aa 100644 --- a/packages/base64/package.json +++ b/packages/base64/package.json @@ -10,7 +10,8 @@ "dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput", "lint": "eslint .", "lint:fix": "eslint . --fix", - "test": "jest" + "test": "jest", + "testunit": "jest" }, "devDependencies": { "@babel/core": "~7.26.10", diff --git a/packages/base64/tsconfig.json b/packages/base64/tsconfig.json index 96e78b71ce200..de1626fb52adb 100644 --- a/packages/base64/tsconfig.json +++ b/packages/base64/tsconfig.json @@ -3,7 +3,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": "src", - "allowJs": true, "noImplicitAny": true, "noUnusedLocals": true, "noUnusedParameters": true, diff --git a/packages/random/package.json b/packages/random/package.json index 7eada0450fcd3..0af2859291edb 100644 --- a/packages/random/package.json +++ b/packages/random/package.json @@ -12,7 +12,8 @@ "typecheck": "tsc --noEmit", "lint": "eslint .", "lint:fix": "eslint . --fix", - "test": "jest" + "test": "jest", + "testunit": "jest" }, "devDependencies": { "@babel/core": "~7.26.10", diff --git a/packages/random/tsconfig.json b/packages/random/tsconfig.json index 96e78b71ce200..de1626fb52adb 100644 --- a/packages/random/tsconfig.json +++ b/packages/random/tsconfig.json @@ -3,7 +3,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": "src", - "allowJs": true, "noImplicitAny": true, "noUnusedLocals": true, "noUnusedParameters": true, diff --git a/packages/sha256/package.json b/packages/sha256/package.json index 6d158dd6c1a36..a537ddecb0f7f 100644 --- a/packages/sha256/package.json +++ b/packages/sha256/package.json @@ -11,7 +11,8 @@ "typecheck": "tsc --noEmit", "lint": "eslint .", "lint:fix": "eslint . --fix", - "test": "jest" + "test": "jest", + "testunit": "jest" }, "devDependencies": { "@babel/core": "~7.26.10", diff --git a/packages/sha256/tsconfig.json b/packages/sha256/tsconfig.json index 96e78b71ce200..de1626fb52adb 100644 --- a/packages/sha256/tsconfig.json +++ b/packages/sha256/tsconfig.json @@ -3,7 +3,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": "src", - "allowJs": true, "noImplicitAny": true, "noUnusedLocals": true, "noUnusedParameters": true, diff --git a/yarn.lock b/yarn.lock index 110651e883e89..fc0ee47f4e8d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2420,6 +2420,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/aix-ppc64@npm:0.25.9" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-arm64@npm:0.25.5" @@ -2427,6 +2434,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/android-arm64@npm:0.25.9" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-arm@npm:0.25.5" @@ -2434,6 +2448,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/android-arm@npm:0.25.9" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-x64@npm:0.25.5" @@ -2441,6 +2462,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/android-x64@npm:0.25.9" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/darwin-arm64@npm:0.25.5" @@ -2448,6 +2476,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/darwin-arm64@npm:0.25.9" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/darwin-x64@npm:0.25.5" @@ -2455,6 +2490,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/darwin-x64@npm:0.25.9" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/freebsd-arm64@npm:0.25.5" @@ -2462,6 +2504,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/freebsd-arm64@npm:0.25.9" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/freebsd-x64@npm:0.25.5" @@ -2469,6 +2518,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/freebsd-x64@npm:0.25.9" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-arm64@npm:0.25.5" @@ -2476,6 +2532,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-arm64@npm:0.25.9" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-arm@npm:0.25.5" @@ -2483,6 +2546,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-arm@npm:0.25.9" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-ia32@npm:0.25.5" @@ -2490,6 +2560,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-ia32@npm:0.25.9" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-loong64@npm:0.25.5" @@ -2497,6 +2574,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-loong64@npm:0.25.9" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-mips64el@npm:0.25.5" @@ -2504,6 +2588,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-mips64el@npm:0.25.9" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-ppc64@npm:0.25.5" @@ -2511,6 +2602,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-ppc64@npm:0.25.9" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-riscv64@npm:0.25.5" @@ -2518,6 +2616,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-riscv64@npm:0.25.9" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-s390x@npm:0.25.5" @@ -2525,6 +2630,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-s390x@npm:0.25.9" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-x64@npm:0.25.5" @@ -2532,6 +2644,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/linux-x64@npm:0.25.9" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/netbsd-arm64@npm:0.25.5" @@ -2539,6 +2658,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/netbsd-arm64@npm:0.25.9" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/netbsd-x64@npm:0.25.5" @@ -2546,6 +2672,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/netbsd-x64@npm:0.25.9" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/openbsd-arm64@npm:0.25.5" @@ -2553,6 +2686,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/openbsd-arm64@npm:0.25.9" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/openbsd-x64@npm:0.25.5" @@ -2560,6 +2700,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/openbsd-x64@npm:0.25.9" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/openharmony-arm64@npm:0.25.9" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/sunos-x64@npm:0.25.5" @@ -2567,6 +2721,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/sunos-x64@npm:0.25.9" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-arm64@npm:0.25.5" @@ -2574,6 +2735,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/win32-arm64@npm:0.25.9" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-ia32@npm:0.25.5" @@ -2581,6 +2749,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/win32-ia32@npm:0.25.9" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-x64@npm:0.25.5" @@ -2588,6 +2763,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.25.9": + version: 0.25.9 + resolution: "@esbuild/win32-x64@npm:0.25.9" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -8615,6 +8797,7 @@ __metadata: textarea-caret: "npm:^3.1.0" tinykeys: "npm:^1.4.0" ts-node: "npm:^10.9.2" + tsx: "npm:~4.20.5" tsyringe: "npm:^4.10.0" tweetnacl: "npm:^1.0.3" twilio: "npm:^5.4.2" @@ -19606,6 +19789,95 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:~0.25.0": + version: 0.25.9 + resolution: "esbuild@npm:0.25.9" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.9" + "@esbuild/android-arm": "npm:0.25.9" + "@esbuild/android-arm64": "npm:0.25.9" + "@esbuild/android-x64": "npm:0.25.9" + "@esbuild/darwin-arm64": "npm:0.25.9" + "@esbuild/darwin-x64": "npm:0.25.9" + "@esbuild/freebsd-arm64": "npm:0.25.9" + "@esbuild/freebsd-x64": "npm:0.25.9" + "@esbuild/linux-arm": "npm:0.25.9" + "@esbuild/linux-arm64": "npm:0.25.9" + "@esbuild/linux-ia32": "npm:0.25.9" + "@esbuild/linux-loong64": "npm:0.25.9" + "@esbuild/linux-mips64el": "npm:0.25.9" + "@esbuild/linux-ppc64": "npm:0.25.9" + "@esbuild/linux-riscv64": "npm:0.25.9" + "@esbuild/linux-s390x": "npm:0.25.9" + "@esbuild/linux-x64": "npm:0.25.9" + "@esbuild/netbsd-arm64": "npm:0.25.9" + "@esbuild/netbsd-x64": "npm:0.25.9" + "@esbuild/openbsd-arm64": "npm:0.25.9" + "@esbuild/openbsd-x64": "npm:0.25.9" + "@esbuild/openharmony-arm64": "npm:0.25.9" + "@esbuild/sunos-x64": "npm:0.25.9" + "@esbuild/win32-arm64": "npm:0.25.9" + "@esbuild/win32-ia32": "npm:0.25.9" + "@esbuild/win32-x64": "npm:0.25.9" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/fc174ae7f646ad413adb641c7e46f16be575e462ed209866b55d5954d382e5da839e3f3f89a8e42e2b71d48895cc636ba43523011249fe5ff9c63d8d39d3a364 + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -21594,7 +21866,7 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.10.1": +"get-tsconfig@npm:^4.10.1, get-tsconfig@npm:^4.7.5": version: 4.10.1 resolution: "get-tsconfig@npm:4.10.1" dependencies: @@ -35527,6 +35799,22 @@ __metadata: languageName: node linkType: hard +"tsx@npm:~4.20.5": + version: 4.20.5 + resolution: "tsx@npm:4.20.5" + dependencies: + esbuild: "npm:~0.25.0" + fsevents: "npm:~2.3.3" + get-tsconfig: "npm:^4.7.5" + dependenciesMeta: + fsevents: + optional: true + bin: + tsx: dist/cli.mjs + checksum: 10/161420678027c43d07b60b7b6b512cc67ff86ae3cca0641a19b0d3e742c5e262bca57034c4bff6d9346f9269e9ada24b6030e1d2bc890df5e1a9754865d3c08a + languageName: node + linkType: hard + "tsyringe@npm:^4.10.0": version: 4.10.0 resolution: "tsyringe@npm:4.10.0" From 9e6c0dfe18109c1fefe8c46b59461248de41316b Mon Sep 17 00:00:00 2001 From: Tasso Date: Sat, 20 Sep 2025 11:37:14 -0300 Subject: [PATCH 07/20] Overhaul manifest --- packages/i18n/package.json | 26 +++++++++---------- packages/i18n/src/index.cts | 1 + packages/i18n/src/index.ts | 2 +- packages/i18n/src/scripts/build.mts | 12 ++++----- ...{tsconfig.esm.json => tsconfig.build.json} | 2 +- packages/i18n/tsconfig.cjs.json | 13 ---------- packages/i18n/tsconfig.json | 3 --- 7 files changed, 20 insertions(+), 39 deletions(-) create mode 100644 packages/i18n/src/index.cts rename packages/i18n/{tsconfig.esm.json => tsconfig.build.json} (88%) delete mode 100644 packages/i18n/tsconfig.cjs.json diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 2ac612d3be270..a8881b99bc303 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -5,30 +5,28 @@ "type": "module", "exports": { ".": { - "import": "./dist/esm/index.js", - "require": "./dist/cjs/index.js", - "types": "./dist/esm/index.d.ts" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "./dist/resources": { - "import": "./dist/resources.mjs", - "require": "./dist/resources.js", - "types": "./dist/resources.d.ts" + "types": "./dist/resources.d.ts", + "import": "./dist/resources.js", + "require": "./dist/resources.cjs" }, "./dist/languages": { - "import": "./dist/languages.mjs", - "require": "./dist/languages.js", - "types": "./dist/languages.d.ts" + "types": "./dist/languages.d.ts", + "import": "./dist/languages.js", + "require": "./dist/languages.cjs" } }, - "main": "./dist/cjs/index.js", - "types": "./dist/esm/index.d.ts", + "main": "./dist/index.cjs", + "types": "./dist/index.d.ts", "files": [ "/dist" ], "scripts": { - ".:build:cjs": "tsc -p tsconfig.cjs.json", - ".:build:esm": "tsc -p tsconfig.esm.json", - "build": "node --experimental-transform-types ./src/scripts/build.mts && run .:build:esm && run .:build:cjs", + "build": "rm -rf dist && tsc -p tsconfig.build.json && node --experimental-transform-types ./src/scripts/build.mts", "lint": "eslint .", "lint:fix": "eslint . --fix", "test": "jest", diff --git a/packages/i18n/src/index.cts b/packages/i18n/src/index.cts new file mode 100644 index 0000000000000..ed39ab5dd7bed --- /dev/null +++ b/packages/i18n/src/index.cts @@ -0,0 +1 @@ +module.exports = require('./index.js'); diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index 2c6d1445bf378..d86a5a0840f59 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -1,7 +1,7 @@ import { isObject } from '@rocket.chat/tools'; import type { i18n, TOptions } from 'i18next'; -import type { RocketchatI18nKeys } from '../resources.ts'; +import type { RocketchatI18nKeys } from './resources.ts'; export type { RocketchatI18nKeys }; diff --git a/packages/i18n/src/scripts/build.mts b/packages/i18n/src/scripts/build.mts index 1434f383b7837..f778881acb8dc 100644 --- a/packages/i18n/src/scripts/build.mts +++ b/packages/i18n/src/scripts/build.mts @@ -1,4 +1,4 @@ -import { mkdir, readdir, readFile, rm, writeFile } from 'node:fs/promises'; +import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises'; import { basename, dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -44,8 +44,6 @@ export async function build() { console.log(`Number of keys using i18next components array (): ${countsByNormalization.i18nextComponentsArray} keys`); console.log(`Number of keys with nested plurals: ${countsByNormalization.nestedPlurals} keys`); - // purge dist directory - await rm(distDirectory, { recursive: true, force: true }); await mkdir(distDirectory, { recursive: true }); // write the files @@ -68,10 +66,10 @@ export async function build() { ); const allResourcesSerialized = JSON.stringify(allResources, null, 2); - await writeFile(join(distDirectory, 'resources.mjs'), `export default ${allResourcesSerialized};`); + await writeFile(join(distDirectory, 'resources.js'), `export default ${allResourcesSerialized};`); await writeFile( - join(distDirectory, 'resources.js'), + join(distDirectory, 'resources.cjs'), `"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ${allResourcesSerialized};`, @@ -93,10 +91,10 @@ export default resources;`, const languages = resources.map(({ language }) => language); const languagesSerialized = JSON.stringify(languages, null, 2); - await writeFile(join(distDirectory, 'languages.mjs'), `export default ${languagesSerialized};`); + await writeFile(join(distDirectory, 'languages.js'), `export default ${languagesSerialized};`); await writeFile( - join(distDirectory, 'languages.js'), + join(distDirectory, 'languages.cjs'), `"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ${languagesSerialized};`, diff --git a/packages/i18n/tsconfig.esm.json b/packages/i18n/tsconfig.build.json similarity index 88% rename from packages/i18n/tsconfig.esm.json rename to packages/i18n/tsconfig.build.json index 5e121f924c9b8..fc0adfedd2d24 100644 --- a/packages/i18n/tsconfig.esm.json +++ b/packages/i18n/tsconfig.build.json @@ -2,7 +2,7 @@ "extends": "./tsconfig.json", "compilerOptions": { "rootDir": "./src", - "outDir": "./dist/esm", + "outDir": "./dist", "declaration": true }, "include": ["./src/**/*"], diff --git a/packages/i18n/tsconfig.cjs.json b/packages/i18n/tsconfig.cjs.json deleted file mode 100644 index 3d83220f43817..0000000000000 --- a/packages/i18n/tsconfig.cjs.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist/cjs", - "declaration": false, - "verbatimModuleSyntax": false, - "module": "CommonJS", - "moduleResolution": "node10" - }, - "include": ["./src/**/*"], - "exclude": ["node_modules", "**/*.spec.ts", "./src/scripts/**/*"] -} diff --git a/packages/i18n/tsconfig.json b/packages/i18n/tsconfig.json index 968cc333aeb19..30826b703761e 100644 --- a/packages/i18n/tsconfig.json +++ b/packages/i18n/tsconfig.json @@ -13,9 +13,6 @@ "declaration": true, "allowJs": false, "lib": ["ES2024", "ESNext.Collection"], - "paths": { - "../resources": ["./src/resources"] - } }, "include": ["./src/**/*", "./jest.config.ts"] } From 9ac1d18fbffd463942a5c04a3bd368f7f5018886 Mon Sep 17 00:00:00 2001 From: Tasso Date: Mon, 22 Sep 2025 16:05:06 -0300 Subject: [PATCH 08/20] Change unit test --- packages/i18n/jest.config.ts | 1 - packages/i18n/src/scripts/normalize.mts | 4 ++-- .../src/scripts/{normalize.spec.mjs => normalize.spec.ts} | 0 3 files changed, 2 insertions(+), 3 deletions(-) rename packages/i18n/src/scripts/{normalize.spec.mjs => normalize.spec.ts} (100%) diff --git a/packages/i18n/jest.config.ts b/packages/i18n/jest.config.ts index eb3d5fd797e5c..d8c29672246b2 100644 --- a/packages/i18n/jest.config.ts +++ b/packages/i18n/jest.config.ts @@ -3,7 +3,6 @@ import type { Config } from 'jest'; export default { preset: server.preset, - testMatch: ['/src/**/*.spec.(ts|js|mjs)'], transformIgnorePatterns: ['/node_modules/@babel', '/node_modules/@jest', 'signal-exit'], collectCoverage: false, } satisfies Config; diff --git a/packages/i18n/src/scripts/normalize.mts b/packages/i18n/src/scripts/normalize.mts index 3166d56450808..24cfb56b86efc 100644 --- a/packages/i18n/src/scripts/normalize.mts +++ b/packages/i18n/src/scripts/normalize.mts @@ -58,7 +58,7 @@ const replaceNullValues = generator(replaceNullValuesInterpolation, 'nullValues' const replaceNestedPlurals = ( dictionary: Record, language: string, - cb: (statName: string, info: { language: string; key: string }) => void, + cb?: (statName: string, info: { language: string; key: string }) => void, ) => { const entries = []; const plurals = ['zero', 'one', 'two', 'few', 'many', 'other']; @@ -93,7 +93,7 @@ const pipe = export const normalizeI18nInterpolations = ( dictionary: Record, language: string, - cb: (statName: string, info: { language: string; key: string }) => void, + cb?: (statName: string, info: { language: string; key: string }) => void, ) => { const result = pipe( replaceNestedPlurals, diff --git a/packages/i18n/src/scripts/normalize.spec.mjs b/packages/i18n/src/scripts/normalize.spec.ts similarity index 100% rename from packages/i18n/src/scripts/normalize.spec.mjs rename to packages/i18n/src/scripts/normalize.spec.ts From 5d827959928ef8094ddf5dadf39a56830707696b Mon Sep 17 00:00:00 2001 From: Tasso Date: Tue, 23 Sep 2025 18:19:38 -0300 Subject: [PATCH 09/20] Move translation resource script --- apps/meteor/.scripts/translation-fix-order.ts | 28 - apps/meteor/package.json | 1 - packages/i18n/package.json | 5 +- packages/i18n/src/locales/de-IN.i18n.json | 1600 +++++++++-------- packages/i18n/src/scripts/build.mts | 19 +- packages/i18n/src/scripts/check.mts | 230 +++ packages/i18n/src/scripts/common.mts | 26 + 7 files changed, 1070 insertions(+), 839 deletions(-) delete mode 100644 apps/meteor/.scripts/translation-fix-order.ts create mode 100644 packages/i18n/src/scripts/check.mts create mode 100644 packages/i18n/src/scripts/common.mts diff --git a/apps/meteor/.scripts/translation-fix-order.ts b/apps/meteor/.scripts/translation-fix-order.ts deleted file mode 100644 index 14eba2e736825..0000000000000 --- a/apps/meteor/.scripts/translation-fix-order.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * This script will: - * - * - remove any duplicated i18n key on the same file; - * - re-order all keys based on source i18n file (en.i18n.json) - * - remove all keys not present in source i18n file - */ - -import fs from 'fs'; - -import fg from 'fast-glob'; - -const fixFiles = (path: string, source: string, newlineAtEnd = false) => { - const sourceFile = JSON.parse(fs.readFileSync(`${path}${source}`, 'utf8')); - const sourceKeys = Object.keys(sourceFile); - - fg([`${path}/**/*.i18n.json`]).then((entries) => { - entries.forEach((file) => { - console.log(file); - - const json = JSON.parse(fs.readFileSync(file, 'utf8')); - - fs.writeFileSync(file, `${JSON.stringify(json, sourceKeys, 2)}${newlineAtEnd ? '\n' : ''}`); - }); - }); -}; - -fixFiles('./packages/rocketchat-i18n', '/i18n/en.i18n.json'); diff --git a/apps/meteor/package.json b/apps/meteor/package.json index 6215ee2d2fc64..ceb06416ac624 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -47,7 +47,6 @@ "translation-diff": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/translation-diff.ts", "translation-check": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/translation-check.ts", "translation-replace-sprintf-params": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/replaceTranslationSprintfParams.ts", - "translation-fix-order": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/translation-fix-order.ts", "version": "node .scripts/version.js", "set-version": "node .scripts/set-version.js", "release": "meteor yarn set-version --silent", diff --git a/packages/i18n/package.json b/packages/i18n/package.json index a8881b99bc303..02e851d261d9e 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -27,8 +27,9 @@ ], "scripts": { "build": "rm -rf dist && tsc -p tsconfig.build.json && node --experimental-transform-types ./src/scripts/build.mts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", + "translation-check": "node --experimental-transform-types ./src/scripts/check.mts", + "lint": "eslint . && node --experimental-transform-types ./src/scripts/check.mts", + "lint:fix": "eslint . --fix && node --experimental-transform-types ./src/scripts/check.mts --fix", "test": "jest", "testunit": "jest" }, diff --git a/packages/i18n/src/locales/de-IN.i18n.json b/packages/i18n/src/locales/de-IN.i18n.json index 686ef55aa24ac..6e1de035c31e5 100644 --- a/packages/i18n/src/locales/de-IN.i18n.json +++ b/packages/i18n/src/locales/de-IN.i18n.json @@ -1,25 +1,72 @@ { "500": "Interner Serverfehler", - "__username__is_no_longer__role__defined_by__user_by_": "{{username}} ist nicht länger {{role}}, geändert durch {{user_by}}", - "__username__was_set__role__by__user_by_": "{{username}} ist jetzt {{role}}, geändert durch {{user_by}}", - "@username": "@Benutzername", - "@username_message": "@Benutzername ", + "files": "Dateien", "#channel": "#Kanal", "%_of_conversations": "% der Konversationen", "0_Errors_Only": "0 - nur Fehler", - "1_Errors_and_Information": "1 - Fehler und Informationen", - "2_Erros_Information_and_Debug": "2 - Fehler, Informationen und Debug-Meldungen", "12_Hour": "12-Stunden-Zeitformat", + "1_Errors_and_Information": "1 - Fehler und Informationen", "24_Hour": "24-Stunden-Zeitformat", + "2_Erros_Information_and_Debug": "2 - Fehler, Informationen und Debug-Meldungen", + "@username": "@Benutzername", + "@username_message": "@Benutzername ", + "API": "API", + "API_Add_Personal_Access_Token": "Füge einen neuen persönlichen Zugangsschlüssel hinzu.", + "API_Allow_Infinite_Count": "Ergebnismenge nicht einschränken", + "API_Allow_Infinite_Count_Description": "Erlaube die Rückgabe von REST API Ergebnissen in einem einzigen Abruf", + "API_Analytics": "Analytics", + "API_CORS_Origin": "CORS Origin", + "API_Default_Count": "Standard Limit", + "API_Default_Count_Description": "Die Anzahl an Ergebnissen von REST API Anfragen, wenn kein Limit angegeben wurde.", + "API_Drupal_URL": "Drupal Server URL", + "API_Drupal_URL_Description": "Beispiel: https://domain.de (ohne abschließenden /)", + "API_Embed": "Link-Vorschauen einbetten", + "API_EmbedCacheExpirationDays": "Tage bis zum Ablauf den eingebetteten Caches", + "API_EmbedDisabledFor": "Einbettungen für Benutzer deaktivieren", + "API_EmbedDisabledFor_Description": "Kommaseparierte Liste von Benutzernamen zum Einbetten von Link-Vorschauen", + "API_EmbedIgnoredHosts": "Einbettungen für Hosts deaktivieren", + "API_EmbedIgnoredHosts_Description": "Kommagetrennte Liste von Hosts oder CIDR-Adressen, z. B. localhost, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16", + "API_EmbedSafePorts": "Sichere Ports", + "API_EmbedSafePorts_Description": "Kommagetrennte Liste der Ports, für die eine Vorschau erlaubt ist.", + "API_Embed_Description": "Eingebettete Link-Vorschau für Links, die von Benutzern gepostet wurden.", + "API_Embed_UserAgent": "User Agent des Requests übermitteln", + "API_Enable_CORS": "CORS", + "API_Enable_Direct_Message_History_EndPoint": "Endpunkt für den Verlauf von Direktnachrichten", + "API_Enable_Direct_Message_History_EndPoint_Description": "Aktiviere `/api/v1/im.messages.others`. Hierüber ist es möglich, Direktnachrichten einzusehen, an denen der Benutzer nicht beteiligt ist.", + "API_Enable_Personal_Access_Tokens": "Aktiviere den persönlichem Zugangsschlüssel zur REST Schnittstelle.", + "API_Enable_Personal_Access_Tokens_Description": "Ermöglicht den Zugriff auf die REST-Schnittstelle mit dem persönlichen Zugangsschlüssel.", + "API_Enable_Rate_Limiter_Dev": "Begrenzung der Umgehungsrate für die REST-API während der Entwicklung aktivieren.", + "API_Enable_Rate_Limiter_Dev_Description": "Sollen die Anfragen an die Endpunkte in der Entwicklungsumgebung begrenzt werden?", + "API_Enable_Rate_Limiter_Limit_Calls_Default": "Default Anzahl der Anrufe für den Limiter", + "API_Enable_Rate_Limiter_Limit_Calls_Default_Description": "Nummer der Aufrufe für jeden Endpunkt der REST API, innerhalb des unten definierten Zeitraums", + "API_Enable_Rate_Limiter_Limit_Time_Default": "Zeitbegrenzung für den Limiter (in ms)", + "API_Enable_Rate_Limiter_Limit_Time_Default_Description": "Standardzeitlimit zum Begrenzen der Anzahl von Aufrufen an jedem Endpunkt der REST-API (in ms)", + "API_Enable_Shields": "Aktiviere Shields", + "API_Enable_Shields_Description": "Shields über `/api/v1/shield.svg` verfügbar machen", + "API_GitHub_Enterprise_URL": "Server-URL", + "API_GitHub_Enterprise_URL_Description": "Beispiel: `https://domain.com` (ohne Schrägstrich am Ende)", + "API_Gitlab_URL": "GitLab-URL", + "API_Personal_Access_Token_Generated": "Der persönliche Zugangsschlüssel wurde erfolgreich generiert.", + "API_Personal_Access_Token_Generated_Text_Token_s_UserId_s": "Bitte sichere den Zugangsschlüssel an einem sicheren Ort. Der Zugangsschlüssel kann zu einem späteren Zeitpunkt nicht mehr angezeigt werden.
Zugangsschlüssel: {{token}}
Deine Benutzer ID: {{userId}}", + "API_Personal_Access_Token_Name": "Name des persönlichem Zugangsschlüssels", + "API_Personal_Access_Tokens_Regenerate_It": "Persönlichen Zugangsschlüssel erneut generieren.", + "API_Personal_Access_Tokens_Regenerate_Modal": "Wenn Du den Zugangsschlüssel vergisst oder verlierst, kann dieser erneut generiert werden. Beachte, dass alle Applikationen, die diesen Zugangsschlüssel verwenden, mit dem neuen Zugangsschlüssel aktualisiert werden müssen.", + "API_Personal_Access_Tokens_Remove_Modal": "Bist Du Dir sicher, dass Du den persönlichen Zugangsschlüssel löschen möchtest?", + "API_Personal_Access_Tokens_To_REST_API": "Persönlicher Zugangsschlüssel für die REST API", + "API_Shield_Types": "Shield Typen", + "API_Shield_Types_Description": "Shield Typen. Konfiguration mit einer komma-separierten Liste. Optionen: `online`, `channel` oder `*` für \"Alles\"", + "API_Token": "API-Token", + "API_Tokenpass_URL": "Url des Tokenpass Servers", + "API_Tokenpass_URL_Description": "Beispiel: `https://domain.com` (ohne Schrägstrich am Ende)", + "API_Upper_Count_Limit": "Maximales Limit", + "API_Upper_Count_Limit_Description": "Max. Anzahl an Einträgen, die das REST API zurückliefen soll (sofern nicht weiter eingeschränkt)", + "API_User_Limit": "Limit für das Hinzufügen aller Benutzer zu einem Kanal", + "API_Wordpress_URL": "WordPress-URL", "Accept": "Akzeptieren", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "Akzeptiere eingehende Livechat-Anfragen auch wenn kein Agent online ist", "Accept_with_no_online_agents": "Auch annehmen, wenn keine Agenten online sind", - "Access_not_authorized": "Der Zugriff ist nicht gestattet.", "Access_Token_URL": "URL des Access-Token", - "access-mailer": "Zugriff auf den Mailer", - "access-mailer_description": "Berechtigung, Massen-E-Mails an alle Benutzer zu versenden.", - "access-permissions": "Zugriff auf die Berechtigungs-Übersicht", - "access-permissions_description": "Anpassen der Berechtigungen für die unterschiedlichen Rollen.", + "Access_not_authorized": "Der Zugriff ist nicht gestattet.", "Accessing_permissions": "Zugriff auf Berechtigungen", "Account_SID": "Konto-SID", "Accounts": "Konten", @@ -29,14 +76,14 @@ "Accounts_AllowAnonymousRead": "Erlaube anonymes Lesen", "Accounts_AllowAnonymousWrite": "Erlaube anonymes Schreiben", "Accounts_AllowDeleteOwnAccount": "Benutzern erlauben, ihr Konto zu löschen", - "Accounts_AllowedDomainsList": "Liste von erlaubten Domains", - "Accounts_AllowedDomainsList_Description": "Durch Kommata getrennte Liste von erlaubten Domains", "Accounts_AllowEmailChange": "Ändern der E-Mail-Adresse erlauben", "Accounts_AllowPasswordChange": "Ändern des Passworts erlauben", "Accounts_AllowRealNameChange": "Ändern des Namens erlauben", "Accounts_AllowUserAvatarChange": "Benutzern das Ändern des Profilbilds erlauben", - "Accounts_AllowUsernameChange": "Ändern des Benutzernamens erlauben", "Accounts_AllowUserProfileChange": "Benutzern das Ändern des Profils erlauben", + "Accounts_AllowUsernameChange": "Ändern des Benutzernamens erlauben", + "Accounts_AllowedDomainsList": "Liste von erlaubten Domains", + "Accounts_AllowedDomainsList_Description": "Durch Kommata getrennte Liste von erlaubten Domains", "Accounts_AvatarBlockUnauthenticatedAccess": "Unberechtigter Zugriff auf die Avatare blockiert.", "Accounts_AvatarCacheTime": "Avatar-Cache-Dauer", "Accounts_AvatarCacheTime_description": "Anzahl der Sekunden, die das HTTP-Protokoll zum Zwischenspeichern der Avatarbilder benötigt.", @@ -48,24 +95,23 @@ "Accounts_BlockedDomainsList_Description": "Kommata getrennte Liste von geblockten Domains", "Accounts_BlockedUsernameList": "Liste gesperrter Benutzernamen", "Accounts_BlockedUsernameList_Description": "Komma-getrennte Liste gesperrter Benutzernamen (case-insensitive)", - "Accounts_CustomFields_Description": "Ein gültiges JSON, in dem die Schlüssel Sprachkürzel sind, die wiederum Tupel von Schlüssel und Übersetzungen enthalten. Beispiel: \n`{\"role\":{ \"type\": \"select\", \"defaultValue\": \"student\", \"options\": [\"teacher\", \"student\"], \"required\": true, \"modifyRecordField\": { \"array\": true, \"field\": \"roles\" } }, \"twitter\": { \"type\": \"text\", \"required\": true, \"minLength\": 2, \"maxLength\": 10 }}`", "Accounts_CustomFieldsToShowInUserInfo": "Eigene Felder, die in der Benutzer-Information angezeigt werden sollen", + "Accounts_CustomFields_Description": "Ein gültiges JSON, in dem die Schlüssel Sprachkürzel sind, die wiederum Tupel von Schlüssel und Übersetzungen enthalten. Beispiel: \n`{\"role\":{ \"type\": \"select\", \"defaultValue\": \"student\", \"options\": [\"teacher\", \"student\"], \"required\": true, \"modifyRecordField\": { \"array\": true, \"field\": \"roles\" } }, \"twitter\": { \"type\": \"text\", \"required\": true, \"minLength\": 2, \"maxLength\": 10 }}`", + "Accounts_DefaultUsernamePrefixSuggestion": "Vorschlag für Präfix des Standard-Benutzernamens ", "Accounts_Default_User_Preferences": "Standardeinstellungen des Benutzers", "Accounts_Default_User_Preferences_audioNotifications": "Akustische Benachrichtigung bei", "Accounts_Default_User_Preferences_desktopNotifications": "Desktop-Benachrichtigungen bei", - "Accounts_Default_User_Preferences_pushNotifications": "Push-Benachrichtigungen bei", "Accounts_Default_User_Preferences_not_available": "Fehler beim Abrufen der Benutzereinstellungen, da diese noch nicht vom Benutzer eingerichtet wurden", - "Accounts_DefaultUsernamePrefixSuggestion": "Vorschlag für Präfix des Standard-Benutzernamens ", - "Accounts_denyUnverifiedEmail": "Nicht verifizierte E-Mail-Adressen ablehnen", + "Accounts_Default_User_Preferences_pushNotifications": "Push-Benachrichtigungen bei", "Accounts_Directory_DefaultView": "Standard Verzeichnisansicht", + "Accounts_EmailVerification": "E-Mail-Verifizierung", + "Accounts_EmailVerification_Description": "Um diese Funktion nutzen zu können, stell bitte sicher, dass Deine SMTP-Einstellungen korrekt sind.", "Accounts_Email_Activated": "[name]

Dein Konto wurde aktiviert.

", "Accounts_Email_Activated_Subject": "Konto aktiviert", "Accounts_Email_Approved": "[name]

Dein Konto wurde genehmigt.

", "Accounts_Email_Approved_Subject": "Konto genehmigt", "Accounts_Email_Deactivated": "[name]

Dein Konto wurde deaktiviert.

", "Accounts_Email_Deactivated_Subject": "Konto deaktiviert", - "Accounts_EmailVerification": "E-Mail-Verifizierung", - "Accounts_EmailVerification_Description": "Um diese Funktion nutzen zu können, stell bitte sicher, dass Deine SMTP-Einstellungen korrekt sind.", "Accounts_Enrollment_Email": "Registrierungsmail", "Accounts_Enrollment_Email_Default": "

Willkommen zu [Site_Name]

Besuche [Site_URL] und probiere noch heute die beste Open-Source-Chat-Lösung aus.

", "Accounts_Enrollment_Email_Description": "Du kannst folgenden Platzhalter verwenden: \n - `[name]`, `[fname]`, `[lname]` für den vollständigen Namen, Vornamen oder Nachnamen des Benutzers. \n - [email] für die E-Mail-Adresse des Benutzers. \n - [Site_Name] und `[Site_URL]` für den Anwendungsnamen und die URL. ", @@ -73,8 +119,6 @@ "Accounts_ForgetUserSessionOnWindowClose": "Benutzer Session beenden, wenn das Fenster geschlossen wird", "Accounts_Iframe_api_method": "API-Methode", "Accounts_Iframe_api_url": "API-URL", - "Accounts_iframe_enabled": "aktiviert", - "Accounts_iframe_url": "iFrame-URL", "Accounts_LoginExpiration": "Ablauffrist der Anmeldung in Tagen", "Accounts_ManuallyApproveNewUsers": "Neue Benutzer manuell aktivieren", "Accounts_OAuth_Custom_Access_Token_Param": "Param Name für Access token", @@ -84,7 +128,6 @@ "Accounts_OAuth_Custom_Button_Label_Color": "Farbe des Buttontexts", "Accounts_OAuth_Custom_Button_Label_Text": "Text des Buttons", "Accounts_OAuth_Custom_Enable": "Aktivieren", - "Accounts_OAuth_Custom_id": "ID", "Accounts_OAuth_Custom_Identity_Path": "Identitätspfad", "Accounts_OAuth_Custom_Identity_Token_Sent_Via": "Identity Token gesendet via", "Accounts_OAuth_Custom_Login_Style": "Anmeldungsart", @@ -96,6 +139,7 @@ "Accounts_OAuth_Custom_Token_Path": "Pfad des Token", "Accounts_OAuth_Custom_Token_Sent_Via": "Token gesendet über", "Accounts_OAuth_Custom_Username_Field": "Feld für Benutzernamen", + "Accounts_OAuth_Custom_id": "ID", "Accounts_OAuth_Drupal": "Anmeldung über Drupal", "Accounts_OAuth_Drupal_callback_url": "Drupal OAuth Redirect Url", "Accounts_OAuth_Drupal_id": "Drupal oAuth2 Client ID", @@ -104,12 +148,12 @@ "Accounts_OAuth_Facebook_callback_url": "Facebook-Callback-URL", "Accounts_OAuth_Facebook_id": "Facebook-App-ID", "Accounts_OAuth_Facebook_secret": "Geheimer Facebook Schlüssel ", - "Accounts_OAuth_Github": "OAuth aktivieren", - "Accounts_OAuth_Github_callback_url": "GitHub-Callback-URL", "Accounts_OAuth_GitHub_Enterprise": "OAuth aktiviert", "Accounts_OAuth_GitHub_Enterprise_callback_url": "GitHub-Enterprise-Callback-URL", "Accounts_OAuth_GitHub_Enterprise_id": "Client-ID", "Accounts_OAuth_GitHub_Enterprise_secret": "Geheimer Client Schlüssel", + "Accounts_OAuth_Github": "OAuth aktivieren", + "Accounts_OAuth_Github_callback_url": "GitHub-Callback-URL", "Accounts_OAuth_Github_id": "Client-ID", "Accounts_OAuth_Github_secret": "Geheimer Client Schlüssel", "Accounts_OAuth_Gitlab": "OAuth aktiviert", @@ -150,6 +194,7 @@ "Accounts_OAuth_Wordpress_server_type_wordpress_com": "Wordpress.com", "Accounts_OAuth_Wordpress_server_type_wp_oauth_server": "WP-OAuth-Server-Plugin", "Accounts_OAuth_Wordpress_token_path": "Pfad des Token", + "Accounts_PasswordReset": "Passwort zurücksetzen", "Accounts_Password_Policy_AtLeastOneLowercase": "Mindestens ein Kleinbuchstabe", "Accounts_Password_Policy_AtLeastOneLowercase_Description": "Erzwingen, dass ein Kennwort mindestens ein Kleinbuchstabe enthält.", "Accounts_Password_Policy_AtLeastOneNumber": "Mindestens eine Ziffer", @@ -161,24 +206,23 @@ "Accounts_Password_Policy_Enabled": "Aktiviere die Passwort-Richtlinie", "Accounts_Password_Policy_Enabled_Description": "Wenn diese Option aktiviert ist, müssen Benutzerkennwörter den angegebenen Richtlinien entsprechen. Hinweis: Dies gilt nur für neue Passwörter, nicht für bestehende Passwörter.", "Accounts_Password_Policy_ForbidRepeatingCharacters": "Verbieten, Zeichen zu wiederholen", - "Accounts_Password_Policy_ForbidRepeatingCharacters_Description": "Stellt sicher, dass Passwörter nicht das gleiche Zeichen enthalten, das sich nebeneinander wiederholt.", "Accounts_Password_Policy_ForbidRepeatingCharactersCount": "Maximale Anzahl sich wiederholender Zeichen", "Accounts_Password_Policy_ForbidRepeatingCharactersCount_Description": "Die maximale Anzahl der Zeichen, die sich wiederholen dürfen, bevor das Passwort abgelehnt wird.", + "Accounts_Password_Policy_ForbidRepeatingCharacters_Description": "Stellt sicher, dass Passwörter nicht das gleiche Zeichen enthalten, das sich nebeneinander wiederholt.", "Accounts_Password_Policy_MaxLength": "Maximale Länge", "Accounts_Password_Policy_MaxLength_Description": "Maximale Anzahl der verwendeten Zeichen. -1 eingeben, um die Regel zu deaktivieren.", "Accounts_Password_Policy_MinLength": "Minimale Länge", "Accounts_Password_Policy_MinLength_Description": "Maximale Anzahl der verwendeten Zeichen. -1 eingeben, um die Regel zu deaktivieren.", - "Accounts_PasswordReset": "Passwort zurücksetzen", - "Accounts_Registration_AuthenticationServices_Default_Roles": "Standardrolle bei Nutzung von Authentifizierungsdiensten", - "Accounts_Registration_AuthenticationServices_Default_Roles_Description": "Standardrollen, die Benutzern zugewiesen werden, wenn diese sich über Authentifizierungsdienste registrieren", - "Accounts_Registration_AuthenticationServices_Enabled": "Registrierung mit Authentifizierungsdiensten", "Accounts_RegistrationForm": "Registrierungsformular", "Accounts_RegistrationForm_Disabled": "Deaktiviert", "Accounts_RegistrationForm_LinkReplacementText": "Ersatztext für den Registrierungslink", "Accounts_RegistrationForm_Public": "Öffentlich", - "Accounts_RegistrationForm_Secret_URL": "Geheime URL", "Accounts_RegistrationForm_SecretURL": "Geheime URL für die Registrierungsseite", "Accounts_RegistrationForm_SecretURL_Description": "Gib eine zufällige Zeichenfolge, die der Registrierungs-URL hinzugefügt wird, an. Zum Beispiel: `https://open.rocket.chat/register/[secret_hash]`", + "Accounts_RegistrationForm_Secret_URL": "Geheime URL", + "Accounts_Registration_AuthenticationServices_Default_Roles": "Standardrolle bei Nutzung von Authentifizierungsdiensten", + "Accounts_Registration_AuthenticationServices_Default_Roles_Description": "Standardrollen, die Benutzern zugewiesen werden, wenn diese sich über Authentifizierungsdienste registrieren", + "Accounts_Registration_AuthenticationServices_Enabled": "Registrierung mit Authentifizierungsdiensten", "Accounts_RequireNameForSignUp": "Namen für die Anmeldung verlangen", "Accounts_RequirePasswordConfirmation": "Passwortbestätigung erforderlich", "Accounts_SearchFields": "Felder, die in der Suche berücksichtigt werden sollen", @@ -190,44 +234,33 @@ "Accounts_TwoFactorAuthentication_Enabled": "Aktivieren die Zwei-Faktor-Authentifizierung", "Accounts_TwoFactorAuthentication_MaxDelta": "Maximales Delta", "Accounts_TwoFactorAuthentication_MaxDelta_Description": "Das maximale Delta bestimmt, wie viele Token zu einem bestimmten Zeitpunkt gültig sind. Token werden alle 30 Sekunden generiert und gelten für (30 * Maximum Delta) Sekunden. \nBeispiel: Wenn ein maximales Delta auf 10 gesetzt ist, kann jedes Token bis zu 300 Sekunden vor oder nach dem Zeitstempel verwendet werden. Dies ist nützlich, wenn die Uhr des Clients nicht richtig mit dem Server synchronisiert ist.", - "Accounts_UseDefaultBlockedDomainsList": "Standardliste für blockierte Domains verwenden", "Accounts_UseDNSDomainCheck": "DNS-Domain-Check verwenden", - "API_EmbedDisabledFor": "Einbettungen für Benutzer deaktivieren", + "Accounts_UseDefaultBlockedDomainsList": "Standardliste für blockierte Domains verwenden", + "Accounts_UserAddedEmailSubject_Default": "Du wurdest zu [Site_Name] hinzugefügt", "Accounts_UserAddedEmail_Default": "

Willkommen zu [Site_Name]

Besuche [Site_URL] und probiere noch heute die beste Open-Source-Chat-Lösung aus.

Du kannst Dich mit den folgenden Daten anmelden: E-Mail-Adresse: [email] Passwort: [password]Es kann sein, dass Du Dein Passwort nach der ersten Anmeldung ändern musst.", "Accounts_UserAddedEmail_Description": "Du kannst folgenden Platzhalter verwenden: \n - `[name]`, `[fname]`, `[lname]` für den vollständigen Namen des Benutzers, Vornamen oder Nachnamen. \n - [email] für die E-Mail-Adresse des Benutzers. \n - [password] für das Kennwort des Benutzers. \n - [Site_Name] und `[Site_URL]` für den Anwendungsname und die URL. ", - "API_EmbedDisabledFor_Description": "Kommaseparierte Liste von Benutzernamen zum Einbetten von Link-Vorschauen", - "Accounts_UserAddedEmailSubject_Default": "Du wurdest zu [Site_Name] hinzugefügt", + "Accounts_denyUnverifiedEmail": "Nicht verifizierte E-Mail-Adressen ablehnen", + "Accounts_iframe_enabled": "aktiviert", + "Accounts_iframe_url": "iFrame-URL", "Activate": "Aktivieren", "Activity": "Aktivität", "Add": "Hinzufügen", + "Add_Domain": "Domain hinzufügen", + "Add_Role": "Rolle hinzufügen", + "Add_User": "BenutzerIn hinzufügen", "Add_agent": "Agent hinzufügen", "Add_custom_oauth": "Benutzerdefiniertes OAuth-Konto hinzufügen", - "Add_Domain": "Domain hinzufügen", "Add_files_from": "Dateien hinzufügen von", "Add_manager": "Manager hinzufügen", - "Add_Role": "Rolle hinzufügen", "Add_user": "BenutzerIn hinzufügen", - "Add_User": "BenutzerIn hinzufügen", "Add_users": "BenutzerInnen hinzufügen", - "add-oauth-service": "OAuth-Dienst hinzufügen", - "add-oauth-service_description": "Berechtigung, einen neuen OAuth-Dienst hinzuzufügen", - "add-user": "Benutzer erstellen", - "add-user_description": "Berechtigung, über den Benutzer-Bildschirm neue Nutzer anzulegen", - "add-user-to-any-c-room": "Füge Benutzer zu jedem öffentlichen Kanal hinzu", - "add-user-to-any-c-room_description": "Berechtigung, um Benutzer zu jedem öffentlichen Kanal hinzuzufügen", - "add-user-to-any-p-room": "Benutzer jedem privaten Kanal hinzufügen", - "add-user-to-any-p-room_description": "Berechtigung, Benutzer jedem privaten Kanal hinzuzufügen", - "add-user-to-joined-room": "Benutzer jedem beigetretenen Kanal hinzufügen", - "add-user-to-joined-room_description": "Berechtigung, Benutzer jedem beigetretenen Kanal hinzuzufügen", - "Apps_Framework_enabled": "Das App Framework aktivieren", "Adding_OAuth_Services": "Hinzufügen von OAuth-Services", "Adding_permission": "Berechtigung hinzufügen", "Adding_user": "Füge BenutzerIn hinzu", - "Additional_emails": "Zusätzliche E-Mails", "Additional_Feedback": "Zusätzliches Feedback", - "additional_integrations_Bots": "Wenn Du auf der Suche nach der Integration Deines eigenen Bot bist, dann ist unser Hubot-Adapter genau das Richtige für Dich. https://github.com/RocketChat/hubot-rocketchat", - "Admin_disabled_encryption": "Dein Administrator hat Ende-zu-Ende-Verschlüsselung nicht aktiviert", + "Additional_emails": "Zusätzliche E-Mails", "Admin_Info": "Admin-Info", + "Admin_disabled_encryption": "Dein Administrator hat Ende-zu-Ende-Verschlüsselung nicht aktiviert", "Administration": "Administration", "Adult_images_are_not_allowed": "Nicht-jugendfreie Bilder sind nicht erlaubt", "After_OAuth2_authentication_users_will_be_redirected_to_this_URL": "Nach der OAuth2-Authentifizierung werden die Benutzer auf diese URL weitergeleitet.", @@ -239,103 +272,41 @@ "Alias_Format": "Alias-Format", "Alias_Format_Description": "Nachricht von Slack mit einem Alias importieren; %s wird mit dem Benutzernamen ersetzt. Wenn Feld leer bleibt, wird kein Alias benutzt.", "Alias_Set": "Alias setzen", - "AutoLinker_Email": "AutoLinker für E-Mail-Adressen", "Aliases": "Aliase", - "AutoLinker_Phone": "AutoLinker für Telefonnummern", - "AutoLinker_Phone_Description": "Telefonnummern automatisch verlinken. z.B. `(123) 456-7890`", "All": "Alle", - "AutoLinker_StripPrefix": "AutoLinker Präfix entfernen", - "AutoLinker_StripPrefix_Description": "Kurze Anzeige. z.B. https://rocket.chat => rocket.chat", "All_added_tokens_will_be_required_by_the_user": "Alle hinzugefügten Tokens werden vom Benutzer verlangt werden", - "AutoLinker_Urls_Scheme": "Schema des AutoLinkers: // URLs", "All_channels": "Alle Kanäle", - "AutoLinker_Urls_TLD": "AutoLinker TLD-URLs", - "AutoLinker_Urls_www": "AutoLinker \"www\"-URLs", "All_logs": "Alle Protokolle", - "AutoLinker_UrlsRegExp": "AutoLinker RegExp für URLs", "All_messages": "Alle Nachrichten", "All_users": "Alle Benutzer", "All_users_in_the_channel_can_write_new_messages": "Alle Benutzer in diesem Kanal dürfen Nachrichten schreiben", - "Allow_collect_and_store_HTTP_header_informations": "Das Sammeln von HTTP-Verbindungsinformationen erlauben", - "Allow_collect_and_store_HTTP_header_informations_description": "Diese Einstellung legt fest, ob Livechat Informationen speichern darf, die aus HTTP-Header-Daten erfasst wurden, z. B. IP-Adresse, User-Agent usw.", "Allow_Invalid_SelfSigned_Certs": "Ungültige und selbstsignierte SSL-Zertifikate erlauben", "Allow_Invalid_SelfSigned_Certs_Description": "Ungültige und selbstsignierte SSL-Zertifikate für die Link-Validierung und die Vorschau zulassen.", "Allow_Marketing_Emails": "Marketing-E-Mails zulassen", + "Allow_collect_and_store_HTTP_header_informations": "Das Sammeln von HTTP-Verbindungsinformationen erlauben", + "Allow_collect_and_store_HTTP_header_informations_description": "Diese Einstellung legt fest, ob Livechat Informationen speichern darf, die aus HTTP-Header-Daten erfasst wurden, z. B. IP-Adresse, User-Agent usw.", "Allow_switching_departments": "Erlaube Besuchern, Abteilungen zu wechseln", "Almost_done": "Fast geschafft", "Alphabetical": "alphabetisch", - "bold": "fett", "Always_open_in_new_window": "Immer in neuem Fenster öffnen", "Analytics": "Analytics", + "Analytics_Google": "Google Analytics", + "Analytics_Google_id": "Tracking ID", "Analytics_features_enabled": "Aktivierte Funktionen", "Analytics_features_messages_Description": "Zeichnet benutzerdefinierte Ereignisse im Zusammenhang mit Aktionen eines Nutzers in Nachrichten auf.", "Analytics_features_rooms_Description": "Zeichnet benutzerdefinierte Ereignisse im Zusammenhang mit Aktionen in einem Kanal (erstellen, verlassen, löschen) auf.", "Analytics_features_users_Description": "Zeichnet benutzerdefinierte Ereignisse (Passwort-Reset-Zeiten, Profilbild ändern, etc) auf.", - "Analytics_Google": "Google Analytics", - "Analytics_Google_id": "Tracking ID", - "and": "und", "And_more": "Und {{length}} mehr", "Animals_and_Nature": "Tiere & Natur", "Announcement": "Ankündigung", - "API": "API", - "API_Add_Personal_Access_Token": "Füge einen neuen persönlichen Zugangsschlüssel hinzu.", - "API_Allow_Infinite_Count": "Ergebnismenge nicht einschränken", - "API_Allow_Infinite_Count_Description": "Erlaube die Rückgabe von REST API Ergebnissen in einem einzigen Abruf", - "API_Analytics": "Analytics", - "API_CORS_Origin": "CORS Origin", - "API_Default_Count": "Standard Limit", - "API_Default_Count_Description": "Die Anzahl an Ergebnissen von REST API Anfragen, wenn kein Limit angegeben wurde.", - "API_Drupal_URL": "Drupal Server URL", - "API_Drupal_URL_Description": "Beispiel: https://domain.de (ohne abschließenden /)", - "API_Embed": "Link-Vorschauen einbetten", - "API_Embed_Description": "Eingebettete Link-Vorschau für Links, die von Benutzern gepostet wurden.", - "API_EmbedIgnoredHosts": "Einbettungen für Hosts deaktivieren", - "API_EmbedIgnoredHosts_Description": "Kommagetrennte Liste von Hosts oder CIDR-Adressen, z. B. localhost, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16", - "API_EmbedSafePorts": "Sichere Ports", - "API_EmbedSafePorts_Description": "Kommagetrennte Liste der Ports, für die eine Vorschau erlaubt ist.", - "API_Embed_UserAgent": "User Agent des Requests übermitteln", - "API_EmbedCacheExpirationDays": "Tage bis zum Ablauf den eingebetteten Caches", - "API_Enable_CORS": "CORS", - "API_Enable_Direct_Message_History_EndPoint": "Endpunkt für den Verlauf von Direktnachrichten", - "API_Enable_Direct_Message_History_EndPoint_Description": "Aktiviere `/api/v1/im.messages.others`. Hierüber ist es möglich, Direktnachrichten einzusehen, an denen der Benutzer nicht beteiligt ist.", - "API_Enable_Personal_Access_Tokens": "Aktiviere den persönlichem Zugangsschlüssel zur REST Schnittstelle.", - "API_Enable_Personal_Access_Tokens_Description": "Ermöglicht den Zugriff auf die REST-Schnittstelle mit dem persönlichen Zugangsschlüssel.", - "API_Enable_Rate_Limiter_Dev": "Begrenzung der Umgehungsrate für die REST-API während der Entwicklung aktivieren.", - "API_Enable_Rate_Limiter_Dev_Description": "Sollen die Anfragen an die Endpunkte in der Entwicklungsumgebung begrenzt werden?", - "API_Enable_Rate_Limiter_Limit_Calls_Default": "Default Anzahl der Anrufe für den Limiter", - "API_Enable_Rate_Limiter_Limit_Calls_Default_Description": "Nummer der Aufrufe für jeden Endpunkt der REST API, innerhalb des unten definierten Zeitraums", - "API_Enable_Rate_Limiter_Limit_Time_Default": "Zeitbegrenzung für den Limiter (in ms)", - "API_Enable_Rate_Limiter_Limit_Time_Default_Description": "Standardzeitlimit zum Begrenzen der Anzahl von Aufrufen an jedem Endpunkt der REST-API (in ms)", - "API_Enable_Shields": "Aktiviere Shields", - "API_Enable_Shields_Description": "Shields über `/api/v1/shield.svg` verfügbar machen", - "API_GitHub_Enterprise_URL": "Server-URL", - "API_GitHub_Enterprise_URL_Description": "Beispiel: `https://domain.com` (ohne Schrägstrich am Ende)", - "API_Gitlab_URL": "GitLab-URL", - "API_Personal_Access_Token_Generated": "Der persönliche Zugangsschlüssel wurde erfolgreich generiert.", - "API_Personal_Access_Token_Generated_Text_Token_s_UserId_s": "Bitte sichere den Zugangsschlüssel an einem sicheren Ort. Der Zugangsschlüssel kann zu einem späteren Zeitpunkt nicht mehr angezeigt werden.
Zugangsschlüssel: {{token}}
Deine Benutzer ID: {{userId}}", - "API_Personal_Access_Token_Name": "Name des persönlichem Zugangsschlüssels", - "API_Personal_Access_Tokens_Regenerate_It": "Persönlichen Zugangsschlüssel erneut generieren.", - "API_Personal_Access_Tokens_Regenerate_Modal": "Wenn Du den Zugangsschlüssel vergisst oder verlierst, kann dieser erneut generiert werden. Beachte, dass alle Applikationen, die diesen Zugangsschlüssel verwenden, mit dem neuen Zugangsschlüssel aktualisiert werden müssen.", - "API_Personal_Access_Tokens_Remove_Modal": "Bist Du Dir sicher, dass Du den persönlichen Zugangsschlüssel löschen möchtest?", - "API_Personal_Access_Tokens_To_REST_API": "Persönlicher Zugangsschlüssel für die REST API", - "API_Shield_Types": "Shield Typen", - "API_Shield_Types_Description": "Shield Typen. Konfiguration mit einer komma-separierten Liste. Optionen: `online`, `channel` oder `*` für \"Alles\"", - "Apps_Framework_Development_Mode": "Entwicklungsmodus aktivieren", - "API_Token": "API-Token", - "Apps_Framework_Development_Mode_Description": "Im Entwicklungsmodus können Apps installiert werden, die nicht vom Rocketchat Marketplace stammen.", - "API_Tokenpass_URL": "Url des Tokenpass Servers", - "API_Tokenpass_URL_Description": "Beispiel: `https://domain.com` (ohne Schrägstrich am Ende)", - "API_Upper_Count_Limit": "Maximales Limit", - "API_Upper_Count_Limit_Description": "Max. Anzahl an Einträgen, die das REST API zurückliefen soll (sofern nicht weiter eingeschränkt)", - "API_User_Limit": "Limit für das Hinzufügen aller Benutzer zu einem Kanal", - "API_Wordpress_URL": "WordPress-URL", - "api-bypass-rate-limit": "Begrenzung der Umgehungsrate für die REST-API", "Apiai_Key": "Api.ai-Schlüssel", "Apiai_Language": "Api.ai-Sprache", - "App_author_homepage": "Autor Homepage", "App_Details": "App Details", "App_Information": "App-Informationen", "App_Installation": "App-Installation", + "App_Url_to_Install_From": "Von URL installieren", + "App_Url_to_Install_From_File": "Aus Datei installieren", + "App_author_homepage": "Autor Homepage", "App_status_auto_enabled": "Aktiviert", "App_status_constructed": "Konstruiert", "App_status_disabled": "deaktiviert", @@ -346,47 +317,40 @@ "App_status_manually_enabled": "Aktiviert", "App_status_unknown": "Unbekannt", "App_support_url": "Support-URL", - "App_Url_to_Install_From": "Von URL installieren", - "App_Url_to_Install_From_File": "Aus Datei installieren", "Appearance": "Erscheinungsbild", - "Application_added": "Die Anwendung wurde hinzugefügt.", "Application_Name": "Name der Anwendung", + "Application_added": "Die Anwendung wurde hinzugefügt.", "Application_updated": "Die Anwendung wurde aktualisiert.", "Apply": "Anwenden", "Apply_and_refresh_all_clients": "Anwenden und alle Clients aktualisieren", "Apps": "Apps", "Apps_Engine_Version": "Version der Anwendungsumgebung", + "Apps_Framework_Development_Mode": "Entwicklungsmodus aktivieren", + "Apps_Framework_Development_Mode_Description": "Im Entwicklungsmodus können Apps installiert werden, die nicht vom Rocketchat Marketplace stammen.", + "Apps_Framework_enabled": "Das App Framework aktivieren", "Apps_Marketplace_Login_Required_Description": "Um Apps aus dem Rocket.Chat Marketplace herunterladen zu können, muss der Arbeitsbereich registriert sein.", "Apps_Marketplace_Login_Required_Title": "Marketplace Login benötigt", "Apps_Settings": "App-Einstellungen", - "AutoLinker": "Auto Linker", "Apps_WhatIsIt": "Apps: Was ist das?", "Apps_WhatIsIt_paragraph1": "Ein neues Icon im Administrationsbereich! Was bedeutet das und was sind Apps?", "Apps_WhatIsIt_paragraph2": "Zunächst einmal beziehen sich Apps in diesem Zusammenhang nicht auf die mobilen Anwendungen. Tatsächlich wäre es am besten, sie in Form von Plugins oder fortgeschrittenen Integrationen zu betrachten.", "Apps_WhatIsIt_paragraph3": "Vielmehr sind es dynamische Skripte oder Pakete, die es Dir ermöglichen, Deine Rocket.Chat-Instanz anzupassen, ohne dass es notwendig ist, die Codebasis zu forken. Aber bitte denk daran, dass dies ein neuer Funktionsumfang ist und deshalb nicht 100%ig stabil ist. Außerdem entwickeln wir noch den Funktionsumfang, so dass zu diesem Zeitpunkt noch nicht alles angepasst werden kann. Weitere Informationen zur Entwicklung einer App gibt es hier:", "Apps_WhatIsIt_paragraph4": "Aber wenn Du daran interessiert bist, diese Funktion zu aktivieren und auszuprobieren, dann klicke hier, um das Apps-System zu aktivieren.", "Archive": "Archivieren", - "archive-room": "Kanal archivieren", - "archive-room_description": "Berechtigung, einen Kanal zu archivieren", - "are_typing": "schreiben", "Are_you_sure": "Bist Du sicher?", "Are_you_sure_you_want_to_delete_your_account": "Bist Du sicher, dass Du Dein Konto löschen möchtest?", "Are_you_sure_you_want_to_disable_Facebook_integration": "Bist Du dir sicher das Du die Facebook Integration deaktivieren möchtest?", "Assets": "Assets", "Assign_admin": "Admin zuweisen", - "assign-admin-role": "Administratorrolle zuordnen", - "assign-admin-role_description": "Berechtigung, andere Benutzer zu Administratoren zu machen", - "assign-roles": "Rollen zuweisen", - "at": "am", "At_least_one_added_token_is_required_by_the_user": "Mindestens eines der hinzugefügten Tokens wird vom Benutzer verlangt werden", "AtlassianCrowd": "Atlassian Crowd", "Attachment_File_Uploaded": "Datei hochgeladen", "Attribute_handling": "Behandlung von Eigenschaften", "Audio": "Audio", - "Audio_message": "Audio-Nachricht", "Audio_Notification_Value_Description": "Dies kann einer der Standard-Töne (beep, chelle, ding, droplet, highbell, seasons) oder jeder eigene Ton sein", "Audio_Notifications_Default_Alert": "Akustische Benachrichtigung bei", "Audio_Notifications_Value": "Akustische Benachrichtigung: Ton", + "Audio_message": "Audio-Nachricht", "Auth_Token": "Auth-Token", "Authentication": "Authentifizierung", "Author": "Autor", @@ -394,11 +358,16 @@ "Author_Site": "Seite des Autors", "Authorization_URL": "Autorisierungs-URL", "Authorize": "Berechtigen", - "Auto_Load_Images": "Automatisches Laden der Bilder", - "Auto_Translate": "Automatische Übersetzung", - "auto-translate": "Automatische Übersetzung", - "auto-translate_description": "Berechtigung, die automatische Überstzung zu verwenden", - "Automatic_Translation": "Automatische Übersetzung", + "AutoLinker": "Auto Linker", + "AutoLinker_Email": "AutoLinker für E-Mail-Adressen", + "AutoLinker_Phone": "AutoLinker für Telefonnummern", + "AutoLinker_Phone_Description": "Telefonnummern automatisch verlinken. z.B. `(123) 456-7890`", + "AutoLinker_StripPrefix": "AutoLinker Präfix entfernen", + "AutoLinker_StripPrefix_Description": "Kurze Anzeige. z.B. https://rocket.chat => rocket.chat", + "AutoLinker_UrlsRegExp": "AutoLinker RegExp für URLs", + "AutoLinker_Urls_Scheme": "Schema des AutoLinkers: // URLs", + "AutoLinker_Urls_TLD": "AutoLinker TLD-URLs", + "AutoLinker_Urls_www": "AutoLinker \"www\"-URLs", "AutoTranslate": "Automatische Übersetzung", "AutoTranslate_APIKey": "API Key", "AutoTranslate_Change_Language_Description": "Das Verändern der Option zur automatischen Übersetzung übersetzt keine Nachrichten aus der Vergangenheit.", @@ -407,29 +376,29 @@ "AutoTranslate_Enabled_Description": "Die Aktivierung der automatischen Übersetzung ermöglicht es Benutzern mit der entsprechenden Berechtigung (`auto-translate` , Nachrichten immer in Ihrer Sprache übersetzt zu lesen. Hierfür fallen potentiell Gebühren an.", "AutoTranslate_Google": "Google", "AutoTranslate_ServiceProvider": "Übersetzungsdienst", + "Auto_Load_Images": "Automatisches Laden der Bilder", + "Auto_Translate": "Automatische Übersetzung", + "Automatic_Translation": "Automatische Übersetzung", "Available": "Verfügbar", "Available_agents": "Verfügbare Agenten", "Avatar": "Profilbild", - "Avatar_changed_successfully": "Das Profilbild wurde erfolgreich geändert.", "Avatar_URL": "URL des Profilbilds", + "Avatar_changed_successfully": "Das Profilbild wurde erfolgreich geändert.", "Avatar_url_invalid_or_error": "Die angegebene Internetadresse ist ungültig oder nicht verfügbar. Bitte versuche es mit einer anderen Internetadresse erneut.", "Avg_chat_duration": "∅ Chat-Dauer", "Avg_first_response_time": "∅ Erstreaktionszeit", "Avg_reaction_time": "∅ Reaktionszeit", "Avg_response_time": "∅ Antwortzeit", - "away": "abwesend", "Away": "Abwesend", "Back": "Zurück", + "Back_to_Manage_Apps": "Zurück zu Apps verwalten", "Back_to_applications": "Zurück zu den Anwendungen", "Back_to_chat": "Zurück zum Chat", "Back_to_integration_detail": "Zurück zu den Integrations-Details", "Back_to_integrations": "Zurück zu den Integrationen", "Back_to_login": "Zurück zum Login", - "Back_to_Manage_Apps": "Zurück zu Apps verwalten", "Back_to_permissions": "Zurück zu den Berechtigungen", "Backup_codes": "Backup-Schlüssel", - "ban-user": "Benutzer verbannen", - "ban-user_description": "Berechtigung, einen Benutzer aus einem Kanal zu verbannen", "Best_first_response_time": "Kürzeste Erstreaktionszeit", "Beta_feature_Depends_on_Video_Conference_to_be_enabled": "Beta-Funktion: Basiert darauf, dass Video-Konferenzen aktiviert sind.", "Block_User": "BenutzerIn sperren", @@ -438,14 +407,13 @@ "Blockstack_ButtonLabelText": "Text des Button-Labels", "Blockstack_Generate_Username": "Benutzernamen generieren", "Body": "Textkörper", - "bot_request": "Bot-Anfrage", "BotHelpers_userFields": "Benutzerfelder", "BotHelpers_userFields_Description": "CSV-Datei mit Benutzerfeldern die von Bot-Methoden genutzt werden dürfen.", "Bots": "Bots", "Branch": "Zweig", + "Broadcast_Connected_Instances": "Broadcast an verbundene Instanzen", "Broadcast_channel": "Rundfunkkanal", "Broadcast_channel_Description": "Nur autorisierte Benutzer können neue Nachrichten schreiben, die anderen Benutzer können jedoch antworten", - "Broadcast_Connected_Instances": "Broadcast an verbundene Instanzen", "Broadcasting_api_key": "Broadcasting API Key", "Broadcasting_client_id": "Broadcasting Client ID", "Broadcasting_client_secret": "Broadcasting Client Secret", @@ -454,20 +422,14 @@ "Browse_Files": "Dateien durchsuchen", "Bugsnag_api_key": "Bugsnag API-Schlüssel", "Build_Environment": "Buildumgebung", - "bulk-register-user": "Massen-Registrierung von Benutzern", - "bulk-register-user_description": "Berechtigung zur Massen-Registrierung von Benutzern", "Busiest_day": "Geschäftigster Tag", "Busiest_time": "Geschäftigste Zeit", - "busy": "beschäftigt", "Busy": "Beschäftigt", - "by": "von", - "cache_cleared": "Zwischenspeicher gelöscht", - "call-management": "Call Management", - "Cancel": "Abbrechen", - "Cancel_message_input": "Abbrechen", - "Canceled": "Abgebrochen", - "Cannot_invite_users_to_direct_rooms": "Benutzer können nicht in Direktnachrichten eingeladen werden.", - "Cannot_open_conversation_with_yourself": "Ein Selbstgespräch kann nicht gestartet werden", + "CAS_Login_Layout": "CAS-Login-Layout", + "CAS_Sync_User_Data_Enabled": "Benutzerdaten immer synchronisieren", + "CAS_Sync_User_Data_Enabled_Description": "Beim Login immer CAS-Benutzerdaten in die entsprechenden Attribute synchronisieren. Hinweis: Attribute werden beim Anlegen des Kontos in jedem Fall synchronisiert.", + "CAS_Sync_User_Data_FieldMap": "Attribut-Map", + "CAS_Sync_User_Data_FieldMap_Description": "Verwende dieses JSON um interne Attribut (key) aus externen Attributen (value) zu erstellen. Externe Attribut-Namen, die mit '%' umschlossen sind, werden in value-Strings interpoliert. \nBeispiel: `{\"email\"\"%email%\", \"name\"\"%firstname%, %lastname%\"}` \n \nDie Attribut-Map wird immer interpoliert. In CAS 1.0 ist nur das `username`-Attribut verfügbar. Mögliche interne Attribute sind username, name, email, rooms; rooms ist eine Komma-separierte Liste von Räumen, denen der Benutzer nach der Erstellung seines Kontos hinzugefügt wird. Beispielsweise würde `{\"rooms\" \"%Team%,%Abteilung%\"}` CAS-basierte Nutzerkonten zu den Räumen mit den Namen Team und Abteilung hinzufügen.", "CAS_autoclose": "Login-Popup automatisch schließen", "CAS_base_url": "SSO-Base-URL", "CAS_base_url_Description": "Basis-URL des externen Singe Sign On Services e.g: `https://sso.example.undef/sso/`", @@ -475,44 +437,47 @@ "CAS_button_label_color": "Farbe des Login-Button-Texts", "CAS_button_label_text": "Text des Login-Buttons", "CAS_enabled": "Aktiviert", - "CAS_Login_Layout": "CAS-Login-Layout", "CAS_login_url": "SSO-Login-URL", "CAS_login_url_Description": "Login URL des externen Single-Sign-On Services, bspw. `https://sso.example.undef/sso/login`", "CAS_popup_height": "Höhe des Login-Popups", "CAS_popup_width": "Breite des Login-Popups", - "CAS_Sync_User_Data_Enabled": "Benutzerdaten immer synchronisieren", - "CAS_Sync_User_Data_Enabled_Description": "Beim Login immer CAS-Benutzerdaten in die entsprechenden Attribute synchronisieren. Hinweis: Attribute werden beim Anlegen des Kontos in jedem Fall synchronisiert.", - "CAS_Sync_User_Data_FieldMap": "Attribut-Map", - "CAS_Sync_User_Data_FieldMap_Description": "Verwende dieses JSON um interne Attribut (key) aus externen Attributen (value) zu erstellen. Externe Attribut-Namen, die mit '%' umschlossen sind, werden in value-Strings interpoliert. \nBeispiel: `{\"email\"\"%email%\", \"name\"\"%firstname%, %lastname%\"}` \n \nDie Attribut-Map wird immer interpoliert. In CAS 1.0 ist nur das `username`-Attribut verfügbar. Mögliche interne Attribute sind username, name, email, rooms; rooms ist eine Komma-separierte Liste von Räumen, denen der Benutzer nach der Erstellung seines Kontos hinzugefügt wird. Beispielsweise würde `{\"rooms\" \"%Team%,%Abteilung%\"}` CAS-basierte Nutzerkonten zu den Räumen mit den Namen Team und Abteilung hinzufügen.", "CAS_version": "CAS Version", "CAS_version_Description": "Verwende nur eine CAS-Version, die von Deinem CAS-SSO-Provider unterstützt wird.", - "Categories": "Kategorien", "CDN_JSCSS_PREFIX": "CDN Prefix für JS/CSS", "CDN_PREFIX": "CDN-Präfix", "CDN_PREFIX_ALL": "CDP Prefix für alle Medien/Assets verwenden", + "COPY_TO_CLIPBOARD": "IN DIE ZWISCHENABLAGE KOPIEREN", + "CRM_Integration": "CRM-Integration", + "CROWD_Allow_Custom_Username": "Erlaube benutzerdefinierte Benutzernamen in Rocket.Chat", + "CROWD_Reject_Unauthorized": "Unauthorisierte ablehnen.", + "Cancel": "Abbrechen", + "Cancel_message_input": "Abbrechen", + "Canceled": "Abgebrochen", + "Cannot_invite_users_to_direct_rooms": "Benutzer können nicht in Direktnachrichten eingeladen werden.", + "Cannot_open_conversation_with_yourself": "Ein Selbstgespräch kann nicht gestartet werden", + "Categories": "Kategorien", "Certificates_and_Keys": "Zertifikate und Schlüssel", "Change_Room_Type": "Ändere den Typ des Raums", "Changing_email": "E-Mail-Adresse ändern", - "channel": "Kanal", "Channel": "Kanal", + "Channel_Archived": "Kanal mit dem Namen '#%s' wurde erfolgreich archiviert", + "Channel_Name_Placeholder": "Bitte gib einen Namen für den Kanal ein", + "Channel_Unarchived": "Kanal mit dem Namen '#%s' ist nicht länger archiviert", + "Channel_already_Unarchived": "Kanal mit dem Namen '#%s' ist bereits im unarchivierten Zustand", "Channel_already_exist": "Der Kanal '#%s' ist bereits vorhanden.", "Channel_already_exist_static": "Der Kanal existiert bereits", - "Channel_already_Unarchived": "Kanal mit dem Namen '#%s' ist bereits im unarchivierten Zustand", - "Channel_Archived": "Kanal mit dem Namen '#%s' wurde erfolgreich archiviert", "Channel_created": "Kanal `#%s` wurde angelegt.", "Channel_doesnt_exist": "Der Kanal `#%s` existiert nicht.", "Channel_name": "Kanal Name", - "Channel_Name_Placeholder": "Bitte gib einen Namen für den Kanal ein", "Channel_to_listen_on": "Kanal, auf dem gehört werden soll", - "Channel_Unarchived": "Kanal mit dem Namen '#%s' ist nicht länger archiviert", "Channels": "Kanäle", "Channels_are_where_your_team_communicate": "In Kanälen kommuniziert Dein Team", "Channels_list": "Liste der öffentlichen Kanäle", + "Chat_Now": "Jetzt chatten", "Chat_button": "Chat-Button", "Chat_closed": "Chat geschlossen", "Chat_closed_by_agent": "Chat vom Agent geschlossen", "Chat_closed_successfully": "Chat erfolgreich geschlossen", - "Chat_Now": "Jetzt chatten", "Chat_window": "Chatfenster", "Chatops_Enabled": "ChatOps aktivieren", "Chatops_Title": "ChatOps-Panel", @@ -522,12 +487,7 @@ "Choose_the_alias_that_will_appear_before_the_username_in_messages": "Gib einen Alias an. Dieser wird der vor dem Benutzernamen in Nachrichten angezeigt.", "Choose_the_username_that_this_integration_will_post_as": "Wähle den Benutzernamen, unter dem die Integration Nachrichten postet.", "Clean_Usernames": "Benutzernamen löschen", - "clean-channel-history": "Kanalhistorie löschen", - "clean-channel-history_description": "Berechtigung, die Historie aus Kanälen zu löschen", - "clear": "Löschen", "Clear_all_unreads_question": "Möchtest Du alle ungelesenen Nachrichten löschen?", - "clear_cache_now": "Zwischenspeicher jetzt leeren", - "clear_history": "Verlauf löschen", "Click_here": "Hier klicken", "Click_here_for_more_info": "Für weitere Informationen hier klicken", "Click_the_messages_you_would_like_to_send_by_email": "Klicken auf die Nachrichten, die Du per E-Mail senden möchtest", @@ -535,12 +495,7 @@ "Client_ID": "Client-ID", "Client_Secret": "Client-Geheimnis", "Clients_will_refresh_in_a_few_seconds": "Clients werden in wenigen Sekunden aktualisiert", - "close": "Schließen", "Close": "Schließen", - "close-livechat-room": "Livechat-Raum schließen", - "close-livechat-room_description": "Berechtigung, den aktuellen Livechat-Raum zu schließen", - "close-others-livechat-room": "Livechat-Raum schließen", - "close-others-livechat-room_description": "Berechtigung, andere Livechat-Räume zu schließen", "Closed": "Geschlossen", "Closed_by_visitor": "Durch Besucher geschlossen", "Closing_chat": "Schließe Chat", @@ -570,16 +525,15 @@ "Cloud_workspace_support": "Wenn Du Probleme mit einem Cloud-Dienst hast, versuche zunächst, die Synchronisierung durchzuführen. Wenn das Problem weiterhin besteht, öffne ein Support-Ticket in der Cloud-Konsole.", "Collaborative": "Kollaborativ", "Collapse_Embedded_Media_By_Default": "Eingebettete Medien standardmäßig ausblenden", - "color": "Farbe", "Color": "Farbe", "Colors": "Farben", "Commands": "Befehle", "Comment_to_leave_on_closing_session": "Kommentar, der beim Schließen einer Konversation hinterlassen wird", "Common_Access": "Allgemeiner Zugriff", "Community": "Community", - "Condensed": "Komprimiert", "Completed": "Abgeschlossen", "Computer": "Computer", + "Condensed": "Komprimiert", "Confirm_new_password": "Bestätige Dein neues Passwort", "Confirm_password": "Bestätige Dein Passwort", "Connect": "Verbinden", @@ -595,7 +549,6 @@ "Conversation": "Gespräch", "Conversation_closed": "Gespräch geschlossen: {{comment}}.", "Conversation_finished_message": "Konversation beendete Nachricht", - "conversation_with_s": "die Konversation mit %s", "Conversations": "Gespräche", "Conversations_per_day": "Konversationen pro Tag", "Convert_Ascii_Emojis": "ASCII zu Emoji konvertieren", @@ -603,8 +556,6 @@ "Copy": "Kopieren", "Copy_text": "Text kopieren", "Copy_to_clipboard": "In die Zwischenablage kopieren", - "COPY_TO_CLIPBOARD": "IN DIE ZWISCHENABLAGE KOPIEREN", - "could-not-access-webdav": "Auf WebDAV konnte nicht zugegriffen werden", "Count": "Zähler", "Counters": "Zähler", "Country": "Land", @@ -797,7 +748,6 @@ "Country_Saudi_Arabia": "Saudi Arabien", "Country_Senegal": "Senegal", "Country_Serbia_and_Montenegro": "Serbien und Montenegro", - "inline_code": "Code", "Country_Seychelles": "Seychellen", "Country_Sierra_Leone": "Sierra Leone", "Country_Singapore": "Singapur", @@ -852,29 +802,16 @@ "Create_A_New_Channel": "Kanal anlegen", "Create_new": "Neu erstellen", "Create_unique_rules_for_this_channel": "Erstelle eigene Regeln für diesen Kanal", - "create-c": "Öffentliche Kanäle anlegen", - "create-c_description": "Berechtigung, öffentliche Kanäle anzulegen", - "create-d": "Direktnachrichten anlegen", - "create-d_description": "Berechtigung, Direktnachrichten zu senden", - "create-p": "Private Kanäle anlegen", - "create-p_description": "Berechtigung, private Kanäle anzulegen", - "create-personal-access-tokens": "Persönliche Access-Tokens erzeugen", - "create-user": "Benutzer anlegen", - "create-user_description": "Berechtigung, Benutzer anzulegen", "Created_at": "Erstellt am", "Created_at_s_by_s": "Erstellt am %s von %s", "Created_at_s_by_s_triggered_by_s": "Erstellt um %s von %s, angestoßen von %s", - "CRM_Integration": "CRM-Integration", - "CROWD_Allow_Custom_Username": "Erlaube benutzerdefinierte Benutzernamen in Rocket.Chat", - "CROWD_Reject_Unauthorized": "Unauthorisierte ablehnen.", "Crowd_sync_interval_Description": "Das Intervall zwischen Synchronisierungen. Z. B. `every 24 hours` oder `on the first day of the week`. Weitere Beispiele unter [Cron Text Parser](http://bunkat.github.io/later/parsers.html#text)", "Current_Chats": "Aktuelle Chats", "Current_File": "Aktuelle Datei", "Current_Status": "Aktueller Status", "Custom": "Benutzerdefiniert", "Custom CSS": "Benutzerdefiniertes CSS", - "Custom_agent": "Kundenspezifischer Agent", - "Custom_dates": "Eigenes Zeitfenster", + "CustomSoundsFilesystem": "Dateisystem für benutzerdefinierte Töne", "Custom_Emoji": "Benutzerdefinierte Emoji", "Custom_Emoji_Add": "Neuen Emoji hinzufügen", "Custom_Emoji_Added_Successfully": "Benutzerdefinierter Emoji erfolgreich hinzugefügt", @@ -885,7 +822,6 @@ "Custom_Emoji_Info": "Benutzerdefinierter-Emoji-Info", "Custom_Emoji_Updated_Successfully": "Benutzerdefinierter Emoji erfolgreich aktualisiert", "Custom_Fields": "Benutzerdefinierte Felder", - "Custom_oauth_helper": "Bei der Einrichtung Deines OAuth-Providers muss eine Rückruf-URL angegeben werden. Benutze dafür folgende URL:

%s
", "Custom_Script_Logged_In": "Benutzerdefiniertes Skript für angemeldete Benutzer", "Custom_Script_Logged_Out": "Benutzerdefiniertes Skript für abgemeldete Benutzer", "Custom_Scripts": "Benutzerdefinierte Skripte", @@ -898,15 +834,10 @@ "Custom_Sound_Saved_Successfully": "Der eigene Ton wurde erfolgreich gespeichert", "Custom_Translations": "Benutzerdefinierte Übersetzungen", "Custom_Translations_Description": "Ein gültiges JSON, in dem die Schlüssel Sprachkürzel sind, die wiederum Tupel von Schlüssel und Übersetzungen enthalten. Beispiel: \n `{\"en\": {\"Channels\": \"Rooms\"},\"pt\": {\"Channels\": \"Salas\"}}`", + "Custom_agent": "Kundenspezifischer Agent", + "Custom_dates": "Eigenes Zeitfenster", + "Custom_oauth_helper": "Bei der Einrichtung Deines OAuth-Providers muss eine Rückruf-URL angegeben werden. Benutze dafür folgende URL:
%s
", "Customize": "anpassen", - "CustomSoundsFilesystem": "Dateisystem für benutzerdefinierte Töne", - "Dashboard": "Dashboard", - "Data_processing_consent_text": "Text der Aufforderung zur Einwilligung zur Datenverarbeitung", - "Data_processing_consent_text_description": "Verwende diese Einstellung, um zu erläutern, dass während des Gesprächs persönliche Informationen des Kunden gesammelt, gespeichert und verarbeitet werden können.", - "Date": "Datum", - "Date_From": "Von", - "Date_to": "bis", - "days": "Tage", "DB_Migration": "Datenbankmigration", "DB_Migration_Date": "Datenbankmigrationsdatum", "DDP_Rate_Limit_Connection_By_Method_Enabled": "Nach Verbindungsmethode begrenzen; aktiviert", @@ -924,27 +855,23 @@ "DDP_Rate_Limit_User_Enabled": "Nach Benutzer begrenzen: Aktiviert", "DDP_Rate_Limit_User_Interval_Time": "Beschränkung durch Benutzer: Intervallzeit", "DDP_Rate_Limit_User_Requests_Allowed": "Beschränkung durch Benutzer: Anforderungen zulässig", + "Dashboard": "Dashboard", + "Data_processing_consent_text": "Text der Aufforderung zur Einwilligung zur Datenverarbeitung", + "Data_processing_consent_text_description": "Verwende diese Einstellung, um zu erläutern, dass während des Gesprächs persönliche Informationen des Kunden gesammelt, gespeichert und verarbeitet werden können.", + "Date": "Datum", + "Date_From": "Von", + "Date_to": "bis", "Deactivate": "Deaktivieren", "Decline": "ablehnen", "Default": "Voreinstellung", "Delete": "Löschen", - "Delete_message": "Nachricht löschen", - "Delete_my_account": "Mein Konto löschen", "Delete_Room_Warning": "Beim Löschen eines Raums werden alle Nachrichten in diesem Raum unwiderruflich gelöscht.", "Delete_User_Warning": "Beim Löschen eines Benutzers werden alle Nachrichten des Benutzers unwiderruflich gelöscht.", "Delete_User_Warning_Delete": "Beim Löschen eines Benutzers werden alle Nachrichten des Benutzers unwiderruflich gelöscht.", "Delete_User_Warning_Keep": "Der Benutzer wird gelöscht, aber seine Nachrichten bleiben sichtbar. Das kann nicht rückgängig gemacht werden.", "Delete_User_Warning_Unlink": "Durch das Löschen eines Benutzers wird der Benutzername aus allen Nachrichten gelöscht. Das kann nicht rückgängig gemacht werden.", - "delete-c": "Öffentliche Kanäle löschen", - "delete-c_description": "Berechtigung, öffentliche Kanäle zu löschen", - "delete-d": "Direktnachrichten löschen", - "delete-d_description": "Berechtigung, Direktnachrichten zu löschen", - "delete-message": "Nachricht löschen", - "delete-message_description": "Berechtigung, eine Nachricht in einem Raum zu löschen", - "delete-p": "Private Kanäle löschen", - "delete-p_description": "Berechtigung, private Kanäle zu löschen", - "delete-user": "Benutzer löschen", - "delete-user_description": "Berechtigung, einen Benutzer zu löschen", + "Delete_message": "Nachricht löschen", + "Delete_my_account": "Mein Konto löschen", "Deleted": "Gelöscht!", "Department": "Abteilung", "Department_removed": "Die Abteilung wurde gelöscht.", @@ -961,9 +888,7 @@ "Desktop_Notifications_Enabled": "Desktop-Benachrichtigungen sind aktiviert.", "Desktop_Notifications_Not_Enabled": "Desktopbenachrichtigungen sind nicht aktiviert", "Details": "Details", - "line": "Zeile", "Different_Style_For_User_Mentions": "Anderer Stil für Benutzer-Erwähnungen", - "Direct_message_someone": "Jemandem eine Direktnachricht schicken", "Direct_Messages": "Direktnachrichten", "Direct_Reply": "Direktantwort", "Direct_Reply_Advice": "Du kannst direkt auf diese E-Mail antworten. Lass hierbei vorherige Nachrichten unverändert.", @@ -984,6 +909,7 @@ "Direct_Reply_Separator_Description": "[Nur verändern, wenn Du wirklich sicher bist, was Du da tust (s. Dokumentation).] \nTrennzeichen zwischen Base- und Tag-Teil der E-Mail", "Direct_Reply_Username": "Benutzername", "Direct_Reply_Username_Description": "Bitte verwende eine absolute E-Mail-Adresse. Tagging ist nicht erlaubt und würde überschrieben.", + "Direct_message_someone": "Jemandem eine Direktnachricht schicken", "Directory": "Verzeichnis", "Disable_Facebook_integration": "Fakebook Integration deaktivieren", "Disable_Notifications": "Benachrichtigungen deaktivieren", @@ -999,7 +925,6 @@ "Discussion_target_channel_description": "Wähle einen Kanal oder eine Gruppe aus, die zu Deinem Anliegen passt", "Discussion_target_channel_prefix": "Es wird eine Diskussion erstellt in...", "Discussion_title": "Neue Diskussion erstellen", - "discussion-created": "{{message}}", "Discussions": "Diskussionen", "Display_chat_permissions": "Chat-Berechtigungen anzeigen", "Display_offline_form": "Formular für Offline-Kontakt anzeigen", @@ -1024,21 +949,10 @@ "Dry_run": "Probelauf", "Dry_run_description": "Es wird nur eine E-Mail an die Adresse aus dem Feld \"Absender\" geschickt. Die E-Mail-Adresse muss zu einem gültigen Benutzer gehören.", "Duplicate_archived_channel_name": "Ein archivierter Kanal mit dem Namen '%s' existiert bereits.", - "Markdown_Headers": "Markdown-Überschriften", - "Markdown_Marked_Breaks": "Formatierte Umbrüche", "Duplicate_archived_private_group_name": "Eine archivierter private Gruppe mit dem Namen '%s' existiert bereits.", "Duplicate_channel_name": "Ein Kanal mit dem Namen '%s' existiert bereits", - "Markdown_Marked_GFM": "Formatierung mit Github Flavoured Markdown (GFM)", - "Markdown_Marked_Pedantic": "Pedantisch Formatieren", - "Markdown_Marked_SmartLists": "Formatierte smarte Listen", "Duplicate_private_group_name": "Eine private Gruppe mit dem Namen '%s' existiert bereits.", - "Markdown_Marked_Smartypants": "Formatiere mit intelligenter Punktsetzung (\"Smartypants\")", "Duplicated_Email_address_will_be_ignored": "Doppelte E-Mail_Adressen werden ignoriert.", - "Markdown_Marked_Tables": "Formatierte Tabellen", - "duplicated-account": "Doppeltes Konto", - "Markdown_Parser": "Markdown Parser", - "Markdown_SupportSchemesForLink": "Unterstützte Markdown- Schemata für Links", - "Markdown_SupportSchemesForLink_Description": "Kommata getrennte Liste von erlaubten Schemata", "E2E_Enable_description": "Aktiviere diese Option, um Direktnachrichten und private Gruppen verschlüsseln zu können.", "E2E_Enabled": "E2E aktiviert", "E2E_Encryption_Password_Explanation": "Du kannst jetzt verschlüsselte private Gruppen und Direktnachrichten erstellen. Du kannst auch vorhandene private Gruppen oder Direktnachrichten verschlüsseln.

Bitte bewahre Dein Passwort an einem sicheren Ort auf - Du musst ihn auf anderen Geräten eingeben, auf denen Du die Ende-zu-Ende-Verschlüsselung verwenden möchtest.", @@ -1047,50 +961,25 @@ "Edit": "Bearbeiten", "Edit_Custom_Field": "Benutzerdefinierte Felder bearbeiten", "Edit_Department": "Abteilung bearbeiten", - "Message_AllowSnippeting": "Erlauben, Snippets aus Nachrichten zu erstellen", - "Edit_previous_message": "`%s` - Bearbeite vorherige Nachricht", "Edit_Trigger": "Trigger bearbeiten", - "Message_Attachments_GroupAttach": "Schaltflächen für Anhänge gruppieren", - "Message_Attachments_GroupAttachDescription": "Dies sorgt dafür, dass die Schaltflächen in einem erweiterbaren Menü untergebracht werden. So wird weniger Bildschirmplatz benötigt.", - "edit-message": "Nachricht bearbeiten", - "edit-message_description": "Berechtigung, eine Nachricht in einem Raum zu bearbeiten", - "edit-other-user-active-status": "Online-Status anderer Benutzer ändern", - "edit-other-user-active-status_description": "Berechtigung, den Online-Status anderer Benutzer zu ändern", - "edit-other-user-avatar": "Anderen Benutzer-Avatar bearbeiten", - "edit-other-user-avatar_description": "Erlaubnis, den Avatar eines anderen Benutzers zu ändern.", - "edit-other-user-info": "Benutzer-Informationen Anderer ändern", - "edit-other-user-info_description": "Berechtigung, Benutzer-Informationen (Namen, Benutzernamen, E-Mail-Adresse) anderer Personen zu ändern", - "edit-other-user-password": "Passwort anderer Benutzer ändern", - "edit-other-user-password_description": "Berechtigung, das Passwort anderer Benutzer zu ändern. Dies erfordert die Berechtigung, die Benutzer-Informationen Anderer zu ändern.", - "edit-privileged-setting": "Besonders geschützte Einstellungen ändern", - "edit-privileged-setting_description": "Berechtigung, besonders geschützte Einstellungen zu ändern", - "edit-room": "Raum bearbeiten", - "edit-room_description": "Berechtigung, einen Raum zu bearbeiten (Name, Thema, Sichtbarkeit, Archivierung)", - "edit-room-retention-policy": "Bearbeiten der Aufbewahrungsrichtlinie für Räume", - "edit-room-retention-policy_description": "Berechtigung zum Bearbeiten der Aufbewahrungsrichtlinie eines Raums, um darin enthaltene Nachrichten automatisch zu löschen", - "multi_line": "Mehrzeilig", - "edited": "bearbeitet", + "Edit_previous_message": "`%s` - Bearbeite vorherige Nachricht", "Editing_room": "Raum bearbeiten", "Editing_user": "BenutzerIn bearbeiten", - "Message_ShowEditedStatus": "Bearbeitungsstatus anzeigen", "Education": "Bildung", - "Message_ShowFormattingTips": "Formatierungshilfe anzeigen", "Email": "E-Mail", - "Email_address_to_send_offline_messages": "E-Mail-Adresse zum Senden von Offline-Nachrichten", - "Email_already_exists": "Die E-Mail-Adresse existiert bereits.", - "Email_body": "E-Mail Textkörper", "Email_Change_Disabled": "Der Administrator hat das Ändern der E-Mail-Adresse deaktiviert.", "Email_Footer_Description": "Du kannst die folgenden Platzhalter verwenden: \n - [Site_Name] und `[Site_URL]` für den Anwendungsname und die URL. ", - "Email_from": "Absender", "Email_Header_Description": "Du kannst die folgenden Platzhalter verwenden: \n - [Site_Name] und `[Site_URL]` für den Anwendungsname und die URL. ", "Email_Notification_Mode": "Offline-E-Mail-Benachrichtigungen", "Email_Notification_Mode_All": "Jede Erwähnung/DM", "Email_Notification_Mode_Disabled": "deaktiviert", - "Email_or_username": "E-Mail-Adresse oder Nutzername", "Email_Placeholder": "Bitte gib Deine E-Mail-Adresse ein", "Email_Placeholder_any": "Bitte gib E-Mail-Adressen ein ...", - "email_style_description": "Vermeide verschachtelte Selektoren", - "email_style_label": "E-Mail-Stil", + "Email_address_to_send_offline_messages": "E-Mail-Adresse zum Senden von Offline-Nachrichten", + "Email_already_exists": "Die E-Mail-Adresse existiert bereits.", + "Email_body": "E-Mail Textkörper", + "Email_from": "Absender", + "Email_or_username": "E-Mail-Adresse oder Nutzername", "Email_subject": "Betreff", "Email_verified": "Die E-Mail-Adresse wurde bestätigt.", "Emoji": "Emoji", @@ -1107,16 +996,16 @@ "Encrypted_setting_changed_successfully": "Die Verschlüsselungseinstellungen wurden gespeichert ", "Encryption_key_saved_successfully": "Dein Verschlüsselungsschlüssel wurde erfolgreich gespeichert.", "End_OTR": "OTR beenden", + "Enter_Alternative": "Alternativer Modus (Senden mit Eingabetaste + Strg/Alt/Shift/Command)", + "Enter_Behaviour": "Verhalten der Eingabetaste:", + "Enter_Behaviour_Description": "Das verändert, ob die Eingabetaste eine Nachricht versendet oder einen Zeilenumbruch erzeugt", + "Enter_Normal": "Normaler Modus (mit Eingabetaste senden)", "Enter_a_name": "Gib einen Namen ein", "Enter_a_regex": "Regulären Ausdruck eingeben", "Enter_a_room_name": "Raumnamen eingeben", "Enter_a_username": "Benutzernamen eingeben", - "Enter_Alternative": "Alternativer Modus (Senden mit Eingabetaste + Strg/Alt/Shift/Command)", "Enter_authentication_code": "Dateisystem für eigene Emojis", - "Enter_Behaviour": "Verhalten der Eingabetaste:", - "Enter_Behaviour_Description": "Das verändert, ob die Eingabetaste eine Nachricht versendet oder einen Zeilenumbruch erzeugt", "Enter_name_here": "Namen hier eingeben", - "Enter_Normal": "Normaler Modus (mit Eingabetaste senden)", "Enter_to": "Eingabetaste: ", "Enter_your_E2E_password": "Gib Dein Passwort für die Ende-Zu-Ende-Verschlüsselung ein", "Entertainment": "Unterhaltung", @@ -1126,155 +1015,43 @@ "Error_loading_pages": "Fehler beim Laden der Seite", "Error_sending_livechat_offline_message": "Fehler beim Versenden der Livechat-Offline-Nachricht", "Error_sending_livechat_transcript": "Fehler beim Versenden der Livechat-Mitschrift", - "error-action-not-allowed": "{{action}} ist nicht erlaubt", - "error-application-not-found": "Anwendung nicht gefunden", - "error-archived-duplicate-name": "Es gibt bereits einen archivierten Kanal mit dem Namen '{{room_name}}'", - "error-avatar-invalid-url": "Ungültige Avatar-URL: {{url}}", - "error-avatar-url-handling": "Fehler beim Übernehmen des Avatars- von URL ({{url}}) für {{username}}", - "error-cant-invite-for-direct-room": "Nutzer können nicht in Direktnachrichten eingeladen werden.", - "error-channels-setdefault-is-same": "Die Kanal-Standardeinstellung ist die gleiche wie die, auf die sie geändert werden würde.", - "error-channels-setdefault-missing-default-param": "Der bodyParam-Standard ist erforderlich", - "error-could-not-change-email": "Konnte E-Mail-Adresse nicht ändern", - "error-could-not-change-name": "Konnte den Namen nicht ändern", - "error-could-not-change-username": "Konnte den Benutzernamen nicht ändern", - "error-delete-protected-role": "Eine geschützte Rolle kann nicht gelöscht werden.", - "error-department-not-found": "Abteilung konnte nicht gefunden werden.", - "error-direct-message-file-upload-not-allowed": "Dateiaustausch ist in Direktnachrichten nicht möglich.", - "error-duplicate-channel-name": "Ein Kanal mit dem Namen '{{channel_name}}' existiert bereits.", - "error-edit-permissions-not-allowed": "Das Bearbeiten von Berechtigungen ist nicht zulässig", - "error-email-domain-blacklisted": "Die Domain der E-Mail-Adresse ist auf der schwarzen Liste.", - "error-email-send-failed": "Fehler beim Versuch, eine Email zu versenden: {{message}}", - "error-field-unavailable": "{{field}} wird leider schon verwendet. ", - "error-file-too-large": "Die Datei ist zu groß", - "error-import-file-extract-error": "Entpacken der Importdatei fehlgeschlagen", - "error-import-file-is-empty": "Die importierte Datei scheint leer zu sein.", - "error-import-file-missing": "Die zu importierende Datei wurde im angegebenen Pfad nicht gefunden.", - "error-importer-not-defined": "Der Importer wurde nicht richtig definiert, die Importklasse fehlt.", - "error-input-is-not-a-valid-field": "{{input}} ist kein gültiges {{field}}", - "error-invalid-account": "Ungültiges Konto", - "error-invalid-actionlink": "Ungültiger Aktionslink", - "error-invalid-arguments": "Ungültige Argumente", - "error-invalid-asset": "Ungültiges Asset", - "error-invalid-channel": "Ungültiger Kanal.", - "error-invalid-channel-start-with-chars": "Ungültiger Kanal. Beginne mit @ oder #", - "error-invalid-custom-field": "Ungültiges benutzerdefiniertes Feld", - "error-invalid-custom-field-name": "Unzulässiger Name für ein benutzerdefiniertes Feld. Benutze nur Buchstaben, Nummern, Binde- und Unterstriche.", - "error-invalid-date": "Das eingegebene Datum ist ungültig.", - "error-invalid-description": "Ungültige Beschreibung", - "error-invalid-domain": "Ungültige Domain", - "error-invalid-email": "Ungültige E-Mail-Adresse: {{email}}", - "error-invalid-email-address": "Ungültige E-Mail-Adresse", - "error-invalid-file-height": "Ungültige Bildhöhe der Datei", - "error-invalid-file-type": "Ungültiges Dateiformat", - "error-invalid-file-width": "Ungültige Bildhöhe der Datei", - "error-invalid-from-address": "Du hast eine ungültige E-Mail-Adresse als Empfänger angegeben.", - "error-invalid-integration": "Ungültige Integration", - "error-invalid-message": "Ungültige Nachricht", - "error-invalid-method": "Ungültige Methode", - "error-invalid-name": "Ungültiger Name", - "error-invalid-password": "Falsches Passwort", - "error-invalid-permission": "Ungültige Berechtigung", - "error-invalid-redirectUri": "Ungültige Redirect-URI", - "error-invalid-role": "Ungültige Rolle", - "error-invalid-room": "Ungültiger Raum", - "error-invalid-room-type": "{{type}} ist kein gültiger Raumtyp.", - "error-invalid-settings": "Ungültige Einstellungen übergeben", - "error-invalid-subscription": "Ungültiges Abonnement", - "error-invalid-token": "Ungültiger Token", - "error-invalid-triggerWords": "Ungültiges Trigger-Wort", - "error-invalid-urls": "Ungültige URLs", - "error-invalid-user": "Ungültiger Benutzer", - "error-invalid-username": "Ungültiger Benutzername", - "error-invalid-webhook-response": "Die Webhook-URL antwortete mit einem anderen Status als 200", - "error-logged-user-not-in-room": "Du bist nicht im Raum `%s`", - "error-message-deleting-blocked": "Nachrichten löschen ist gesperrt", - "error-message-editing-blocked": "Nachrichten bearbeiten ist gesperrt", - "error-message-size-exceeded": "Nachrichtengröße überschreitet Message_MaxAllowedSize", - "error-missing-unsubscribe-link": "Du musst einen Link zum Abmelden vom Verteiler angeben.", - "error-no-tokens-for-this-user": "Es liegen keine Tokens für diesen Benutzer vor", - "error-not-allowed": "Nicht erlaubt", - "error-not-authorized": "Nicht berechtigt", - "error-password-policy-not-met": "Das Passwort genügt nicht den hinterlegten Richtlinien", - "error-password-policy-not-met-maxLength": "Das Passwort ist zu lang", - "error-password-policy-not-met-minLength": "Das Passwort ist zu kurz", - "error-password-policy-not-met-oneLowercase": "Das Passwort entspricht nicht der Richtlinie des Servers mit mindestens einem Kleinbuchstaben", - "error-password-policy-not-met-oneNumber": "Das Passwort muss mindestens eine Zahl beinhalten", - "error-password-policy-not-met-oneSpecial": "Das Passwort muss mindestens ein Sonderzeichen beinhalten", - "error-password-policy-not-met-oneUppercase": "Das Passwort entspricht nicht der Richtlinie des Servers mit mindestens einem Großbuchstaben", - "error-password-policy-not-met-repeatingCharacters": "Im Passwort werden zu viele Buchstaben wiederholt", - "error-personal-access-tokens-are-current-disabled": "Persönliche Zugriffsschlüssel sind zurzeit deaktiviert", - "error-push-disabled": "Push-Benachrichtigungen sind deaktiviert", - "error-remove-last-owner": "Das ist der letzte Besitzer. Bitte bestimme einen neuen Besitzer, bevor Du diesen entfernst.", - "error-role-in-use": "Die Rolle kann nicht gelöscht werden, da sie gerade verwendet wird.", - "error-role-name-required": "Ein Rollenname muss angegeben werden", - "error-room-is-not-closed": "Das Zimmer ist nicht geschlossen", - "error-the-field-is-required": "Das Feld {{field}} ist erforderlich.", - "error-this-is-not-a-livechat-room": "Dies ist kein Livechat-Raum", - "error-token-already-exists": "Ein Zugangsschlüssel mit diesem Namen existiert bereits", - "error-token-does-not-exists": "Der Zugangsschlüssel existiert nicht", - "error-too-many-requests": "Fehler, zu viele Anfragen. Bitte mach langsamer! Du musst {{seconds}} Sekunden warten, bevor Du es erneut versuchen kannst.", - "error-user-has-no-roles": "Dem Benutzer sind keine Rollen zugewiesen.", - "error-user-is-not-activated": "Der Benutzer ist nicht aktiviert.", - "error-user-limit-exceeded": "Die Anzahl der Benutzer, die Du hinzufügen möchtest, übersteigt das vom Administrator gesetzte Limit.", - "error-user-not-in-room": "Der Benutzer ist nicht in diesem Raum.", - "error-user-registration-disabled": "Benutzerregistrierung ist deaktiviert", - "error-user-registration-secret": "Benutzerregistrierung ist nur über geheime URL erlaubt", - "error-you-are-last-owner": "Du bist der letzte Besitzer. Bitte bestimme einen neuen Besitzer, bevor Du den Raum verlässt.", "Errors_and_Warnings": "Fehler und Warnungen", "Esc_to": "Esc: ", "Event_Trigger": "Event Trigger", "Event_Trigger_Description": "Bitte wähle aus, welche Eventarten diesen ausgehenden Webhook auslösen", - "every_5_minutes": "Einmal alle 5 Minuten", - "every_10_seconds": "Einmal alle 10 Sekunden", - "every_30_minutes": "alle 30 Minuten", - "every_day": "Einmal jeden Tag", - "every_hour": "stündlich", - "every_minute": "Einmal pro Minute", - "every_second": "Einmal jede Sekunde", - "every_six_hours": "alle 6 Stunden", "Everyone_can_access_this_channel": "Jeder kann auf diesen Kanal zugreifen", "Example_s": "Beispiel: %s", - "except_pinned": "(außer denen, die gepinnt sind)", "Exclude_Botnames": "Bots ausschließen", "Exclude_Botnames_Description": "Keine Nachrichten von Bots verbreiten, deren Name dem oben genannten regulären Ausdruck entsprechen. Wenn das Feld leer bleibt, werden alle Nachrichten verbreitet.", "Exclude_pinned": "Pinned-Nachrichten ausschließen", "Execute_Synchronization_Now": "Jetzt eine Synchronisierung ausführen", "Exit_Full_Screen": "Vollbild verlassen", "Export_My_Data": "Meine Daten exportieren", - "expression": "Ausdruck", "Extended": "Erweitert", "External_Domains": "Externe Domains", "External_Queue_Service_URL": "URL der Queue des externen Dienstes", "External_Service": "Externer Dienst", - "Facebook_Page": "Facebook Seite", - "False": "Nein", - "Favorite": "Favorit", - "Favorite_Rooms": "Favoriten-Räume aktivieren", - "Favorites": "Favoriten", - "Feature_Depends_on_Livechat_Visitor_navigation_as_a_message_to_be_enabled": "Diese Funktion hängt davon ab, ob \"Besucher-Navigationsprotokoll als Nachricht senden\" aktiviert sein soll.", "FEDERATION_Discovery_Method": "Prüfmethode", "FEDERATION_Discovery_Method_Description": "Du kannst den Hub oder einen SRV- und einen TXT-Eintrag in Deinen DNS-Einträgen verwenden.", "FEDERATION_Domain": "Domain", "FEDERATION_Domain_Alert": "Nach dem Aktivieren dieser Funktion darf dieser Wert nicht geändert werden. Änderungen an der Domain können wir noch nicht verarbeiten.", "FEDERATION_Domain_Description": "Füge die Domäne hinzu, mit der dieser Server verlinkt werden soll - zum Beispiel: @ rocket.chat.", + "FEDERATION_Enabled": "Versuche, den Federation-Support zu integrieren. Um diesen Wert zu ändern, muss Rocket.Chat neu gestartet werden. ", + "FEDERATION_Enabled_Alert": "Federation-Support ist in Arbeit. Die Verwendung auf einem Produktionssystem wird derzeit nicht empfohlen.", "FEDERATION_Public_Key": "Öffentlicher Schüssel", "FEDERATION_Public_Key_Description": "Dies ist der Schlüssel, der mit den Peers geteilt werden muss.", "FEDERATION_Status": "Status", "FEDERATION_Test_Setup_Error": "Ich konnte Deinen Server mit dieser Konfiguration nicht finden. Bitte überprüfe Deine Einstellungen.", "FEDERATION_Test_Setup_Success": "Dein Föderations-Setup funktioniert - andere Server können diesen Server nun finden!", - "Retry_Count": "Anzahl der Wiederholungsversuche", + "Facebook_Page": "Facebook Seite", + "False": "Nein", + "Favorite": "Favorit", + "Favorite_Rooms": "Favoriten-Räume aktivieren", + "Favorites": "Favoriten", + "Feature_Depends_on_Livechat_Visitor_navigation_as_a_message_to_be_enabled": "Diese Funktion hängt davon ab, ob \"Besucher-Navigationsprotokoll als Nachricht senden\" aktiviert sein soll.", "Field": "Feld", "Field_removed": "Feld entfernt", "Field_required": "Feld erforderlich", - "File_exceeds_allowed_size_of_bytes": "Die Datei ist größer als das erlaubte Maximum von {{size}} Bytes", - "File_name_Placeholder": "Dateien suchen...", - "File_not_allowed_direct_messages": "Dateiaustausch ist in Direktnachrichten nicht möglich.", - "File_removed_by_automatic_prune": "Datei wurde durch automatische Bereinigung entfernt", - "File_removed_by_prune": "Die Datei wurde entfernt", - "File_type_is_not_accepted": "Dateityp wir nicht akzeptiert.", - "File_uploaded": "Datei hochgeladen", - "files": "Dateien", - "Files_only": "Entferne nur die angehängten Dateien, behalte Nachrichten", "FileSize_Bytes": "{{fileSize}} Bytes", "FileSize_KB": "{{fileSize}} KB", "FileSize_MB": "{{fileSize}} MB", @@ -1283,8 +1060,8 @@ "FileUpload_Enabled": "Hochladen von Dateien aktivieren", "FileUpload_Enabled_Direct": "Dateiaustausch ist in Direktnachrichten möglich.", "FileUpload_Error": "Datei-Upload-Fehler", - "FileUpload_File_Empty": "Datei ist leer", "FileUpload_FileSystemPath": "Systempfad", + "FileUpload_File_Empty": "Datei ist leer", "FileUpload_GoogleStorage_AccessId": "Google Storage Zugriffsschlüssel", "FileUpload_GoogleStorage_AccessId_Description": "Der Zugriffsschlüssel liegt üblicherweise in Form einer E-Mail-Adresse vor, z. B. \"`example-test@example.iam.gserviceaccount.com`\"", "FileUpload_GoogleStorage_Bucket": "Google Storage Bucket Name", @@ -1297,14 +1074,14 @@ "FileUpload_GoogleStorage_Secret_Description": "Bitte befolge [diese Schritte](https://github.com/CulturalMe/meteor-slingshot#google-cloud) und füge das Ergebnis hier ein.", "FileUpload_MaxFileSize": "Max. Größe für hochgeladene Dateien (in Bytes)", "FileUpload_MaxFileSizeDescription": "Setze den Wert auf -1, um die Dateigrößenbeschränkung zu entfernen.", - "FileUpload_MediaType_NotAccepted": "Medientyp wird nicht akzeptiert", "FileUpload_MediaTypeWhiteList": "Erlaubte Medientypen", "FileUpload_MediaTypeWhiteListDescription": "Kommaseparierte Liste von Medientypen. Um alle Medientypen zuzulassen, lass die Liste leer.", + "FileUpload_MediaType_NotAccepted": "Medientyp wird nicht akzeptiert", "FileUpload_ProtectFiles": "Hochgeladene Dateien schützen", "FileUpload_ProtectFilesDescription": "Nur authentifizierte Benutzer dürfen Dateien hochladen.", - "FileUpload_S3_Acl": "Amazon S3 ACL", "FileUpload_S3_AWSAccessKeyId": "Amazon S3 AWS-Access-Key-ID", "FileUpload_S3_AWSSecretAccessKey": "Amazon S3 AWS-Secret-Access-Key", + "FileUpload_S3_Acl": "Amazon S3 ACL", "FileUpload_S3_Bucket": "Amazon S3 Bucket-Name", "FileUpload_S3_BucketURL": "Bucket-URL", "FileUpload_S3_CDN": "CDN-Domain für Downloads", @@ -1327,6 +1104,14 @@ "FileUpload_Webdav_Upload_Folder_Path": "Ordnerpfad hochladen", "FileUpload_Webdav_Upload_Folder_Path_Description": "WebDAV-Ordnerpfad, in den die Dateien hochgeladen werden sollen", "FileUpload_Webdav_Username": "WebDAV Benutzername", + "File_exceeds_allowed_size_of_bytes": "Die Datei ist größer als das erlaubte Maximum von {{size}} Bytes", + "File_name_Placeholder": "Dateien suchen...", + "File_not_allowed_direct_messages": "Dateiaustausch ist in Direktnachrichten nicht möglich.", + "File_removed_by_automatic_prune": "Datei wurde durch automatische Bereinigung entfernt", + "File_removed_by_prune": "Die Datei wurde entfernt", + "File_type_is_not_accepted": "Dateityp wir nicht akzeptiert.", + "File_uploaded": "Datei hochgeladen", + "Files_only": "Entferne nur die angehängten Dateien, behalte Nachrichten", "Financial_Services": "Finanzdienstleistungen", "First_Channel_After_Login": "Erster Kanal nach dem Login", "First_response_time": "Erstreaktionszeit", @@ -1347,12 +1132,10 @@ "Force_visitor_to_accept_data_processing_consent": "Benutzer zwingen, zur Datenverarbeitung zuzustimmen", "Force_visitor_to_accept_data_processing_consent_description": "Benutzern ist es ohne Einwilligung nicht erlaubt einen Chat zu starten.", "Force_visitor_to_accept_data_processing_consent_enabled_alert": "Die Zustimmung zur Datenverarbeitung muss auf einem einfach nachvollziehbaren Grund für die Verarbeitung der Daten beruhen. Aus diesem Deshalb muss das Feld unten ausgefüllt werden. Das Feld muss Informationen enthalten, die dem Benutzer auf einfache Art und Weise erklären, warum seine personenbezogenen Daten verarbeitet werden müssen.", - "force-delete-message": "Nachricht forciert löschen", - "force-delete-message_description": "Berechtigung, eine Nachricht ohne weitere Prüfungen zu löschen", - "Forgot_password": "Passwort vergessen?", "Forgot_Password_Description": "Du kannst die folgenden Platzhalter verwenden: \n - `[Forgot_Password_Url]` für die Passwort-Wiederherstellungs-URL. \n - `[name]`, `[fname]`, `[lname]` für den vollstandigen Namen, Vornamen oder Nachnamen des Benutzers \n - `[email]` für die E-Mail-Adresse des Benutzers. \n - `[Site_Name]` und `[Site_URL]` für den Anwendungsnamen und die URL der Anwendung", "Forgot_Password_Email": "Hier Klicken um das Passwort zurückzusetzen.", "Forgot_Password_Email_Subject": "[Site_Name] - Passwort-Wiederherstellung", + "Forgot_password": "Passwort vergessen?", "Forgot_password_section": "Passwort vergessen", "Forward": "Weiterleiten", "Forward_chat": "Chat weiterleiten", @@ -1367,13 +1150,11 @@ "Full_Screen": "Vollbild", "Gaming": "Spiele", "General": "Allgemeines", - "github_no_public_email": "Du hast keine öffentliche E-Mail-Adresse in Deinem GitHub-Account.", - "strike": "durchgestrichen", "Give_the_application_a_name_This_will_be_seen_by_your_users": "Gib der Anwendung einen Namen. Alle Nutzer können diesen Namen sehen.", "Global": "Global", "Global Policy": "Globale Policy", - "Global_purge_override_warning": "Eine globale Aufbewahrungsrichtlinie ist vorhanden. Wenn Du die globale Aufbewahrungsrichtlinie außer Kraft setzt, kannst Du nur eine Richtlinie anwenden, die strenger ist als die globale Richtlinie.", "Global_Search": "Globale Suche", + "Global_purge_override_warning": "Eine globale Aufbewahrungsrichtlinie ist vorhanden. Wenn Du die globale Aufbewahrungsrichtlinie außer Kraft setzt, kannst Du nur eine Richtlinie anwenden, die strenger ist als die globale Richtlinie.", "Go_to_your_workspace": "Auf zu Deinem Arbeitsbereich!", "GoogleCloudStorage": "Google Cloud Speicher", "GoogleNaturalLanguage_ServiceAccount_Description": "Service-Konto SchlüsselDatei (JSON). Weiterführende Informationen dazu [hier](https://cloud.google.com/natural-language/docs/common/auth#set_up_a_service_account)", @@ -1382,10 +1163,7 @@ "Graphql_CORS": "GraphQL CORS", "Graphql_Enabled": "GraphQL aktiviert", "Graphql_Subscription_Port": "GraphQL Subscription Port", - "Snippet_Messages": "Nachrichten-Snippets", "Group_by_Type": "Gruppieren nach Typ", - "snippet-message": "Nachrichten-Snippet", - "snippet-message_description": "Berechtigung, ein Nachrichten-Snippet zu erstellen", "Group_discussions": "Gruppendiskussionen", "Group_favorites": "Gruppenfavoriten", "Group_mentions_disabled_x_members": "Die Gruppenerwähnungen `@all` und `@here` wurden für Räume mit mehr als {{total}} Mitgliedern deaktiviert.", @@ -1398,22 +1176,21 @@ "Hi_username": "Hallo [name]", "Hidden": "Versteckt", "Hide": "Verstecken", - "Hide_counter": "Zähler verstecken", - "Hide_flextab": "Rechte Seitenleiste über Klick verstecken", "Hide_Group_Warning": "Bist Du sicher, dass Du den privaten Kanal \"{{roomName}}\" verstecken möchtest?", "Hide_Livechat_Warning": "Bist Du Dir sicher, dass Du den Livechat mit \"{{roomName}}\" ausblenden möchtest?", "Hide_Private_Warning": "Bist Du Dir sicher, dass Du das Gespräch mit \"{{roomName}}\" verstecken möchtest?", - "Hide_roles": "Rollen ausblenden", - "Hide_room": "Raum verstecken", "Hide_Room_Warning": "Bist Du Dir sicher, dass Du den Raum \"{{roomName}}\" verstecken möchtest?", "Hide_Unread_Room_Status": "Ungelesen-Status des Raums nicht anzeigen", + "Hide_counter": "Zähler verstecken", + "Hide_flextab": "Rechte Seitenleiste über Klick verstecken", + "Hide_roles": "Rollen ausblenden", + "Hide_room": "Raum verstecken", "Hide_usernames": "Benutzernamen ausblenden", "Highlights": "Hervorhebungen", "Highlights_How_To": "Um benachrichtigt zu werden, wenn ein Wort oder Ausdruck erwähnt wird, trage ihn hier ein. Du kannst Wörter und Ausdrücke mit Kommata trennen. Groß- und Kleinschreibung wird hierbei nicht berücksichtigt.", "Highlights_List": "Wörter hervorheben", "History": "Chronik", "Host": "Host", - "hours": "Stunden", "Hours": "Stunden", "How_friendly_was_the_chat_agent": "Wie freundlich war der Chat-Agent?", "How_knowledgeable_was_the_chat_agent": "Wie sachkundig war der Chat-Agent?", @@ -1421,9 +1198,26 @@ "How_responsive_was_the_chat_agent": "Wie reaktionsschnell war der Chat-Agent?", "How_satisfied_were_you_with_this_chat": "Wie zufrieden warst Du mit diesem Chat?", "How_to_handle_open_sessions_when_agent_goes_offline": "Behandlung von offenen Konversationen, wenn ein Agent Offline geht", + "IMAP_intercepter_Not_running": "IMAP intercepter läuft nicht", + "IMAP_intercepter_already_running": "IMAP intercepter läuft bereits", + "IRC_Channel_Join": "Ausgabe des JOIN-Befehls", + "IRC_Channel_Leave": "Ausgabe des PART-Befehls", + "IRC_Channel_Users": "Ausgabe des NAMES-Befehls", + "IRC_Channel_Users_End": "Ende der Ausgabe des NAMES-Befehls", + "IRC_Description": "Internet Relay Chat (IRC) ist ein text-basiertes Gruppen-Kommunikations-Werkzeug. Dieses Paket integriert IRC-Funktionalität in Rocket.Chat.", + "IRC_Enabled": "Versuche, IRC in Rocket.Chat zu integrieren. Eine Änderung dieser Einstellung erfordert einen Neustart des Rocket.Chat Servers.", + "IRC_Enabled_Alert": "IRC Support ist ein work in progress. Die Verwendung in einem Produktionssystem wird derzeit nicht empfohlen.", + "IRC_Federation": "IRC-Föderation", + "IRC_Federation_Disabled": "IRC Federation ist deaktiviert.", + "IRC_Hostname": "Der IRC-Host, zu dem verbunden werden soll", + "IRC_Login_Fail": "Ausgabe nach der fehlerhaften Verbindung zum IRC-Server", + "IRC_Login_Success": "Ausgabe nach der erfolgreichen Verbindung zum IRC-Server", + "IRC_Message_Cache_Size": "Cache-Limit für ausgehende Nachrichten", + "IRC_Port": "Port des IRC-Host, zu dem verbunden werden soll", + "IRC_Private_Message": "Ausgabe des PRIVMSG-Befehls", + "IRC_Quit": "Ausgabe beim Beenden einer IRC-Session", "Idle_Time_Limit": "Abwesend nach Inaktivität", "Idle_Time_Limit_Description": "Zeitraum bis sich der Status in away ändert. Der Wert muss in Sekunden angegeben werden.", - "if_they_are_from": "(wenn sie von %s sind)", "If_this_email_is_registered": "Wenn es sich um eine registrierte E-Mail-Adresse handelt, werden wir an diese eine Anleitung zum Zurücksetzen des Passworts senden. Solltest Du zeitnah keine E-Mail erhalten, versuche es noch einmal.", "If_you_didnt_ask_for_reset_ignore_this_email": "Wenn Du das Zurücksetzen des Kennworts nicht angefordert hast, kannst Du diese E-Mail ignorieren.", "Iframe_Integration": "Iframe-Integration", @@ -1437,8 +1231,6 @@ "Iframe_Integration_send_target_origin_Description": "Herkunfts-URL (inkl. Protokoll-Präfix), an die die Befehle gesendet werden sollen (bspw. `https://localhost`, oder *, um ein Senden nicht einzuschränken", "Ignore": "Ignorieren", "Ignored": "Ignoriert", - "IMAP_intercepter_already_running": "IMAP intercepter läuft bereits", - "IMAP_intercepter_Not_running": "IMAP intercepter läuft nicht", "Impersonate_next_agent_from_queue": "Nimm die Identität des nächsten Agenten aus der Warteschlange an", "Impersonate_user": "Benutzeridentität übernehmen", "Impersonate_user_description": "Wenn aktiviert, erstellt die Integration Nachrichten mit der Identität des Benutzers der die Integration ausgelöst hat", @@ -1446,10 +1238,18 @@ "Import_Type": "Importart", "Importer_Archived": "Archiviert", "Importer_CSV_Information": "Der CSV-Importer erfordert ein spezielles Format. Bitte lies die Dokumentation, wie die ZIP-Datei strukturiert sein muss:", - "Importer_done": "Die Daten wurden erfolgreich importiert!", "Importer_ExternalUrl_Description": "Du kannst eine öffentlich erreichbare URL zur Datei angeben.", - "Importer_finishing": "Import abgeschlossen.", "Importer_From_Description": "Importiert Daten von {{from}} nach Rocket.Chat.", + "Importer_Prepare_Restart_Import": "Import neu starten", + "Importer_Prepare_Start_Import": "Import starten", + "Importer_Prepare_Uncheck_Archived_Channels": "Archivierte Kanäle ignorieren", + "Importer_Prepare_Uncheck_Deleted_Users": "Gelöschte Nutzer beim Import ignorieren", + "Importer_Slack_Users_CSV_Information": "Die hochgeladene Datei muss der Slack Benutzerexport im CSV Format sein. Siehe hier für weitere Informationen:", + "Importer_Source_File": "Auswahl der Quelldatei", + "Importer_Upload_FileSize_Message": "Die Servereinstellungen erlauben einen Datei Upload mit einer maximalen Dateigröße von {{maxFileSize}}.", + "Importer_Upload_Unlimited_FileSize": "Die Servereinstellungen erlauben einen Datei Upload mit beliebiger Dateigröße.", + "Importer_done": "Die Daten wurden erfolgreich importiert!", + "Importer_finishing": "Import abgeschlossen.", "Importer_import_cancelled": "Der Import wurde abgebrochen.", "Importer_import_failed": "Während des Importierens ist ein Fehler aufgetreten.", "Importer_importing_channels": "Importiere die Kanäle.", @@ -1458,16 +1258,8 @@ "Importer_importing_users": "Importiere die Benutzer.", "Importer_not_in_progress": "Der Importer läuft derzeit nicht.", "Importer_not_setup": "Der Importer ist nich richtig konfiguriert. Er lieferte keine Daten zurück", - "Importer_Prepare_Restart_Import": "Import neu starten", - "Importer_Prepare_Start_Import": "Import starten", - "Importer_Prepare_Uncheck_Archived_Channels": "Archivierte Kanäle ignorieren", - "Importer_Prepare_Uncheck_Deleted_Users": "Gelöschte Nutzer beim Import ignorieren", "Importer_progress_error": "Konnte den Fortschritt des Imports nicht ermitteln.", "Importer_setup_error": "Bei der Konfiguration des Importers ist ein Fehler aufgetreten.", - "Importer_Slack_Users_CSV_Information": "Die hochgeladene Datei muss der Slack Benutzerexport im CSV Format sein. Siehe hier für weitere Informationen:", - "Importer_Source_File": "Auswahl der Quelldatei", - "Importer_Upload_FileSize_Message": "Die Servereinstellungen erlauben einen Datei Upload mit einer maximalen Dateigröße von {{maxFileSize}}.", - "Importer_Upload_Unlimited_FileSize": "Die Servereinstellungen erlauben einen Datei Upload mit beliebiger Dateigröße.", "Importing_channels": "Importiere Kanäle", "Importing_messages": "Importiere Nachrichten", "Importing_users": "Importiere Benutzer", @@ -1476,7 +1268,6 @@ "Incoming_WebHook": "Eingehender Webhook", "Industry": "Industrie", "Info": "Info", - "initials_avatar": "Avatar aus Initialien", "Install": "Installieren", "Install_Extension": "Erweiterung installieren", "Install_FxOs": "Rocket.Chat in Deinen Firefox installieren", @@ -1491,9 +1282,7 @@ "Instructions": "Anleitung", "Instructions_to_your_visitor_fill_the_form_to_send_a_message": "Offline-Information für Deine Benutzer, dass diese eine Nachricht hinterlassen können", "Insurance": "Versicherung", - "Integration_added": "Die Integration wurde hinzugefügt.", "Integration_Advanced_Settings": "Erweiterte Einstellungen", - "Integration_disabled": "Integration deaktiviert", "Integration_History_Cleared": "Integrationshistorie erfolgreich gelöscht", "Integration_Incoming_WebHook": "Eingehender WebHook", "Integration_New": "Neue Integration", @@ -1518,11 +1307,12 @@ "Integration_Retry_Failed_Url_Calls_Description": "Soll es die Integration bei Fehlversuchen nach einer angemessen Zeit erneut versuchen?", "Integration_Run_When_Message_Is_Edited": "Beim Bearbeiten ausführen", "Integration_Run_When_Message_Is_Edited_Description": "Soll die Integration ausgeführt werden, wenn eine Nachricht bearbeitet wurde? Wenn diese Option deaktiviert wurde, wird sie nur für **neue** Nachrichten ausgeführt werden.", - "Integration_updated": "Die Integration wurde aktualisiert.", "Integration_Word_Trigger_Placement": "Wörter können überall vorkommen", "Integration_Word_Trigger_Placement_Description": "Soll das auslösende Wort irgendwo im Satz stehen können (und nicht nur am Anfang)? ", + "Integration_added": "Die Integration wurde hinzugefügt.", + "Integration_disabled": "Integration deaktiviert", + "Integration_updated": "Die Integration wurde aktualisiert.", "Integrations": "Integrationen", - "Integrations_for_all_channels": "Gib all_public_channels für alle öffentlichen Kanäle ein , all_private_groups für alle privaten Kanäle und all_direct_messages für Direktnachrichten.", "Integrations_Outgoing_Type_FileUploaded": "Hochgeladene Datei", "Integrations_Outgoing_Type_RoomArchived": "Archivierter Raum", "Integrations_Outgoing_Type_RoomCreated": "Erstellter Raum (öffentlich und privat)", @@ -1530,19 +1320,20 @@ "Integrations_Outgoing_Type_RoomLeft": "Benutzer hat den Raum verlassen", "Integrations_Outgoing_Type_SendMessage": "Nachricht gesendet", "Integrations_Outgoing_Type_UserCreated": "Benutzer angelegt", + "Integrations_for_all_channels": "Gib all_public_channels für alle öffentlichen Kanäle ein , all_private_groups für alle privaten Kanäle und all_direct_messages für Direktnachrichten.", "InternalHubot": "Interner Hubot", "InternalHubot_EnableForChannels": "Aktivieren für die öffentlichen Kanäle", "InternalHubot_EnableForDirectMessages": "Aktivieren für Direktnachrichten", "InternalHubot_EnableForPrivateGroups": "Aktivieren für die private Kanäle", "InternalHubot_PathToLoadCustomScripts": "Ordner, aus dem die Skripte geladen werden sollen", - "InternalHubot_reload": "Skripte erneut laden", "InternalHubot_ScriptsToLoad": "Zu ladende Skripte", "InternalHubot_ScriptsToLoad_Description": "Bitte gib eine durch Kommata getrennte Liste von zu ladenden Skripten aus dem gewählten Ordner an", "InternalHubot_Username_Description": "Dies muss ein gültiger Benutzername eines auf dem Server registrierten Bots sein.", - "Invalid_confirm_pass": "Die Passwörter stimmen nicht überein.", - "Invalid_email": "Die eingegebene E-Mail-Adresse ist ungültig.", + "InternalHubot_reload": "Skripte erneut laden", "Invalid_Export_File": "Die angegebene Datei ist keine gültige %s Exportdatei.", "Invalid_Import_File_Type": "Ungültiges Import-Dateiformat .", + "Invalid_confirm_pass": "Die Passwörter stimmen nicht überein.", + "Invalid_email": "Die eingegebene E-Mail-Adresse ist ungültig.", "Invalid_name": "Es muss ein Name angegeben werden.", "Invalid_notification_setting_s": "Ungültige Benachrichtigungseinstellung: %s", "Invalid_pass": "Es muss ein Passwort angegeben werden.", @@ -1552,7 +1343,6 @@ "Invalid_setting_s": "Ungültige Einstellung: %s", "Invalid_two_factor_code": "Fehlerhafter Zwei-Faktor-Code", "Invalid_username": "Der eingegebene Benutzername ist ungültig", - "invisible": "unsichtbar", "Invisible": "Unsichtbar", "Invitation": "Einladung", "Invitation_Email_Description": "Du kannst die folgenden Platzhalter verwenden: \n - [email] für den Empfänger der E-Mail. \n - [Site_Name] und `[Site_URL]` jeweils für den Anwendungsnamen und die URL. ", @@ -1560,42 +1350,22 @@ "Invitation_HTML_Default": "

Du wurdest zu [Site_Name]

eingeladen. Besuche `[Site_URL]` und probiere noch heute die beste Open-Source-Chat-Lösung aus!

", "Invitation_Subject": "Betreff der Einladung", "Invitation_Subject_Default": "Du wurdest zu [Site_Name] eingeladen", + "Invite_Users": "BenutzerInnen einladen", "Invite_user_to_join_channel": "Benutzer in diesen Kanal einladen", "Invite_user_to_join_channel_all_from": "Alle Benutzer des Kanals [#channel] einladen, diesem Kanal zu folgen", "Invite_user_to_join_channel_all_to": "Alle Benutzer dieses Kanals einladen, dem Kanal [#channel] zu folgen", - "Invite_Users": "BenutzerInnen einladen", - "IRC_Channel_Join": "Ausgabe des JOIN-Befehls", - "IRC_Channel_Leave": "Ausgabe des PART-Befehls", - "IRC_Channel_Users": "Ausgabe des NAMES-Befehls", - "IRC_Channel_Users_End": "Ende der Ausgabe des NAMES-Befehls", - "IRC_Description": "Internet Relay Chat (IRC) ist ein text-basiertes Gruppen-Kommunikations-Werkzeug. Dieses Paket integriert IRC-Funktionalität in Rocket.Chat.", - "IRC_Enabled": "Versuche, IRC in Rocket.Chat zu integrieren. Eine Änderung dieser Einstellung erfordert einen Neustart des Rocket.Chat Servers.", - "IRC_Enabled_Alert": "IRC Support ist ein work in progress. Die Verwendung in einem Produktionssystem wird derzeit nicht empfohlen.", - "IRC_Federation": "IRC-Föderation", - "IRC_Federation_Disabled": "IRC Federation ist deaktiviert.", - "IRC_Hostname": "Der IRC-Host, zu dem verbunden werden soll", - "IRC_Login_Fail": "Ausgabe nach der fehlerhaften Verbindung zum IRC-Server", - "IRC_Login_Success": "Ausgabe nach der erfolgreichen Verbindung zum IRC-Server", - "IRC_Message_Cache_Size": "Cache-Limit für ausgehende Nachrichten", - "IRC_Port": "Port des IRC-Host, zu dem verbunden werden soll", - "IRC_Private_Message": "Ausgabe des PRIVMSG-Befehls", - "IRC_Quit": "Ausgabe beim Beenden einer IRC-Session", - "is_typing": "schreibt", - "Issue_Links": "Issue-Tracker Links", "IssueLinks_Incompatible": "Warnung: Aktiviere diese Einstellung nicht zusammen mit der Farbvorschau (Hex)", "IssueLinks_LinkTemplate": "Vorlage für Issue-Verknüpfungen", "IssueLinks_LinkTemplate_Description": "Vorlage für Issue-Verknüpfungen; %s wird mit der Issue-Nummer ersetzt werden.", + "Issue_Links": "Issue-Tracker Links", "It_works": "Es funktioniert", - "italics": "kursiv", "Job_Title": "Berufsbezeichnung", - "Join_audio_call": "Anruf beitreten", "Join_Chat": "Chat beitreten", + "Join_audio_call": "Anruf beitreten", "Join_default_channels": "Standardkanälen beitreten", "Join_the_Community": "Trete der Community bei", "Join_the_given_channel": "Diesem Kanal beitreten", "Join_video_call": "Videoanruf beitreten", - "join-without-join-code": "Ohne Code beitreten", - "join-without-join-code_description": "Berechtigung, Kanäle mit Zutrittscode auch ohne Code zu betreten", "Jump": "Springen", "Jump_to_first_unread": "Erste ungelesene Nachricht anzeigen", "Jump_to_message": "Diese Nachricht im Chat anzeigen", @@ -1624,50 +1394,6 @@ "Keyboard_Shortcuts_Open_Channel_Slash_User_Search": "Kanal öffnen / Nach Benutzer suchen", "Keyboard_Shortcuts_Title": "Keyboard Shortcuts", "Knowledge_Base": "Wissensbasis", - "Label": "Bezeichnung", - "Language": "Sprache", - "Language_Bulgarian": "Bulgarisch", - "Language_Chinese": "Chinesisch", - "Language_Czech": "Tschechisch", - "Language_Danish": "Dänish", - "Language_Dutch": "Niederländisch", - "Language_English": "Englisch", - "Language_Estonian": "Estisch", - "Language_Finnish": "Finnisch", - "Language_French": "Französisch", - "Language_German": "Deutsch", - "Language_Greek": "Griechisch", - "Language_Hungarian": "Ungarisch", - "Language_Italian": "Italienisch", - "Language_Japanese": "Japanisch", - "Language_Latvian": "Lettisch", - "Language_Lithuanian": "Littauisch", - "Language_Not_set": "nicht spezifisch", - "Language_Polish": "Polnisch", - "Language_Portuguese": "Portugiesisch", - "Language_Romanian": "Rumänisch", - "Language_Russian": "Russisch", - "Language_Slovak": "Slovakisch", - "Language_Slovenian": "Slovenisch", - "Language_Spanish": "Spanisch", - "Language_Swedish": "Schwedisch", - "Language_Version": "Deutsche Version", - "Last_login": "Letzte Anmeldung", - "Last_Message": "Letzte Nachricht", - "Last_Message_At": "Letzte Nachricht am", - "Last_seen": "Zuletzt online", - "Last_token_part": "Letzter Teil des Zugangsschlüssels", - "Last_Updated": "Zuletzt aktualisiert", - "Launched_successfully": "Erfolgreich gestartet", - "Layout": "Layout", - "Layout_Home_Body": "Inhalt der Startseite", - "Layout_Home_Title": "Titel der Startseite", - "Layout_Legal_Notice": "Impressum", - "Layout_Login_Terms": "Anmeldebedingungen", - "Layout_Privacy_Policy": "Datenschutzbestimmungen", - "Layout_Sidenav_Footer": "Seitenfußzeile", - "Layout_Sidenav_Footer_description": "Die Größe der Fußzeile beträgt 260 x 70 Pixel.", - "Layout_Terms_of_Service": "Nutzungsbedingungen", "LDAP": "LDAP", "LDAP_Authentication": "Aktivieren", "LDAP_Authentication_Password": "Passwort", @@ -1739,43 +1465,85 @@ "LDAP_User_Search_Scope": "Scope", "LDAP_Username_Field": "Feld für den Benutzernamen", "LDAP_Username_Field_Description": "Gib an, welches Feld als *Benutzername* für neue Benutzer verwendet werden soll. Lass das Feld leer, um den Nutzernamen zu verwenden, der auf der Anmeldeseite verwendet wird. \n Es können auch Template-Tags wie `#{givenName}.#{sn}` verwendet werden. \n Der Standardwert ist `sAMAccountName`.", + "Label": "Bezeichnung", + "Language": "Sprache", + "Language_Bulgarian": "Bulgarisch", + "Language_Chinese": "Chinesisch", + "Language_Czech": "Tschechisch", + "Language_Danish": "Dänish", + "Language_Dutch": "Niederländisch", + "Language_English": "Englisch", + "Language_Estonian": "Estisch", + "Language_Finnish": "Finnisch", + "Language_French": "Französisch", + "Language_German": "Deutsch", + "Language_Greek": "Griechisch", + "Language_Hungarian": "Ungarisch", + "Language_Italian": "Italienisch", + "Language_Japanese": "Japanisch", + "Language_Latvian": "Lettisch", + "Language_Lithuanian": "Littauisch", + "Language_Not_set": "nicht spezifisch", + "Language_Polish": "Polnisch", + "Language_Portuguese": "Portugiesisch", + "Language_Romanian": "Rumänisch", + "Language_Russian": "Russisch", + "Language_Slovak": "Slovakisch", + "Language_Slovenian": "Slovenisch", + "Language_Spanish": "Spanisch", + "Language_Swedish": "Schwedisch", + "Language_Version": "Deutsche Version", + "Last_Message": "Letzte Nachricht", + "Last_Message_At": "Letzte Nachricht am", + "Last_Updated": "Zuletzt aktualisiert", + "Last_login": "Letzte Anmeldung", + "Last_seen": "Zuletzt online", + "Last_token_part": "Letzter Teil des Zugangsschlüssels", + "Launched_successfully": "Erfolgreich gestartet", + "Layout": "Layout", + "Layout_Home_Body": "Inhalt der Startseite", + "Layout_Home_Title": "Titel der Startseite", + "Layout_Legal_Notice": "Impressum", + "Layout_Login_Terms": "Anmeldebedingungen", + "Layout_Privacy_Policy": "Datenschutzbestimmungen", + "Layout_Sidenav_Footer": "Seitenfußzeile", + "Layout_Sidenav_Footer_description": "Die Größe der Fußzeile beträgt 260 x 70 Pixel.", + "Layout_Terms_of_Service": "Nutzungsbedingungen", "Lead_capture_email_regex": "Lead Capture E-Mail Regex", "Lead_capture_phone_regex": "Lead Capture Telefon Regex", "Leave": "Verlassen", "Leave_Group_Warning": "Bist Du Dir sicher, dass Du den privaten Kanal \"{{roomName}}\" verlassen möchtest?", "Leave_Livechat_Warning": "Bist Du Dir sicher, dass Du den Livechat mit \"{{roomName}}\" verlassen möchtest?", "Leave_Private_Warning": "Bist Du Dir sicher, dass Du das Gespräch mit \"{{roomName}}\" verlassen möchtest?", - "Leave_room": "Raum verlassen", "Leave_Room_Warning": "Bist Du Dir sicher, dass Du den Kanal \"{{roomName}}\" verlassen möchtest?", + "Leave_room": "Raum verlassen", "Leave_the_current_channel": "Aktuellen Kanal verlassen", - "leave-c": "Kanäle verlassen", - "leave-p": "Verlasse private Gruppen", "Lets_get_you_new_one_": "Lass mich Ihnen ein neues geben!", "List_of_Channels": "Liste der Kanäle", "List_of_Direct_Messages": "Liste der Direktnachrichten", + "LiveStream & Broadcasting": "Livestream & Broadcasting", "Livechat": "Livechat", - "Livechat_agents": "Livechat-Agenten", "Livechat_AllowedDomainsList": "Domänen, in denen der Livechat zulässig ist", "Livechat_Dashboard": "Livechat-Dashboard", + "Livechat_Inquiry_Already_Taken": "Livechat-Anfrage bereits übernommen", + "Livechat_Queue": "Livechat-Warteschlange", + "Livechat_Routing_Method": "Livechat Routing-Methode", + "Livechat_Take_Confirm": "Möchtest Du diesen Kunden annehmen?", + "Livechat_Users": "Livechat-Benutzer", + "Livechat_agents": "Livechat-Agenten", "Livechat_enabled": "Livechat", "Livechat_forward_open_chats": "Offene Chats weiterleiten", "Livechat_forward_open_chats_timeout": "Timeout (in Sekunden), nach dem Chats weitergeleitet werden", "Livechat_guest_count": "Gästezähler", - "Livechat_Inquiry_Already_Taken": "Livechat-Anfrage bereits übernommen", "Livechat_managers": "Livechat-Manager", "Livechat_offline": "Livechat offline", "Livechat_offline_message_sent": "Livechat-Offline-Nachricht gesendet", "Livechat_online": "Livechat online", - "Livechat_Queue": "Livechat-Warteschlange", "Livechat_registration_form": "Anmeldeformular", "Livechat_registration_form_message": "Nachricht im Registrierungsformular", - "Livechat_Routing_Method": "Livechat Routing-Methode", - "Livechat_Take_Confirm": "Möchtest Du diesen Kunden annehmen?", "Livechat_title": "Livechat-Titel", "Livechat_title_color": "Hintergrundfarbe des Livechat-Titels", "Livechat_transcript_sent": "Livechat-Mitschrift versendet", - "Livechat_Users": "Livechat-Benutzer", - "LiveStream & Broadcasting": "Livestream & Broadcasting", "Livestream_close": "Livestream schließen", "Livestream_enable_audio_only": "Aktiviere nur den Audiomodus", "Livestream_enabled": "Livestream aktiviert", @@ -1786,9 +1554,9 @@ "Livestream_url": "Livestream-Quellen-URL", "Livestream_url_incorrect": "Livestream-URL ist falsch", "Load_more": "Weitere laden", + "Loading...": "Wird geladen...", "Loading_more_from_history": "Weitere Nachrichten aus dem Verlauf anzeigen", "Loading_suggestion": "Vorschläge werden geladen", - "Loading...": "Wird geladen...", "Local_Domains": "Lokale Domains", "Local_Password": "Lokales Passwort", "Localization": "Lokalisierung", @@ -1820,31 +1588,12 @@ "Mail_Messages": "Nachrichten per E-Mail senden", "Mail_Messages_Instructions": "Wähle die per E-Mail zu versendenden Nachrichten aus, indem Du die Nachrichten anklickst. ", "Mail_Messages_Subject": "Hier ist ein ausgewählter Teil aus %s Nachrichten", - "mail-messages": "Nachrichten per E-Mail versenden", - "mail-messages_description": "Berechtigung, Nachrichten per E-Mail zu versenden", "Mailer": "Mailer", "Mailer_body_tags": "Du musst [unsubscribe] verwenden, um einen Link zum Abmelden aus dem Verteiler zur Verfügung zu stellen.
Du kannst [name] für den vollständigen Namen, [fname] für den Vornamen oder [lname] für den Nachnamen des Benutzers verwenden.
Ebenfalls kannst Du [email] verwenden, um die E-Mail-Adresse des Benutzers anzugeben.", "Mailing": "Mailing", "Make_Admin": "Benutzer zum Admin ernennen", "Make_sure_you_have_a_copy_of_your_codes_1": "Bitte stelle sicher, dass Du eine Kopie Deiner Codes besitzt:", "Make_sure_you_have_a_copy_of_your_codes_2": ". Wenn Du den Zugriff auf Deine Authentifizierungs-App verlierst, kannst Du Dich mit Hilfe eines dieser Codes erneut anmelden.", - "manage-apps": "Apps verwalten", - "manage-assets": "Assets verwalten", - "manage-assets_description": "Berechtigung, Assets (Stylesheets, Bilder, weitere Dateien) auf dem Server zu verwalten", - "manage-cloud_description": "Cloud verwalten", - "manage-emoji": "Emojis verwalten", - "manage-emoji_description": "Berechtigung, Emojis zu verwalten", - "messages_pruned": "Nachrichten gelöscht.", - "manage-integrations": "Integrationen verwalten", - "manage-integrations_description": "Berechtigung, die Integrationen des Servers zu verwalten", - "manage-oauth-apps": "OAuth-Anwendungen verwalten", - "manage-oauth-apps_description": "Berechtigung, OAuth-Anwendungen verwalten", - "manage-own-integrations": "Eigene Integrationen verwalten", - "manage-own-integrations_description": "Berechtigung, das Benutzer eigene Integrationen oder Webhooks erstellen und verwalten", - "manage-selected-settings": "Ausgewählte Einstellungen zu ändern", - "manage-selected-settings_description": "Berechtigung, einzelne speziell zugewiesene Einstellungen zu ändern", - "manage-sounds": "Töne verwalten", - "manage-sounds_description": "Berechtigung, Töne zu verwalten", "Manager_added": "Der Manager wurde hinzugefügt", "Manager_removed": "Der Manager wurde gelöscht", "Managing_assets": "Asset-Verwaltung", @@ -1859,20 +1608,25 @@ "Mark_as_unread": "Als ungelesen markieren", "Mark_read": "Als gelesen markieren", "Mark_unread": "Als ungelesen markieren", + "Markdown_Headers": "Markdown-Überschriften", + "Markdown_Marked_Breaks": "Formatierte Umbrüche", + "Markdown_Marked_GFM": "Formatierung mit Github Flavoured Markdown (GFM)", + "Markdown_Marked_Pedantic": "Pedantisch Formatieren", + "Markdown_Marked_SmartLists": "Formatierte smarte Listen", + "Markdown_Marked_Smartypants": "Formatiere mit intelligenter Punktsetzung (\"Smartypants\")", + "Markdown_Marked_Tables": "Formatierte Tabellen", + "Markdown_Parser": "Markdown Parser", + "Markdown_SupportSchemesForLink": "Unterstützte Markdown- Schemata für Links", + "Markdown_SupportSchemesForLink_Description": "Kommata getrennte Liste von erlaubten Schemata", "Marketplace_view_marketplace": "Marketplace anzeigen", "Max_length_is": "Maximale Länge ist %s", "Media": "Medien", "Medium": "Normal", "Members_List": "Mitglieder", - "mention-all": "Alle erwähnen", - "mention-all_description": "Berechtigung, @all zur Erwähnung aller Kanalmitglieder zu verwenden", - "mention-here": "Hier erwähnen", - "mention-here_description": "Berechtigung um Erwähnungen mit @hier zu nutzen", "Mentions": "Erwähnungen", "Mentions_default": "Erwähnungen (Standard)", "Mentions_only": "Nur Erwähnungen", "Merge_Channels": "Kanäle zusammenführen", - "message": "Nachricht", "Message": "Nachricht", "Message_AllowBadWordsFilter": "Wortfilter für Nachrichten verwenden", "Message_AllowConvertLongMessagesToAttachment": "Konvertieren langer Nachrichten in Anhängen zulassen", @@ -1885,22 +1639,22 @@ "Message_AllowEditing_BlockEditInMinutesDescription": "Gib 0 ein, um das Bearbeiten von Nachrichten unbegrenzt zu erlauben.", "Message_AllowPinning": "Das Anheften von Nachrichten erlauben", "Message_AllowPinning_Description": "Benutzern das Anheften von Nachrichten in Kanälen erlauben", + "Message_AllowSnippeting": "Erlauben, Snippets aus Nachrichten zu erstellen", "Message_AllowStarring": "Erlaube es, Nachrichten als Favoriten zu markieren", "Message_AllowUnrecognizedSlashCommand": "Unerkannte Slash-Kommandos erlauben", "Message_AlwaysSearchRegExp": "Beim Suchen immer reguläre Ausdrücke verwenden", "Message_AlwaysSearchRegExp_Description": "Wir empfehlen diese Option, wenn Deine Sprache in der [MongoDB-Textsuche](https://docs.mongodb.org/manual/reference/text-search-languages/#text-search-languages) nicht unterstützt wird.", "Message_Attachments": "Nachrichten-Anhänge", - "Report_sent": "Bericht gesendet", + "Message_Attachments_GroupAttach": "Schaltflächen für Anhänge gruppieren", + "Message_Attachments_GroupAttachDescription": "Dies sorgt dafür, dass die Schaltflächen in einem erweiterbaren Menü untergebracht werden. So wird weniger Bildschirmplatz benötigt.", "Message_Audio": "Audio Nachricht", - "Message_Audio_bitRate": "Audio-Nachrichten-Bitrate", "Message_AudioRecorderEnabled": "Audioaufnahme aktivieren", "Message_AudioRecorderEnabled_Description": "Benötigt \"Audio / MP3\" -Dateien als akzeptierter Medientyp innerhalb der \"Datei-Upload\" -Einstellungen.", + "Message_Audio_bitRate": "Audio-Nachrichten-Bitrate", "Message_BadWordsFilterList": "Wörter zur Blacklist hinzufügen", "Message_BadWordsFilterListDescription": "Kommaseparierte Liste zu filternder Worte", "Message_DateFormat": "Datumsformat", "Message_DateFormat_Description": "Für mögliche Formate s. [Dokumentation von Moment.js](http://momentjs.com/docs/#/displaying/format/)", - "Message_deleting_blocked": "Diese Nachricht kann nicht mehr gelöscht werden", - "Message_editing": "Bearbeiten von Nachrichten", "Message_ErasureType": "Nachrichtenlöschtyp", "Message_ErasureType_Delete": "Lösche alle Nachrichten", "Message_ErasureType_Keep": "Nachrichten und Benutzernamen behalten", @@ -1915,29 +1669,32 @@ "Message_HideType_ul": "\"Benutzer hat den Raum verlassen\"-Nachricht deaktivieren", "Message_Id": "Nachrichten-ID", "Message_Ignored": "Diese Nachricht wurde ignoriert", - "Message_info": "Nachricht Info", "Message_KeepHistory": "Bearbeitungshistorie für Nachrichten behalten", "Message_MaxAll": "Maximale Kanalgröße für @all-Erwähnung", "Message_MaxAllowedSize": "Maximal zulässige Größe der Nachrichten", - "Message_pinning": "Anpinnen von Nachrichten", "Message_QuoteChainLimit": "Maximale Anzahl von verketteten Zitaten", "Message_Read_Receipt_Enabled": "Zeige Belege anzeigen", "Message_Read_Receipt_Store_Users": "Detaillierte Lesebestätigungen", "Message_Read_Receipt_Store_Users_Description": "Zeigt die Lesebestätigungen jedes Benutzers an", - "Message_removed": "Die Nachricht wurde entfernt", - "Message_sent_by_email": "Nachricht per E-Mail versendet", "Message_ShowDeletedStatus": "Löschstatus anzeigen", - "Message_starring": "Markieren von favorisierten Nachrichten", + "Message_ShowEditedStatus": "Bearbeitungsstatus anzeigen", + "Message_ShowFormattingTips": "Formatierungshilfe anzeigen", "Message_Time": "Zeitpunkt der Nachricht", "Message_TimeAndDateFormat": "Zeit- und Datumsformat", "Message_TimeAndDateFormat_Description": "Für mögliche Formate s. [Dokumentation von Moment.js](http://momentjs.com/docs/#/displaying/format/)", "Message_TimeFormat": "Zeitformat", "Message_TimeFormat_Description": "Für mögliche Formate s. [Dokumentation von Moment.js](http://momentjs.com/docs/#/displaying/format/)", - "Message_too_long": "Die Nachricht ist zu lang", "Message_UserId": "Benutze-ID", "Message_VideoRecorderEnabled": "Videoaufnahme eingeschaltet", "Message_VideoRecorderEnabledDescription": "Erfordert, dass der Medientyp 'video/webm' in den \"Datei-Upload\"-Einstellungen als Medientyp akzeptiert wird", - "messages": "Nachrichten", + "Message_deleting_blocked": "Diese Nachricht kann nicht mehr gelöscht werden", + "Message_editing": "Bearbeiten von Nachrichten", + "Message_info": "Nachricht Info", + "Message_pinning": "Anpinnen von Nachrichten", + "Message_removed": "Die Nachricht wurde entfernt", + "Message_sent_by_email": "Nachricht per E-Mail versendet", + "Message_starring": "Markieren von favorisierten Nachrichten", + "Message_too_long": "Die Nachricht ist zu lang", "Messages": "Nachrichten", "Messages_that_are_sent_to_the_Incoming_WebHook_will_be_posted_here": "Nachrichten, die an den eingehenden Webhook gesendet werden, werden hier veröffentlicht", "Meta": "Metadaten", @@ -1949,7 +1706,6 @@ "Meta_robots": "Roboter", "Min_length_is": "Die minimale Länge beträgt %s", "Minimum_balance": "minimaler Ausgleich", - "minutes": "Minuten", "Mobile": "Mobil", "Mobile_Push_Notifications_Default_Alert": "Push-Benachrichtigungen bei", "Monday": "Montag", @@ -1964,50 +1720,47 @@ "Move_beginning_message": "`%s` - Zum Anfang der Nachricht springen", "Move_end_message": "`%s` - Zum Ende der Nachricht springen", "Msgs": "Nachrichten", - "multi": "mehrere", - "Mute_all_notifications": "Alle Benachrichtigungen stummschalten", "Mute_Focused_Conversations": "Stumm geschaltete Gespräche", "Mute_Group_Mentions": "Mute @all und @here erwähnt", + "Mute_all_notifications": "Alle Benachrichtigungen stummschalten", "Mute_someone_in_room": "Jemandem in einem Raum das Chatten verbieten", "Mute_user": "Diesem Benutzer das Chatten verbieten", - "mute-user": "Benutzer stumm schalten", - "mute-user_description": "Berechtigung, Benutzer in diesem Kanal stumm zu schalten", "Muted": "Stumm geschaltet", "My Data": "Meine Daten", "My_Account": "Mein Konto", "My_location": "Mein Ort", - "n_messages": "%s Nachrichten", "N_new_messages": "%s neue Nachrichten", "Name": "Name", + "Name_Placeholder": "Bitte gib Deinen Namen ein", "Name_cant_be_empty": "Es muss ein Name angegeben werden", "Name_of_agent": "Name des Agenten", "Name_optional": "Name (optional)", - "Name_Placeholder": "Bitte gib Deinen Namen ein", "Navigation_History": "Navigationsverlauf", "New_Application": "Neue Anwendung", "New_Custom_Field": "Neues benutzerdefiniertes Feld", "New_Department": "Neue Abteilung", + "New_Message_Notification": "Neue-Nachricht-Benachrichtigung", + "New_Room_Notification": "Neuer-Raum-Benachrichtigung", + "New_Trigger": "Neuer Trigger", "New_discussion": "Neue Diskussion", "New_discussion_first_message": "Üblicherweise beginnt eine Diskussion mit einer Frage, bspw. \"Wie lade ich ein Bild hoch?\"", "New_discussion_name": "Ein sinnvoller Name für die Diskussion", "New_integration": "Neue Integration", "New_line_message_compose_input": "`%s` - Zeilenumbruch einfügen", "New_logs": "Neue Logs", - "New_Message_Notification": "Neue-Nachricht-Benachrichtigung", "New_messages": "Neue Nachrichten", "New_password": "Neues Passwort", "New_role": "Neue Rolle", - "New_Room_Notification": "Neuer-Raum-Benachrichtigung", - "New_Trigger": "Neuer Trigger", "New_version_available_(s)": "Neue Version verfügbar (%s)", "New_videocall_request": "Neuer Video-Anruf", "New_visitor_navigation": "Neue Navigation: {{history}}", "Newer_than": "Neuer als", "Newer_than_may_not_exceed_Older_than": "\"Neuer als\" darf \"Älter als\" nicht überschreiten", + "No_Encryption": "Keine Verschlüsselung", + "No_Threads": "Keine Threads gefunden ", "No_available_agents_to_transfer": "Kein Agent verfügbar, an den übergeben werden kann", "No_direct_messages_yet": "Du hast bisher kein Gespräch gestartet", "No_discussions_yet": "Keine Discussion vorhanden", - "No_Encryption": "Keine Verschlüsselung", "No_groups_yet": "Du bist kein Mitglied eines privaten Kanals", "No_integration_found": "Keine Integration unter der angegebenen ID", "No_livechats": "Kein Livechat vorhanden", @@ -2020,16 +1773,15 @@ "No_snippet_messages": "Keine Snippets vorhanden", "No_starred_messages": "Es wurden bisher keine Nachrichten favorisiert", "No_such_command": "Es gibt keinen Befehl '/{{command}}'", - "No_Threads": "Keine Threads gefunden ", "Nobody_available": "Es ist niemand verfügbar", "Node_version": "Node-Version", "None": "Keine", "Nonprofit": "Non-Profit-", - "Not_authorized": "Nicht berechtigt", "Not_Available": "Nicht verfügbar", + "Not_Imported_Messages_Title": "Der Import folgender Nachrichten schlug fehl", + "Not_authorized": "Nicht berechtigt", "Not_following": "Du folgst dieser Nachricht nicht", "Not_found_or_not_allowed": "Nicht gefunden oder nicht zugelassen", - "Not_Imported_Messages_Title": "Der Import folgender Nachrichten schlug fehl", "Not_started": "Nicht begonnen", "Nothing": "Nichts", "Nothing_found": "Es wurde nichts gefunden", @@ -2049,6 +1801,17 @@ "Number_of_federated_users": "Anzahl föderierter Benutzer", "Number_of_messages": "Nachrichtenanzahl", "OAuth_Application": "OAuth-Anwendung", + "OS_Arch": "Architektur", + "OS_Cpus": "CPU-Anzahl", + "OS_Freemem": "Freier Arbeitsspeicher", + "OS_Loadavg": "Durchschnittliche Systemauslastung (\"Load\")", + "OS_Platform": "Plattform", + "OS_Release": "Version", + "OS_Totalmem": "Gesamter Arbeitsspeicher", + "OS_Type": "Betriebssystem", + "OS_Uptime": "Systemlaufzeit", + "OTR": "OTR (Off-The-Record)", + "OTR_is_only_available_when_both_users_are_online": "OTR ist nur möglich, wenn beide Benutzer online sind", "Objects": "Objekte", "Off": "Aus", "Off_the_record_conversation": "Off-the-record-Gespräche", @@ -2059,11 +1822,11 @@ "Offline": "Offline", "Offline_DM_Email": "Du hast eine private Nachricht von {{user}} erhalten.", "Offline_Email_Subject_Description": "Du kannst folgenden Platzhalter verwenden: \n - `[Site_Name]`, `[Site_URL]`, `[User]` & `[Room]` für den Anwendungsnamen, URL, Benutzernamen und Raumnamen. ", - "Offline_form": "Offline-Formular", - "Offline_form_unavailable_message": "Nachricht, dass das Offline-Kontaktformular nicht verfügbar ist", "Offline_Link_Message": "Zur Nachricht", "Offline_Mention_All_Email": "E-Mail-Betreff für \"Alle Erwähnen\"", "Offline_Mention_Email": "Du wurdest von {{user}} in #{{room}} erwähnt", + "Offline_form": "Offline-Formular", + "Offline_form_unavailable_message": "Nachricht, dass das Offline-Kontaktformular nicht verfügbar ist", "Offline_message": "Offline-Nachricht", "Offline_success_message": "Nachricht, dass eine Offline-Nachricht erfolgreich war", "Offline_unavailable": "offline - nicht verfügbar", @@ -2071,26 +1834,23 @@ "Old Colors (minor)": "Alte Farben (Minor)", "Older_than": "Älter als", "On": "Ein", - "online": "online", "Online": "Online", + "Only_On_Desktop": "Desktop Modus (senden mit der Eingabeaste nur auf dem Desktop PC)", "Only_authorized_users_can_write_new_messages": "Nur Authentifizierte Benutzer können neue Nachrichten schreiben", "Only_from_users": "Löscht nur den Inhalt dieser Benutzer", - "Only_On_Desktop": "Desktop Modus (senden mit der Eingabeaste nur auf dem Desktop PC)", "Only_works_with_chrome_version_greater_50": "Funktioniert nur mit Chrome Browser Versionen > 50", "Only_you_can_see_this_message": "Nur Du kannst diese Nachricht sehen", - "Oops_page_not_found": "Hoppla, Seite nicht gefunden", "Oops!": "Hoppla", + "Oops_page_not_found": "Hoppla, Seite nicht gefunden", "Open": "Öffnen", + "Open_Livechats": "Offene Livechats", "Open_channel_user_search": "`%s` - Kanal öffnen / Nach Benutzer suchen", "Open_conversations": "Offene Konversationen", "Open_days_of_the_week": "Offene Wochentage", - "Open_Livechats": "Offene Livechats", "Opened": "Geöffnet", "Opened_in_a_new_window": "In einem neuem Fenster geöffnet", "Opens_a_channel_group_or_direct_message": "Öffnet einen Kanal, eine Gruppe oder Direktnachrichten", - "optional": "optional", "Options": "Optionen", - "or": "oder", "Or_talk_as_anonymous": "Oder schreibe anonym", "Order": "Auftrag", "Organization_Email": "Organisations-E-Mail", @@ -2098,29 +1858,17 @@ "Organization_Name": "Name der Organisation", "Organization_Type": "Organisationstyp", "Original": "Original", - "OS_Arch": "Architektur", - "OS_Cpus": "CPU-Anzahl", - "OS_Freemem": "Freier Arbeitsspeicher", - "OS_Loadavg": "Durchschnittliche Systemauslastung (\"Load\")", - "OS_Platform": "Plattform", - "OS_Release": "Version", - "OS_Totalmem": "Gesamter Arbeitsspeicher", - "OS_Type": "Betriebssystem", - "OS_Uptime": "Systemlaufzeit", "Other": "Andere", - "others": "andere", - "OTR": "OTR (Off-The-Record)", - "OTR_is_only_available_when_both_users_are_online": "OTR ist nur möglich, wenn beide Benutzer online sind", "Outgoing_WebHook": "Ausgehender Webhook", "Outgoing_WebHook_Description": "Daten aus Rocket.Chat heraus versenden.", "Override_URL_to_which_files_are_uploaded_This_url_also_used_for_downloads_unless_a_CDN_is_given": "URL, unter der die Dateien hochgeladen werden. Die URL wird auch für Downloads verwendet, wenn kein CDN angegeben wird", - "Page_title": "Seitentitel", "Page_URL": "Seiten-URL", + "Page_title": "Seitentitel", "Parent_channel_doesnt_exist": "Kanal existiert nicht.", "Password": "Passwort", "Password_Change_Disabled": "Der Administrator hat das Ändern des Passworts deaktiviert", - "Password_changed_successfully": "Das Passwort wurde erfolgreich geändert", "Password_Policy": "Passwort-Richtlinie", + "Password_changed_successfully": "Das Passwort wurde erfolgreich geändert", "Past_Chats": "Vergangene Chats", "Payload": "Nutzdaten", "Peer_Password": "Peer-Passwort", @@ -2128,14 +1876,11 @@ "Permalink": "Permalink", "Permissions": "Berechtigungen", "Personal_Access_Tokens": "Persönlicher Zugangsschlüssel ", - "Thank_you_exclamation_mark": "Vielen Dank!", "Phone_number": "Telefonnummer", "Pin": "Anheften", "Pin_Message": "Nachricht anheften", - "pin-message": "Nachricht anheften", - "pin-message_description": "Berechtigung, eine Nachricht in einem Kanal anzuheften", - "Pinned_a_message": "Eine Nachricht wurde angeheftet:", "Pinned_Messages": "Gepinnte Nachrichten", + "Pinned_a_message": "Eine Nachricht wurde angeheftet:", "PiwikAdditionalTrackers": "Zusätzliche Piwik Websites", "PiwikAdditionalTrackers_Description": "Gib hier weitere Piwik Website URLs und SiteIDs in folgendem Format an, wenn Du dieselben Daten in verschiedenen Piwik Instanzen tracken möchtest: `[ { \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }, { \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 } ]`", "PiwikAnalytics_cookieDomain": "Alle Subdomains", @@ -2151,7 +1896,6 @@ "Please_add_a_comment": "Bitte füge einen Kommentar hinzu", "Please_add_a_comment_to_close_the_room": "Bitte füge einen Kommentar hinzu, um den Kanal zu schließen", "Please_answer_survey": "Bitte nimm Dir einen Moment Zeit, um ein paar Fragen zu dem Chat zu beantworten", - "please_enter_valid_domain": "Bitte eine gültige Domain eingeben", "Please_enter_value_for_url": "Bitte gib eine URL für Dein Profilbild ein", "Please_enter_your_new_password_below": "Bitte gib ein neues Passwort ein:", "Please_enter_your_password": "Bitte Passwort eingeben", @@ -2174,16 +1918,12 @@ "Post_as": "Verschicken als", "Post_to_Channel": "Im Kanal veröffentlichen", "Post_to_s_as_s": "Versenden an %s als %s", - "post-readonly": "Schreibgeschützt posten", - "post-readonly_description": "Berechtigung, in einen schreibgeschützten Kanal zu posten", "Preferences": "Einstellungen", "Preferences_saved": "Die Einstellungen wurden gespeichert", "Preparing_data_for_import_process": "Daten werden für den Importvorgang vorbereitet", "Preparing_list_of_channels": "Kanalliste wird vorbeireitet", "Preparing_list_of_messages": "Meldungsliste wird vorbereitet", "Preparing_list_of_users": "Benutzerliste wird vorbereitet", - "preview-c-room": "Vorschau für öffentliche Kanäle", - "preview-c-room_description": "Berechtigung, den Inhalt eines öffentlichen Kanals einzusehen, bevor diesem beigetreten wird", "Previous_month": "Letzter Monat", "Previous_week": "Letzte Woche", "Privacy": "Datenschutz", @@ -2201,13 +1941,13 @@ "Prometheus": "Prometheus", "Protocol": "Protokoll", "Prune": "Löschen", - "Prune_finished": "Löschen beendet", "Prune_Messages": "Nachrichten löschen", "Prune_Modal": "Möchtest Du diese Nachrichten wirklich löschen? Bereinigte Nachrichten können nicht wiederhergestellt werden.", "Prune_Warning_after": "Dadurch werden alle %s in %s nach %s gelöscht.", "Prune_Warning_all": "Dadurch werden alle %s in %s gelöscht!", "Prune_Warning_before": "Dadurch werden alle %s in %s vor %s gelöscht.", "Prune_Warning_between": "Dadurch werden alle %s in %s zwischen %s und %s gelöscht.", + "Prune_finished": "Löschen beendet", "Pruning_files": "Lösche Dateien ...", "Pruning_messages": "Lösche Nachrichten ...", "Public": "Öffentlich", @@ -2217,6 +1957,7 @@ "Purchase_for_price": "Kaufen für $%s", "Purchased": "Gekauft", "Push": "Push-Nachrichten", + "Push_Setting_Requires_Restart_Alert": "Änderungen an dieser Einstellung erfordern einen Neustart von Rocket.Chat", "Push_apn_cert": "APN-Cert", "Push_apn_dev_cert": "APN-Dev-Cert", "Push_apn_dev_key": "APN-Dev-Key", @@ -2229,14 +1970,12 @@ "Push_gcm_api_key": "GCM-API-Key", "Push_gcm_project_number": "GCM-Projektnummer", "Push_production": "Produktion", - "Push_Setting_Requires_Restart_Alert": "Änderungen an dieser Einstellung erfordern einen Neustart von Rocket.Chat", "Push_show_message": "Nachricht in der Benachrichtigung anzeigen", "Push_show_username_room": "Kanal/Gruppe/Benutzername in der Benachrichtigung anzeigen", "Push_test_push": "Test", "Query": "Abfrage", "Query_description": "Zusätzliche Einschränkung, an welche Benutzer die E-Mail gesendet werden soll. Benutzer, die nicht benachrichtigt werden wollen, werden automatisch aus der Abfrage entfernt. Es muss ein gültiges JSON sein. Beispiel: \"{\"createdAt\":{\"$gt\":{\"$date\": \"2015-01-01T00:00:00.000Z\"}}}\"", "Queue": "Warteschlange", - "quote": "zitieren", "Quote": "Zitieren", "Random": "Zufällig", "React_when_read_only": "Reaktionen erlauben", @@ -2248,12 +1987,12 @@ "Read_only_changed_successfully": "Erfolgreich schreibgeschützt", "Read_only_channel": "Kanal schreibgeschützt", "Read_only_group": "Schreibgeschützte Gruppe", + "RealName_Change_Disabled": "Der Rocket.Chat Administrator hat das Ändern von Namen deaktiviert", "Real_Estate": "Immobilien", "Real_Time_Monitoring": "Echtzeit-Monitoring", - "RealName_Change_Disabled": "Der Rocket.Chat Administrator hat das Ändern von Namen deaktiviert", "Reason_To_Join": "Info für den Admin, warum Du beitreten möchtest", - "Receive_alerts": "Empfange Alarme", "Receive_Group_Mentions": "Empfange @all und @here Erwähnungen", + "Receive_alerts": "Empfange Alarme", "Recent_Import_History": "Zuletzt importierter Verlauf", "Record": "Aufnehmen", "Redirect_URI": "Weiterleitungs-URL", @@ -2291,20 +2030,18 @@ "Remove_from_room": "Aus dem Raum entfernen", "Remove_last_admin": "Entferne den letzen Administrator", "Remove_someone_from_room": "Jemanden aus dem Raum entfernen", - "remove-closed-livechat-rooms": "Geschlossene Livechats entfernen", - "remove-user": "Benutzer entfernen", - "remove-user_description": "Berechtigung, einen Benutzter aus einem Raum zu entfernen", "Removed": "Entfernt", "Removed_User": "Benutzer wurde entfernt", "Replied_on": "Antwortete auf", "Replies": "Antworten", "Reply": "Antwort", + "ReplyTo": "Antwort an", "Reply_in_direct_message": "Mit Direktnachricht antworten", "Reply_in_thread": "Mit Thread antworten", - "ReplyTo": "Antwort an", "Report": "Melden", "Report_Abuse": "Missbrauch melden", "Report_exclamation_mark": "Melden!", + "Report_sent": "Bericht gesendet", "Report_this_message_question_mark": "Diese Nachricht melden?", "Reporting": "Berichtswesen", "Request_comment_when_closing_conversation": "Kommentar beim Schließen der Konversation anfordern", @@ -2316,12 +2053,16 @@ "Reset_Connection": "Verbindung zurücksetzen", "Reset_password": "Passwort zurücksetzen", "Reset_section_settings": "Abschnittseinstellungen zurücksetzen", - "reset-other-user-e2e-key": "Ende-zu-Ende-Verlüsselungsschlüssel eines anderen Nutzers zurücksetzen", "Restart": "Neustart", "Restart_the_server": "Server neu starten", "Retail": "Handel", - "Retention_setting_changed_successfully": "Die Einstellung für die Aufbewahrungsrichtlinie wurde erfolgreich geändert", "RetentionPolicy": "Aufbewahrungsrichtlinie", + "RetentionPolicyRoom_Enabled": "Alte Nachrichten automatisch löschen", + "RetentionPolicyRoom_ExcludePinned": "Pinned-Nachrichten ausschließen", + "RetentionPolicyRoom_FilesOnly": "Bereinige nur Dateien, behalte Nachrichten", + "RetentionPolicyRoom_MaxAge": "Maximales Nachrichtenalter in Tagen (Standard: {{max}})", + "RetentionPolicyRoom_OverrideGlobal": "Globale Aufbewahrungsrichtlinie außer Kraft setzen", + "RetentionPolicyRoom_ReadTheDocs": "Achtung! Das Anpassen dieser Einstellungen ohne große Sorgfalt kann den gesamten Nachrichtenverlauf zerstören. Bitte lies die Dokumentation, bevor Du das Feature unter hieraktivierst.", "RetentionPolicy_Description": "Löscht automatisch alte Nachrichten in Deiner Rocket.Chat-Instanz.", "RetentionPolicy_Enabled": "Aktiviert", "RetentionPolicy_ExcludePinned": "Pinned-Nachrichten ausschließen", @@ -2330,12 +2071,8 @@ "RetentionPolicy_MaxAge": "Maximales Nachrichtenalter", "RetentionPolicy_Precision": "Timer-Präzision", "RetentionPolicy_Precision_Description": "Wie oft sollte der Prune Timer laufen? Wenn Du dies auf einen genauen Wert setzt, werden Kanäle mit schnellen Retention-Timern zwar besser, in großen Communities jedoch möglicherweise zusätzliche Verarbeitungsleistung.", - "RetentionPolicyRoom_Enabled": "Alte Nachrichten automatisch löschen", - "RetentionPolicyRoom_ExcludePinned": "Pinned-Nachrichten ausschließen", - "RetentionPolicyRoom_FilesOnly": "Bereinige nur Dateien, behalte Nachrichten", - "RetentionPolicyRoom_MaxAge": "Maximales Nachrichtenalter in Tagen (Standard: {{max}})", - "RetentionPolicyRoom_OverrideGlobal": "Globale Aufbewahrungsrichtlinie außer Kraft setzen", - "RetentionPolicyRoom_ReadTheDocs": "Achtung! Das Anpassen dieser Einstellungen ohne große Sorgfalt kann den gesamten Nachrichtenverlauf zerstören. Bitte lies die Dokumentation, bevor Du das Feature unter hieraktivierst.", + "Retention_setting_changed_successfully": "Die Einstellung für die Aufbewahrungsrichtlinie wurde erfolgreich geändert", + "Retry_Count": "Anzahl der Wiederholungsversuche", "Return_to_home": "Zurück zur Startseite", "Return_to_previous_page": "zur vorherigen Seite zurückkehren", "Robot_Instructions_File_Content": "Inhalt von Robots.txt", @@ -2344,23 +2081,16 @@ "Role_Editing": "Rolle bearbeiten", "Role_removed": "Die Rolle wurde entfernt", "Room": "Raum", + "Room_Info": "Rauminformation", "Room_announcement_changed_successfully": "Die Ankündigung des Raums wurde geändert", "Room_archivation_state": "Status", "Room_archivation_state_false": "Aktiv", "Room_archivation_state_true": "Archiviert", "Room_archived": "Der Raum wurde archiviert", - "room_changed_announcement": "Ankündigung des Raums wurde von {{user_by}} zu {{room_announcement}} geändert", - "room_changed_description": "Raumbeschreibung wurde von von {{user_by}} zu {{room_description}} geändert", - "room_changed_privacy": "Der Raum wurde von {{user_by}} zum/r {{room_type}} geändert", - "room_changed_topic": "Das Thema des Raums wurde von {{user_by}} zu {{room_topic}} geändert", "Room_default_change_to_private_will_be_default_no_more": "Das ist ein Standardkanal. Die Änderung zu einem privaten Kanal führt dazu, dass er dies nicht mehr ist. Willst Du das?", "Room_description_changed_successfully": "Raumbeschreibung erfolgreich geändert", "Room_has_been_archived": "Der Raum wurde archiviert", "Room_has_been_unarchived": "Der Raum wurde aus dem Archiv geholt", - "Room_Info": "Rauminformation", - "room_is_blocked": "Der Raum ist blockiert", - "room_is_read_only": "Der Raum ist schreibgeschützt", - "room_name": "Raumname", "Room_name_changed": "{{user_by}} hat den Raumnamen zu {{room_name}} geändert.", "Room_name_changed_successfully": "Der Raumname wurde erfolgreich geändert", "Room_not_found": "Raum konnte nicht gefunden werden", @@ -2374,15 +2104,8 @@ "Rooms": "Räume", "Routing": "Routing", "Run_only_once_for_each_visitor": "Nur einmal für jeden Besucher ausführen", - "run-import": "Import ausführen", - "run-import_description": "Berechtigung, Importe auszuführen", - "run-migration": "Migration ausführen", - "run-migration_description": "Berechtigung, Migrationen auszuführen", "Running_Instances": "Laufende Instanzen", "Runtime_Environment": "Laufzeitumgebung", - "S_new_messages_since_s": "%s neue Nachrichten seit %s", - "Same_As_Token_Sent_Via": "Wie \"Token Sent Via\"", - "Same_Style_For_Mentions": "Gleicher Stil für Erwähnungen", "SAML": "SAML", "SAML_Custom_Cert": "Benutzerdefiniertes Zertifikat", "SAML_Custom_Debug": "Debugmodus aktivieren", @@ -2396,14 +2119,23 @@ "SAML_Custom_Private_Key": "Privater Schlüssel", "SAML_Custom_Provider": "Benutzerdefinierter Provider", "SAML_Custom_Public_Cert": "Öffentliches Zertifikat", + "SMS_Enabled": "SMS aktiviert", + "SMTP": "SMTP", + "SMTP_Host": "SMTP-Host", + "SMTP_Password": "SMTP-Passwort", + "SMTP_Port": "SMTP-Port", + "SMTP_Test_Button": "SMTP-Einstellungen testen", + "SMTP_Username": "SMTP-Benutzername", + "SSL": "SSL", + "S_new_messages_since_s": "%s neue Nachrichten seit %s", + "Same_As_Token_Sent_Via": "Wie \"Token Sent Via\"", + "Same_Style_For_Mentions": "Gleicher Stil für Erwähnungen", "Saturday": "Samstag", "Save": "Speichern", - "Save_changes": "Änderungen speichern", "Save_Mobile_Bandwidth": "Mobiles Datenvolumen sparen", - "Save_to_enable_this_action": "Speicher bitte, um die Aktion zu aktivieren", "Save_To_Webdav": "In WebDAV speichern", - "save-others-livechat-room-info": "Livechat-Informationen anderer Chats speichern", - "save-others-livechat-room-info_description": "Berechtigung, die Livechat-Informationen anderer Konversationen zu speichern", + "Save_changes": "Änderungen speichern", + "Save_to_enable_this_action": "Speicher bitte, um die Aktion zu aktivieren", "Saved": "Gespeichert", "Saving": "Speichern", "Scan_QR_code": "Scanne den QR-Code mit einer Authenticator-App (wie Google Authenticator, Authy oder Duo). Danach wird ein sechsstelliger Code angezeigt, den Du unten eingeben kannst.", @@ -2413,17 +2145,16 @@ "Script_Enabled": "Das Script wurde aktiviert", "Search": "Suche", "Search_Apps": "Apps suchen", - "Search_by_file_name": "Suche nach Dateiname", - "Search_by_username": "Anhand des Nutzernamens suchen", "Search_Channels": "Kanäle suchen", - "Search_current_provider_not_active": "Aktueller Suchanbieter ist nicht aktiv", - "Search_message_search_failed": "Suchanfrage fehlgeschlagen", "Search_Messages": "Nachrichten durchsuchen", "Search_Page_Size": "Seitengröße", "Search_Private_Groups": "Durchsuche private Kanäle", "Search_Provider": "Suchanbieter", "Search_Users": "Benutzer suchen", - "seconds": "Sekunden", + "Search_by_file_name": "Suche nach Dateiname", + "Search_by_username": "Anhand des Nutzernamens suchen", + "Search_current_provider_not_active": "Aktueller Suchanbieter ist nicht aktiv", + "Search_message_search_failed": "Suchanfrage fehlgeschlagen", "Secret_token": "Geheimes Token", "Security": "Sicherheit", "Select_a_department": "Wähle eine Abteilung", @@ -2438,6 +2169,8 @@ "Selected_agents": "Ausgewählte Agenten", "Selecting_users": "Benutzer auswählen", "Send": "Senden", + "Send_Test": "Test senden", + "Send_Visitor_navigation_history_as_a_message": "Sende das Besucher-Navigationsprotokoll als Nachricht", "Send_a_message": "Eine Nachricht schicken", "Send_a_test_mail_to_my_user": "Eine Test-E-Mail an mich senden", "Send_a_test_push_to_my_user": "Eine Test-Push-Nachricht an mich senden", @@ -2453,12 +2186,9 @@ "Send_request_on_lead_capture": "Anfrage senden bei Lead Capture", "Send_request_on_offline_messages": "Webhook bei Offline-Nachrichten anstoßen", "Send_request_on_visitor_message": "Sende einen Request bei einer Nachricht eines Besuchers", - "Send_Test": "Test senden", - "Send_Visitor_navigation_history_as_a_message": "Sende das Besucher-Navigationsprotokoll als Nachricht", "Send_visitor_navigation_history_on_request": "Sende das Besucher-Navigationsprotokoll auf Anfrage", "Send_welcome_email": "Willkommens-E-Mail senden", "Send_your_JSON_payloads_to_this_URL": "Sende Deine JSON-Payload an diese URL", - "send-many-messages": "Viele Nachrichten senden", "Sending": "Senden...", "Sent_an_attachment": "Anhang gesendet", "Served_By": "Bedient von", @@ -2469,16 +2199,6 @@ "Set_as_leader": "Zum Diskussionsleiter ernennen", "Set_as_moderator": "Zum Moderator ernennen", "Set_as_owner": "Zum Besitzer machen", - "Upload_app": "App hochladen", - "set-leader": "Diskussionsleiter ernennen", - "set-moderator": "Moderator ernennen", - "set-moderator_description": "Berechtigung, andere Benutzer zum Moderator eines Kanals zu ernennen", - "set-owner": "Eigentümer ernennen", - "set-owner_description": "Berechtigung, andere Benutzer zum Eigentümer eines Kanals zu ernennen", - "set-react-when-readonly": "Reaktionen in einem schreibgeschützten Kanal erlauben", - "set-react-when-readonly_description": "Berechtigung, Reaktionen in einem schreibgeschützten Kanal zu erlauben", - "set-readonly": "Mit Schreibschutz versehem", - "set-readonly_description": "Berechtigung, einen Raum schreibgeschützt zu machen", "Settings": "Einstellungen", "Settings_updated": "Die Einstellungen wurden aktualisiert", "Setup_Wizard": "Setup-Assistent", @@ -2487,50 +2207,48 @@ "Shared_Location": "Standort geteilt", "Should_be_a_URL_of_an_image": "Sollte die URL eines Bildes sein", "Should_exists_a_user_with_this_username": "Der Benutzer muss bereits vorhanden sein", + "Show_Avatars": "Zeige Avatare", + "Show_Setup_Wizard": "Setup-Assistent anzeigen", "Show_agent_email": "E-Mail-Adresse des Agenten anzeigen", "Show_all": "Alle Nutzer zeigen", - "Show_Avatars": "Zeige Avatare", "Show_counter": "Zähler anzeigen", "Show_email_field": "E-Mail-Feld anzeigen", "Show_more": "Weitere Nutzer zeigen", "Show_name_field": "Namensfeld anzeigen", - "show_offline_users": "Zeige Benutzer an, die offline sind", "Show_on_offline_page": "Auf Offline-Seite anzeigen", "Show_on_registration_page": "Auf der Registrierungsseite anzeigen", "Show_only_online": "Nur Benutzer anzeigen welche Online sind", "Show_preregistration_form": "Vorregistrierungsformular anzeigen", "Show_queue_list_to_all_agents": "Die Warteschlange allen Agenten anzeigen", "Show_room_counter_on_sidebar": "Zeige den Zähler des Raumes in der Seitenleiste an", - "Show_Setup_Wizard": "Setup-Assistent anzeigen", "Show_the_keyboard_shortcut_list": "Zeige die Liste der Keyboard-Shortcuts", "Showing_archived_results": "

Aneigen von %s archivierte Räume

", "Showing_results": "

%s Ergebnisse

", "Sidebar": "Seitenleiste", "Sidebar_list_mode": "Seitenleiste Kanallisten-Modus", "Sign_in_to_start_talking": "Anmelden, um mit dem Chatten zu beginnen", - "since_creation": "seit %s", "Site_Name": "Seitenname", "Site_Url": "Website-URL", "Site_Url_Description": "Beispiel: `https://chat.domain.com/`", "Size": "Größe", "Skip": "Überspringen", - "Slack_Users": "Benutzer-CSV von Slack", "SlackBridge_APIToken": "API Tokens", "SlackBridge_APIToken_Description": "Mehrere Slack-Server können mit Hilfe eines APITokens pro Zeile konfiguriert werden.", - "SlackBridge_error": "SlackBridge hat beim Import der Nachrichten einen Fehler gemeldet. %s: %s", - "SlackBridge_finish": "SlackBridge hat den Import aller Nachrichten um %s beendet. Bitte lade die Seite neu, um sie zu sehen.", "SlackBridge_Out_All": "Alles an SlackBridge senden", "SlackBridge_Out_All_Description": "Nachrichten aller Kanäle, die in Slack existieren und denen der Bot beigetreten ist senden", "SlackBridge_Out_Channels": "Kanäle für SlackBridge", "SlackBridge_Out_Channels_Description": "Auswählen, welche Kanäle an Slack gesendet werden", "SlackBridge_Out_Enabled": "SlackBridge Ausgang aktiviert", "SlackBridge_Out_Enabled_Description": "Ob die SlackBridge auch Nachrichten aus Rocket.Chat an Slack zurücksenden soll", + "SlackBridge_error": "SlackBridge hat beim Import der Nachrichten einen Fehler gemeldet. %s: %s", + "SlackBridge_finish": "SlackBridge hat den Import aller Nachrichten um %s beendet. Bitte lade die Seite neu, um sie zu sehen.", "SlackBridge_start": "@%s hat um `#%s` einen SlackBridge-Import gestartet. Wir werden Dich darüber informieren, sobald dieser beendet ist.", + "Slack_Users": "Benutzer-CSV von Slack", "Slash_Gimme_Description": "Zeigt ༼ つ ◕_◕ ༽つ vor Deiner Nachricht", "Slash_LennyFace_Description": "Zeigt ( ͡° ͜ʖ ͡°) nach Deiner Nachricht", "Slash_Shrug_Description": "Zeigt ¯\\_(ツ)_/¯ am Ende der Nachricht", - "Slash_Tableflip_Description": "Zeigt (╯°□°)╯︵ ┻━┻", "Slash_TableUnflip_Description": "Zeigt ┬─┬ ノ( ゜-゜ノ)", + "Slash_Tableflip_Description": "Zeigt (╯°□°)╯︵ ┻━┻", "Slash_Topic_Description": "Thema definieren", "Slash_Topic_Params": "Themen-Nachricht", "Smarsh_Email": "Smarsh E-Mail", @@ -2543,14 +2261,8 @@ "Smarsh_MissingEmail_Email_Description": "Eine E-Mail-Adresse, die bei Benutzern ohne E-Mail-Adresse (üblicherweise Bots) angezeigt werden soll.", "Smarsh_Timezone": "Smarsh-Zeitzone", "Smileys_and_People": "Gesichter & Personen", - "SMS_Enabled": "SMS aktiviert", - "SMTP": "SMTP", - "SMTP_Host": "SMTP-Host", - "SMTP_Password": "SMTP-Passwort", - "SMTP_Port": "SMTP-Port", - "SMTP_Test_Button": "SMTP-Einstellungen testen", - "SMTP_Username": "SMTP-Benutzername", "Snippet_Added": "Erstellt am %s", + "Snippet_Messages": "Nachrichten-Snippets", "Snippet_name": "Snippet-Name", "Snippeted_a_message": "Ein Snippet wurde erstellt: {{snippetLink}}", "Social_Network": "Soziales Netzwerk", @@ -2559,23 +2271,20 @@ "Sort_by_activity": "Nach Aktivität sortieren", "Sound": "Ton", "Sound_File_mp3": "Ton-Datei (.mp3)", - "SSL": "SSL", "Star": "Favorisieren", "Star_Message": "Nachricht favorisieren", "Starred_Messages": "Favorisierte Nachrichten", "Start": "Starten", - "Start_audio_call": "Anruf starten", "Start_Chat": "Chat beginnen", - "Start_of_conversation": "Beginn des Gesprächs", "Start_OTR": "OTR starten", + "Start_audio_call": "Anruf starten", + "Start_of_conversation": "Beginn des Gesprächs", "Start_video_call": "Videoanruf starten", "Start_video_conference": "Eine Video-Konferenz starten?", "Start_with_s_for_user_or_s_for_channel_Eg_s_or_s": "Starte mit %s für Nutzer oder %s für Kanäle. Beispiel: %s oder %s", - "start-discussion_description": "Eine Diskussion starten", - "start-discussion-other-user_description": "Eine Diskussion starten", "Started": "Gestartet", - "Started_a_video_call": "Ein Video-Anruf wurde gestartet", "Started_At": "Gestartet um", + "Started_a_video_call": "Ein Video-Anruf wurde gestartet", "Statistics": "Statistiken", "Statistics_reporting": "Sende Statistiken an Rocket.Chat", "Statistics_reporting_Description": "Mit dem Senden Deiner Statistiken hilfst Du uns herauszufinden, wie viele Instanzen von Rocket.Chat eingesetzt werden und wie gut das System funktioniert. So können wir es weiter verbessern. Es werden keine Benutzerinformationen übertragen und die erhaltenen Daten werden vertraulich behandelt.", @@ -2622,10 +2331,10 @@ "Symbols": "Symbole", "Sync": "Synchronisieren", "Sync / Import": "Synchronisieren / Importieren", - "Sync_in_progress": "Eine Synchronisierung wird durchgeführt", "Sync_Interval": "Synchronisierungsintervall", - "Sync_success": "Die Synchronisierung war erfolgreich", "Sync_Users": "Benutzer synchronisieren", + "Sync_in_progress": "Eine Synchronisierung wird durchgeführt", + "Sync_success": "Die Synchronisierung war erfolgreich", "System_messages": "Systemnachrichten", "Tag": "Tag", "Take_it": "Übernehmen", @@ -2636,6 +2345,7 @@ "Technology_Services": "Technologie-Dienstleistungen", "Test_Connection": "Teste die Verbindung", "Test_Desktop_Notifications": "Desktop-Benachrichtigungen testen", + "Thank_you_exclamation_mark": "Vielen Dank!", "Thank_you_for_your_feedback": "Vielen Dank für Deine Rückmeldung", "The_application_name_is_required": "Es muss ein Name für diese Anwendung angegeben werden", "The_channel_name_is_required": "Ein Name für den Kanal muss angegeben werden", @@ -2650,54 +2360,6 @@ "The_user_will_be_removed_from_s": "Der Benutzer wird aus %s entfernt", "The_user_wont_be_able_to_type_in_s": "Der Benutzer kann nicht mehr in %s schreiben", "Theme": "Visuelles Theme", - "theme-color-attention-color": "Farbe für besondere Aufmerksamkeit", - "theme-color-component-color": "Komponentenfarbe", - "theme-color-content-background-color": "Hintergrundfarbe des Inhalts", - "theme-color-custom-scrollbar-color": "Benutzerdefinierte Farbe der Scrollbar", - "theme-color-error-color": "Farbe für Fehler", - "theme-color-info-font-color": "Schriftfarbe von Informationen", - "theme-color-link-font-color": "Schriftfarbe von Links", - "theme-color-pending-color": "Farbe für Ausstehendes", - "theme-color-primary-action-color": "Primäre Aktionsfarbe", - "theme-color-primary-background-color": "Primäre Hintergrundfarbe ", - "theme-color-primary-font-color": "Primäre Schriftfarbe", - "theme-color-rc-color-alert": "Hinweis", - "theme-color-rc-color-alert-light": "Hinweis (hell)", - "theme-color-rc-color-alert-message-primary": "Primärfarbe von Warnungs-Nachrichten", - "theme-color-rc-color-alert-message-primary-background": "Hintergrundfarbe von Warnungs-Nachrichten", - "theme-color-rc-color-alert-message-secondary": "Sekundärfarbe von Warnungs-Nachrichten", - "theme-color-rc-color-alert-message-secondary-background": "Sekundäre Hintergrundfarbe von Warnungs-Nachrichten", - "theme-color-rc-color-alert-message-warning": "Warnungs-Nachrichten", - "theme-color-rc-color-alert-message-warning-background": "Hintergrund von Warnungs-Nachrichten", - "theme-color-rc-color-button-primary": "Button Primär", - "theme-color-rc-color-button-primary-light": "Button Primär (hell)", - "theme-color-rc-color-content": "Inhalt", - "theme-color-rc-color-error": "Fehler", - "theme-color-rc-color-error-light": "Fehler (hell)", - "theme-color-rc-color-link-active": "Link aktiv", - "theme-color-rc-color-primary": "Primär", - "theme-color-rc-color-primary-dark": "Primär (dunkel)", - "theme-color-rc-color-primary-darkest": "Primär (am dunkelsten)", - "theme-color-rc-color-primary-light": "Primär (hell)", - "theme-color-rc-color-primary-light-medium": "Primär (mittelhell)", - "theme-color-rc-color-primary-lightest": "Primär (am hellsten)", - "theme-color-rc-color-success": "Erfolg", - "theme-color-rc-color-success-light": "Erfolg (hell)", - "theme-color-secondary-action-color": "Sekundäre Aktionsfarbe", - "theme-color-secondary-background-color": "Sekundäre Hintergrundfarbe", - "theme-color-secondary-font-color": "Sekundäre Schriftfarbe", - "theme-color-selection-color": "Auswahlfarbe", - "theme-color-status-away": "Farbe des Status \"abwesend\"", - "theme-color-status-busy": "Farbe des Status \"beschäftigt\"", - "theme-color-status-offline": "Farbe des Status \"offline\"", - "theme-color-status-online": "Farbe des Status \"online\"", - "theme-color-success-color": "Farbe für Erfolg", - "theme-color-transparent-dark": "Transparent dunkel", - "theme-color-transparent-darker": "Transparent dunkler", - "theme-color-transparent-lightest": "Transparent am hellsten", - "theme-color-unread-notification-color": "Farbe von ungelesenen Benachrichtigungen", - "theme-custom-css": "Benutzerdefiniertes CSS", - "theme-font-body-font-family": "Schrift-Familie für den Textkörper", "There_are_no_agents_added_to_this_department_yet": "Es wurden bisher keine Agenten zu dieser Abteilung hinzugefügt", "There_are_no_applications": "Bisher wurden keine oAuth Anwendungen hinzugefügt.", "There_are_no_applications_installed": "Zur Zeit sind keine Rocket.Chat-Anwendungen installiert.", @@ -2713,7 +2375,6 @@ "This_room_has_been_archived_by__username_": "Dieser Raum wurde von {{username}} archiviert", "This_room_has_been_unarchived_by__username_": "Dieser Raum wurde von {{username}} aus dem Archiv geholt", "This_week": "Diese Woche", - "thread": "Thread", "Thread_message": "Kommentiert zu *{{username}}* Nachricht: _ {{msg}} _", "Threads": "Threads", "Thursday": "Donnerstag", @@ -2726,7 +2387,6 @@ "To": "Bis", "To_additional_emails": "Zu zusätzlichen E-Mails", "To_install_RocketChat_Livechat_in_your_website_copy_paste_this_code_above_the_last_body_tag_on_your_site": "Um den Rocket.Chat-Livechat auf Deiner Webseite zu installieren, kopiere den Code und füge ihn oberhalb des letzten </body>-Tags Deiner Seite ein.", - "to_see_more_details_on_how_to_integrate": "um weitere Informationen zur Integration zu sehen", "To_users": "An Benutzer", "Today": "Heute", "Toggle_original_translated": "Zwischen \"Original\" und \"Übersetzt\" wechseln", @@ -2743,10 +2403,10 @@ "Tokens_Required_Input_Placeholder": "Token-Asset-Namen", "Topic": "Thema", "Total": "Gesamt", - "Total_conversations": "Konversationen insgesamt", "Total_Discussions": "Anzahl aller Diskussionen", - "Total_messages": "Anzahl aller Nachrichten", "Total_Threads": "Anzahl aller Threads", + "Total_conversations": "Konversationen insgesamt", + "Total_messages": "Anzahl aller Nachrichten", "Total_visitors": "Besucher insgesamt", "Transcript_Enabled": "Frage Besucher, ob sie nach dem Schließen des Livechats eine Mitschrift zugesandt bekommen möchten", "Transcript_message": "Nachricht, die bei der Nachfrage bzgl. einer Mitschrift gesendet wird", @@ -2755,8 +2415,8 @@ "Translated": "Übersetzt", "Translations": "Übersetzungen", "Travel_and_Places": "Reisen & Orte", - "Trigger_removed": "Trigger entfernt", "Trigger_Words": "Trigger-Wörter", + "Trigger_removed": "Trigger entfernt", "Triggers": "Trigger", "True": "Ja", "Tuesday": "Dienstag", @@ -2781,9 +2441,9 @@ "UI_Unread_Counter_Style": "Stil für den \"Ungelesen\"-Zähler", "UI_Use_Name_Avatar": "Die Initialen des vollständigen Namens verwenden, um einen Standard-Avatar zu generieren", "UI_Use_Real_Name": "Den echten Namen verwenden", + "URL": "URL", + "UTF8_Names_Slugify": "UTF8-Namen-Slugify", "Unarchive": "Aus dem Archiv holen", - "unarchive-room": "Raum aus dem Archiv holen", - "unarchive-room_description": "Berechtigung, einen Raum aus dem Archiv holen", "Unblock_User": "Benutzer entsperren", "Unfavorite": "Aus Favoriten entfernen", "Unfollow_message": "Nicht mehr folgen", @@ -2798,38 +2458,52 @@ "Unread_Count": "Zählen ungelesener Nachrichten", "Unread_Count_DM": "Zählen ungelesener Direktnachrichten", "Unread_Messages": "Ungelesene Nachrichten", - "Unread_on_top": "Ungelesene oben", "Unread_Rooms": "Ungelesene Räume", "Unread_Rooms_Mode": "Ungelesene Räume gruppiert anzeigen", "Unread_Tray_Icon_Alert": "Ungelesen-Markierung in Statusleiste anzeigen", + "Unread_on_top": "Ungelesene oben", "Unstar_Message": "Aus den Favoriten entfernen", "Update": "Aktualisierung", "Update_LatestAvailableVersion": "Aktualisiere auf die aktuellste verfügbare Version", "Update_to_version": "Auf Version {{version}} aktualisieren", "Update_your_RocketChat": "Aktualisiere Dein Rocket.Chat", "Updated_at": "Aktualisiert am", + "Upload_Folder_Path": "Pfad des Uploads", + "Upload_From": "Upload von {{name}}", + "Upload_app": "App hochladen", "Upload_file_description": "Dateibeschreibung", "Upload_file_name": "Dateiname", "Upload_file_question": "Datei hochladen?", - "Upload_Folder_Path": "Pfad des Uploads", - "Upload_From": "Upload von {{name}}", "Upload_user_avatar": "Avatar hochladen", "Uploading_file": "Datei wird hochgeladen...", "Uptime": "Laufzeit", - "URL": "URL", - "Use_account_preference": "Kontoeinstellungen verwenden", "Use_Emojis": "Emojis verwenden", "Use_Global_Settings": "Globale Einstellungen verwenden", + "Use_User_Preferences_or_Global_Settings": "Kontoeinstellungen oder globale Einstellungen verwenden", + "Use_account_preference": "Kontoeinstellungen verwenden", "Use_initials_avatar": "Anfangsbuchstaben des Nutzernamens verwenden", "Use_minor_colors": "\"Minor\" Farbpalette verwenden (Standard: Erben von den Hauptfarben)", "Use_service_avatar": "Verwende %s Profilbild", "Use_this_username": "Benutze folgenden Benutzernamen", "Use_uploaded_avatar": "Das hochgeladene Profilbild verwenden", "Use_url_for_avatar": "URL für Profilbild verwenden", - "Use_User_Preferences_or_Global_Settings": "Kontoeinstellungen oder globale Einstellungen verwenden", "User": "Benutzer", "User Search": "Benutzersuche", "User Search (Group Validation)": "Benutzersuche (Gruppenvalidierung)", + "UserDataDownload": "Benutzerdaten herunterladen", + "UserDataDownload_CompletedRequestExisted_Text": "Deine Datendatei wurde bereits generiert. Überprüfe Deinen E-Mail-Account für den Download-Link.", + "UserDataDownload_EmailBody": "Deine Datendatei ist jetzt zum Herunterladen bereit. Klicke hier, um sie herunterzuladen.", + "UserDataDownload_EmailSubject": "Deine Datendatei ist bereit zum Herunterladen", + "UserDataDownload_Requested": "Datei herunterladen angefordert", + "UserData_EnableDownload": "Benutzerdaten herunterladen aktivieren", + "UserData_FileSystemPath": "Systempfad (exportierte Dateien)", + "UserData_FileSystemZipPath": "Systempfad (komprimierte Datei)", + "UserData_MessageLimitPerRequest": "Nachrichtenlimit pro Anfrage", + "UserData_ProcessingFrequency": "Verarbeitungshäufigkeit (Minuten)", + "User_Info": "Benutzerinformationen", + "User_Interface": "User Interface", + "User_Presence": "Verfügbarkeit", + "User_Settings": "Kontoeinstellungen", "User__username__is_now_a_leader_of__room_name_": "Benutzer {{username}} ist nun Diskussionsleiter für {{room_name}}", "User__username__is_now_a_moderator_of__room_name_": "Der Benutzer {{username}} ist jetzt ein Moderator von {{room_name}}", "User__username__is_now_an_owner_of__room_name_": "Benutzer {{username}} ist jetzt Besitzer von {{room_name}}", @@ -2850,8 +2524,6 @@ "User_has_been_muted_in_s": "Dem Nutzer wurde das Schreiben in %s verboten", "User_has_been_removed_from_s": "Der Benutzer wurde aus %s entfernt", "User_has_been_unignored": "Benutzer wird nicht mehr ignoriert", - "User_Info": "Benutzerinformationen", - "User_Interface": "User Interface", "User_is_blocked": "Benutzer ist geblockt", "User_is_no_longer_an_admin": "Der Benutzer ist kein Administrator mehr", "User_is_now_an_admin": "Der Benutzer ist jetzt ein Administrator", @@ -2867,13 +2539,10 @@ "User_not_found": "Der Benutzer konnte nicht gefunden werden", "User_not_found_or_incorrect_password": "Entweder konnte der Benutzer nicht gefunden werden oder Du hast ein falsches Passwort angegeben", "User_or_channel_name": "Benutzer- oder Kanalname", - "User_Presence": "Verfügbarkeit", "User_removed": "Benutzer wurde gelöscht", "User_removed_by": "Benutzer {{user_removed}} wurde von {{user_by}} entfernt", "User_sent_a_message_on_channel": "{{username}} hat eine Nachricht an {{channel}} gesendet", "User_sent_a_message_to_you": "{{username}} hat Dir eine Nachricht gesendet", - "user_sent_an_attachment": "{{user}} hat einen Anhang gesendet", - "User_Settings": "Kontoeinstellungen", "User_unmuted_by": "Benutzer {{user_unmuted}} wurde das Chatten von {{user_by}} wieder erlaubt", "User_unmuted_in_room": "Dem Benutzer wurde das Chatten wieder erlaubt", "User_updated_successfully": "Benutzer wurde erfolgreich aktualisiert", @@ -2881,45 +2550,31 @@ "User_uploaded_a_file_to_you": "{{username}} hat Dir eine Datei gesendet", "User_uploaded_file": "hat eine Datei hochgeladen", "User_uploaded_image": "hat ein Bild hochgeladen", - "user-generate-access-token": "Zugriffs-Token erzeugen", - "user-generate-access-token_description": "Bereichtigung, Zugangs-Tokens für Benutzer zu erstellen", - "UserData_EnableDownload": "Benutzerdaten herunterladen aktivieren", - "UserData_FileSystemPath": "Systempfad (exportierte Dateien)", - "UserData_FileSystemZipPath": "Systempfad (komprimierte Datei)", - "UserData_MessageLimitPerRequest": "Nachrichtenlimit pro Anfrage", - "UserData_ProcessingFrequency": "Verarbeitungshäufigkeit (Minuten)", - "UserDataDownload": "Benutzerdaten herunterladen", - "UserDataDownload_CompletedRequestExisted_Text": "Deine Datendatei wurde bereits generiert. Überprüfe Deinen E-Mail-Account für den Download-Link.", - "UserDataDownload_EmailBody": "Deine Datendatei ist jetzt zum Herunterladen bereit. Klicke hier, um sie herunterzuladen.", - "UserDataDownload_EmailSubject": "Deine Datendatei ist bereit zum Herunterladen", - "UserDataDownload_Requested": "Datei herunterladen angefordert", "Username": "Benutzername", + "Username_Change_Disabled": "Der Administrator hat das Ändern von Benutzernamen deaktiviert", + "Username_Placeholder": "Bitte gib Benutzernamen ein...", "Username_already_exist": "Benutzername existiert bereits. Bitte versuche es mit einem anderen Benutzernamen.", "Username_and_message_must_not_be_empty": "Benutzername und Nachricht müssen eingegeben werden", "Username_cant_be_empty": "Du musst einen Benutzernamen angeben", - "Username_Change_Disabled": "Der Administrator hat das Ändern von Benutzernamen deaktiviert", "Username_denied_the_OTR_session": "{{username}} hat die OTR-Session abgelehnt", "Username_description": "Der Benutzername wird dazu benutzt, um Dich in Nachrichten zu erwähnen", "Username_doesnt_exist": "Benutzer \"%s\" existiert nicht", "Username_ended_the_OTR_session": "{{username}} hat die OTR-Session beendet", "Username_invalid": "%s ist kein gültiger Benutzername.
Verwende nur Buchstaben, Zahlen, Punkte oder Binde- und Unterstriche.", "Username_is_already_in_here": "`@%s` wurde bereits hinzugefügt", - "Username_Placeholder": "Bitte gib Benutzernamen ein...", "Username_title": "Benutzernamen festlegen", "Username_wants_to_start_otr_Do_you_want_to_accept": "{{username}} möchte ein OTR-Gespräch starten. Möchtest Du es annehmen?", "Users": "Benutzer", "Users must use Two Factor Authentication": "Für den Benutzer wird die 2-Faktor Authentifizierung vorausgesetzt.", "Users_added": "Die Benutzer wurden hinzugefügt", "Users_in_role": "Nutzer mit dieser Rolle", - "UTF8_Names_Slugify": "UTF8-Namen-Slugify", - "Videocall_enabled": "Videoanruf aktiviert", "Validate_email_address": "E-Mail-Adresse bestätigen", "Verification": "Überprüfung ", "Verification_Description": "Du kannst folgende Platzhalter verwenden: \n - [[Verification_Url] für die Verifikations-URL \n - `[name]`, `[fname]`, `[lname]` für den vollständigen Namen, Vornamen oder Nachnamen des Benutzers \n - `[email]` für die E-Mail-Adresse des Benutzers. \n - `[Site_Name]` und `[Site_URL]` für den Anwendungsnamen und die URL der Anwendung ", "Verification_Email": "Klick hier, um Dein Benutzerkonto zu bestätigen", + "Verification_Email_Subject": "[Site_Name] - Bestätige Dein Benutzerkonto", "Verification_email_body": "Du hast erfolgreich ein Konto für [Site_Name] erstellt. Bitte klicke auf die Schaltfläche unten, um Deine E-Mail-Adresse zu bestätigen und die Registrierung abzuschließen.", "Verification_email_sent": "Bestätigungsmail gesendet", - "Verification_Email_Subject": "[Site_Name] - Bestätige Dein Benutzerkonto", "Verified": "Überprüft", "Verify": "überprüfen", "Verify_your_email": "Bestätige Deine E-Mail", @@ -2928,42 +2583,11 @@ "Video_Conference": "Video-Konferenz", "Video_message": "Videonachricht", "Videocall_declined": "Videoanruf abgelehnt", + "Videocall_enabled": "Videoanruf aktiviert", "View_All": "Alle ansehen", "View_Logs": "Logs anzeigen", "View_original": "Original anzeigen", "View_the_Logs_for": "Zeige die Protokolle für \"{{name}}\" an", - "view-broadcast-member-list": "Die Liste der Mitglieder in Broadcast-Räumen anzeigen", - "view-c-room": "Öffentlichen Kanal anzeigen", - "view-c-room_description": "Berechtigung, öffentliche Kanäle einzusehen", - "view-d-room": "Direktnachrichten erhalten", - "view-d-room_description": "Berechtigung, Direktnachrichten zu erhalten", - "view-full-other-user-info": "Vollständige Benutzerinformation einsehen", - "view-full-other-user-info_description": "Berechtigung, die vollständigen Benutzerinformation anderer Benutzer einzusehen (inkl. Erstelldatum, letztem Login etc.)", - "view-join-code": "Beitritts-Code anzeigen", - "view-join-code_description": "Berechtigung, den Beitritts-Code zu einem Kanal anzuzeigen", - "view-joined-room": "Beigetretenen Raum anzeigen", - "view-joined-room_description": "Berechtigung, einen Raum, dem der Benutzer angehört, anzuzeigen", - "view-l-room": "Zeige Livechat-Räume", - "view-l-room_description": "Berechtigung, Livechat-Räume zu sehen", - "view-livechat-analytics": "Livechat-Analytics anzeigen", - "view-livechat-manager": "Zeige Livechat-Manager", - "view-livechat-manager_description": "Berechtigung, andere Livechat-Manager zu sehen", - "view-livechat-rooms_description": "Berechtigung, andere Livechat-Räume einzusehen", - "view-logs": "Logs anzeigen", - "view-logs_description": "Berechtigung, die Server-Logs anzuzeigen", - "view-other-user-channels": "Räume anderer Benutzer anzeigen", - "view-other-user-channels_description": "Berechtigung, die Räume anderer Benutzer zu sehen", - "view-outside-room": "Raum außerhalb anzeigen", - "view-p-room": "Privaten Raum anzeigen", - "view-p-room_description": "Berechtigung, private Räume anzuzeigen", - "view-privileged-setting": "Besonders geschützte Einstellungen einsehen", - "view-privileged-setting_description": "Einstellungen anzeigen", - "view-room-administration": "Raum-Administration anzeigen", - "view-room-administration_description": "Berechtigung, Raumstatistiken zu öffentlichen, privaten und Direktnachrichten anzeigen. Beinhaltet nicht die Berechtigung, die Konversationen selbst oder Archive einzusehen.", - "view-statistics": "Statistiken anzeigen", - "view-statistics_description": "Berechtigung, Statistiken über das System einzusehen, bspw. Anzahl der angemeldeten Benutzer, Anzahl der Räume und Informationen zum Betriebssystem.", - "view-user-administration": "Benutzerverwaltung anzeigen", - "view-user-administration_description": "Berechtigung zu unvollständigen, schreibgeschützten Listen von anderen Benutzer, die derzeit am System angemeldet sind. Keine Details der Benutzerkonten können mit dieser Berechtigung eingesehen werden.", "Viewing_room_administration": "Raumadministration anzeigen", "Visibility": "Sichtbarkeit", "Visible": "Sichtbar", @@ -2978,34 +2602,32 @@ "We_are_offline_Sorry_for_the_inconvenience": "Tut uns leid, aber wir sind offline.", "We_have_sent_password_email": "Wir haben Dir eine Anleitung zum Zurücksetzen des Passworts an Deine E-Mail-Adresse gesendet. Wenn Du keine E-Mail erhalten hast, versuch es bitte noch einmal.", "We_have_sent_registration_email": "Wir haben Dir eine Bestätigungsmail gesendet. Wenn Du keine E-Mail erhalten hast, versuch es bitte noch einmal.", - "Webdav Integration": "Webdav-Integration", "WebDAV_Accounts": "WebDAV-Konten", - "Webdav_add_new_account": "Füge ein neues WebDAV-Konto hinzu", - "Webdav_Integration_Enabled": "Webdav-Integration aktiviert", - "Webdav_Password": "WebDAV Passwort", - "Webdav_Server_URL": "URL des WebDAV-Serverzugriffs", - "Webdav_Username": "WebDAV Benutzername", - "webdav-account-saved": "WebDAV-Konto gespeichert", - "Webhook_URL": "Webhook-URL", - "Webhooks": "Webhooks", - "WebRTC_direct_audio_call_from_%s": "Direkter Anruf von%s", - "WebRTC_direct_video_call_from_%s": "Direkter Videoanruf von%s", "WebRTC_Enable_Channel": "Für öffentliche Kanäle aktivieren", "WebRTC_Enable_Direct": "Für Direktnachrichten aktivieren", "WebRTC_Enable_Private": "Für private Kanäle aktivieren", + "WebRTC_Servers": "STUN/TURN-Server", + "WebRTC_Servers_Description": "Kommaseparierte Liste von STUN- und TURN-Servern. \n Benutzernamen, Passwörter und Ports sind in diesen Formaten erlaubt: `username:password@stun:host:port` oder `username:password@turn:host:port", + "WebRTC_direct_audio_call_from_%s": "Direkter Anruf von%s", + "WebRTC_direct_video_call_from_%s": "Direkter Videoanruf von%s", "WebRTC_group_audio_call_from_%s": "Gruppenanruf von %s", "WebRTC_group_video_call_from_%s": "Gruppenvideoanruf von %s", "WebRTC_monitor_call_from_%s": "Anruf von %s überwachen", - "WebRTC_Servers": "STUN/TURN-Server", - "WebRTC_Servers_Description": "Kommaseparierte Liste von STUN- und TURN-Servern. \n Benutzernamen, Passwörter und Ports sind in diesen Formaten erlaubt: `username:password@stun:host:port` oder `username:password@turn:host:port", + "Webdav Integration": "Webdav-Integration", + "Webdav_Integration_Enabled": "Webdav-Integration aktiviert", + "Webdav_Password": "WebDAV Passwort", + "Webdav_Server_URL": "URL des WebDAV-Serverzugriffs", + "Webdav_Username": "WebDAV Benutzername", + "Webdav_add_new_account": "Füge ein neues WebDAV-Konto hinzu", + "Webhook_URL": "Webhook-URL", + "Webhooks": "Webhooks", "Website": "Webseite", "Wednesday": "Mittwoch", "Welcome": "Willkommen, %s.", "Welcome_to": "Willkommen zu [Site_Name]", - "Welcome_to_workspace": "Willkommen zu {{Site_Name}}", "Welcome_to_the": "Willkommen bei", + "Welcome_to_workspace": "Willkommen zu {{Site_Name}}", "Why_do_you_want_to_report_question_mark": "Warum möchtest Du das melden?", - "will_be_able_to": "wird in der Lage sein,", "Worldwide": "Weltweit", "Would_you_like_to_return_the_inquiry": "Anfrage zurückgeben?", "Yes": "Ja", @@ -3018,11 +2640,8 @@ "Yes_prune_them": "Ja, beschneide sie!", "Yes_remove_user": "Ja, Benutzer entfernen!", "Yes_unarchive_it": "Ja, aus dem Archiv holen!", - "yesterday": "gestern", "Yesterday": "Gestern", "You": "Du", - "you_are_in_preview_mode_of": "Du befindest Dich im Vorschaumodus des Kanals #{{room_name}}", - "you_are_in_preview_mode_of_incoming_livechat": "Du bist im Vorschau-Modus dieses Livechats", "You_are_logged_in_as": "Du bist angemeldet als", "You_are_not_authorized_to_view_this_page": "Du darfst diese Seite nicht sehen.", "You_can_change_a_different_avatar_too": "Du kannst für Nachrichten aus dieser Integration ein anderes Profilbild verwenden.", @@ -3051,11 +2670,394 @@ "Your_email_has_been_queued_for_sending": "Deine E-Mail wird in Kürze gesendet werden", "Your_entry_has_been_deleted": "Dein Eintrag wurde gelöscht", "Your_file_has_been_deleted": "Deine Datei wurde erfolgreich gelöscht", - "your_message": "Deine Nachricht", - "your_message_optional": "Deine optionale Nachricht", "Your_password_is_wrong": "Falsches Passwort", "Your_push_was_sent_to_s_devices": "Eine Push-Nachricht wurde an %s Geräte gesendet.", "Your_question": "Deine Frage", "Your_server_link": "Dein Server-Link", - "Your_workspace_is_ready": "Dein Arbeitsbereich ist einsatzbereit 🎉" -} \ No newline at end of file + "Your_workspace_is_ready": "Dein Arbeitsbereich ist einsatzbereit 🎉", + "access-mailer": "Zugriff auf den Mailer", + "access-mailer_description": "Berechtigung, Massen-E-Mails an alle Benutzer zu versenden.", + "access-permissions": "Zugriff auf die Berechtigungs-Übersicht", + "access-permissions_description": "Anpassen der Berechtigungen für die unterschiedlichen Rollen.", + "add-oauth-service": "OAuth-Dienst hinzufügen", + "add-oauth-service_description": "Berechtigung, einen neuen OAuth-Dienst hinzuzufügen", + "add-user": "Benutzer erstellen", + "add-user-to-any-c-room": "Füge Benutzer zu jedem öffentlichen Kanal hinzu", + "add-user-to-any-c-room_description": "Berechtigung, um Benutzer zu jedem öffentlichen Kanal hinzuzufügen", + "add-user-to-any-p-room": "Benutzer jedem privaten Kanal hinzufügen", + "add-user-to-any-p-room_description": "Berechtigung, Benutzer jedem privaten Kanal hinzuzufügen", + "add-user-to-joined-room": "Benutzer jedem beigetretenen Kanal hinzufügen", + "add-user-to-joined-room_description": "Berechtigung, Benutzer jedem beigetretenen Kanal hinzuzufügen", + "add-user_description": "Berechtigung, über den Benutzer-Bildschirm neue Nutzer anzulegen", + "additional_integrations_Bots": "Wenn Du auf der Suche nach der Integration Deines eigenen Bot bist, dann ist unser Hubot-Adapter genau das Richtige für Dich. https://github.com/RocketChat/hubot-rocketchat", + "and": "und", + "api-bypass-rate-limit": "Begrenzung der Umgehungsrate für die REST-API", + "archive-room": "Kanal archivieren", + "archive-room_description": "Berechtigung, einen Kanal zu archivieren", + "are_typing": "schreiben", + "assign-admin-role": "Administratorrolle zuordnen", + "assign-admin-role_description": "Berechtigung, andere Benutzer zu Administratoren zu machen", + "assign-roles": "Rollen zuweisen", + "at": "am", + "auto-translate": "Automatische Übersetzung", + "auto-translate_description": "Berechtigung, die automatische Überstzung zu verwenden", + "away": "abwesend", + "ban-user": "Benutzer verbannen", + "ban-user_description": "Berechtigung, einen Benutzer aus einem Kanal zu verbannen", + "bold": "fett", + "bot_request": "Bot-Anfrage", + "bulk-register-user": "Massen-Registrierung von Benutzern", + "bulk-register-user_description": "Berechtigung zur Massen-Registrierung von Benutzern", + "busy": "beschäftigt", + "by": "von", + "cache_cleared": "Zwischenspeicher gelöscht", + "call-management": "Call Management", + "channel": "Kanal", + "clean-channel-history": "Kanalhistorie löschen", + "clean-channel-history_description": "Berechtigung, die Historie aus Kanälen zu löschen", + "clear": "Löschen", + "clear_cache_now": "Zwischenspeicher jetzt leeren", + "clear_history": "Verlauf löschen", + "close": "Schließen", + "close-livechat-room": "Livechat-Raum schließen", + "close-livechat-room_description": "Berechtigung, den aktuellen Livechat-Raum zu schließen", + "close-others-livechat-room": "Livechat-Raum schließen", + "close-others-livechat-room_description": "Berechtigung, andere Livechat-Räume zu schließen", + "color": "Farbe", + "conversation_with_s": "die Konversation mit %s", + "could-not-access-webdav": "Auf WebDAV konnte nicht zugegriffen werden", + "create-c": "Öffentliche Kanäle anlegen", + "create-c_description": "Berechtigung, öffentliche Kanäle anzulegen", + "create-d": "Direktnachrichten anlegen", + "create-d_description": "Berechtigung, Direktnachrichten zu senden", + "create-p": "Private Kanäle anlegen", + "create-p_description": "Berechtigung, private Kanäle anzulegen", + "create-personal-access-tokens": "Persönliche Access-Tokens erzeugen", + "create-user": "Benutzer anlegen", + "create-user_description": "Berechtigung, Benutzer anzulegen", + "days": "Tage", + "delete-c": "Öffentliche Kanäle löschen", + "delete-c_description": "Berechtigung, öffentliche Kanäle zu löschen", + "delete-d": "Direktnachrichten löschen", + "delete-d_description": "Berechtigung, Direktnachrichten zu löschen", + "delete-message": "Nachricht löschen", + "delete-message_description": "Berechtigung, eine Nachricht in einem Raum zu löschen", + "delete-p": "Private Kanäle löschen", + "delete-p_description": "Berechtigung, private Kanäle zu löschen", + "delete-user": "Benutzer löschen", + "delete-user_description": "Berechtigung, einen Benutzer zu löschen", + "discussion-created": "{{message}}", + "duplicated-account": "Doppeltes Konto", + "edit-message": "Nachricht bearbeiten", + "edit-message_description": "Berechtigung, eine Nachricht in einem Raum zu bearbeiten", + "edit-other-user-active-status": "Online-Status anderer Benutzer ändern", + "edit-other-user-active-status_description": "Berechtigung, den Online-Status anderer Benutzer zu ändern", + "edit-other-user-avatar": "Anderen Benutzer-Avatar bearbeiten", + "edit-other-user-avatar_description": "Erlaubnis, den Avatar eines anderen Benutzers zu ändern.", + "edit-other-user-info": "Benutzer-Informationen Anderer ändern", + "edit-other-user-info_description": "Berechtigung, Benutzer-Informationen (Namen, Benutzernamen, E-Mail-Adresse) anderer Personen zu ändern", + "edit-other-user-password": "Passwort anderer Benutzer ändern", + "edit-other-user-password_description": "Berechtigung, das Passwort anderer Benutzer zu ändern. Dies erfordert die Berechtigung, die Benutzer-Informationen Anderer zu ändern.", + "edit-privileged-setting": "Besonders geschützte Einstellungen ändern", + "edit-privileged-setting_description": "Berechtigung, besonders geschützte Einstellungen zu ändern", + "edit-room": "Raum bearbeiten", + "edit-room-retention-policy": "Bearbeiten der Aufbewahrungsrichtlinie für Räume", + "edit-room-retention-policy_description": "Berechtigung zum Bearbeiten der Aufbewahrungsrichtlinie eines Raums, um darin enthaltene Nachrichten automatisch zu löschen", + "edit-room_description": "Berechtigung, einen Raum zu bearbeiten (Name, Thema, Sichtbarkeit, Archivierung)", + "edited": "bearbeitet", + "email_style_description": "Vermeide verschachtelte Selektoren", + "email_style_label": "E-Mail-Stil", + "error-action-not-allowed": "{{action}} ist nicht erlaubt", + "error-application-not-found": "Anwendung nicht gefunden", + "error-archived-duplicate-name": "Es gibt bereits einen archivierten Kanal mit dem Namen '{{room_name}}'", + "error-avatar-invalid-url": "Ungültige Avatar-URL: {{url}}", + "error-avatar-url-handling": "Fehler beim Übernehmen des Avatars- von URL ({{url}}) für {{username}}", + "error-cant-invite-for-direct-room": "Nutzer können nicht in Direktnachrichten eingeladen werden.", + "error-channels-setdefault-is-same": "Die Kanal-Standardeinstellung ist die gleiche wie die, auf die sie geändert werden würde.", + "error-channels-setdefault-missing-default-param": "Der bodyParam-Standard ist erforderlich", + "error-could-not-change-email": "Konnte E-Mail-Adresse nicht ändern", + "error-could-not-change-name": "Konnte den Namen nicht ändern", + "error-could-not-change-username": "Konnte den Benutzernamen nicht ändern", + "error-delete-protected-role": "Eine geschützte Rolle kann nicht gelöscht werden.", + "error-department-not-found": "Abteilung konnte nicht gefunden werden.", + "error-direct-message-file-upload-not-allowed": "Dateiaustausch ist in Direktnachrichten nicht möglich.", + "error-duplicate-channel-name": "Ein Kanal mit dem Namen '{{channel_name}}' existiert bereits.", + "error-edit-permissions-not-allowed": "Das Bearbeiten von Berechtigungen ist nicht zulässig", + "error-email-domain-blacklisted": "Die Domain der E-Mail-Adresse ist auf der schwarzen Liste.", + "error-email-send-failed": "Fehler beim Versuch, eine Email zu versenden: {{message}}", + "error-field-unavailable": "{{field}} wird leider schon verwendet. ", + "error-file-too-large": "Die Datei ist zu groß", + "error-import-file-extract-error": "Entpacken der Importdatei fehlgeschlagen", + "error-import-file-is-empty": "Die importierte Datei scheint leer zu sein.", + "error-import-file-missing": "Die zu importierende Datei wurde im angegebenen Pfad nicht gefunden.", + "error-importer-not-defined": "Der Importer wurde nicht richtig definiert, die Importklasse fehlt.", + "error-input-is-not-a-valid-field": "{{input}} ist kein gültiges {{field}}", + "error-invalid-account": "Ungültiges Konto", + "error-invalid-actionlink": "Ungültiger Aktionslink", + "error-invalid-arguments": "Ungültige Argumente", + "error-invalid-asset": "Ungültiges Asset", + "error-invalid-channel": "Ungültiger Kanal.", + "error-invalid-channel-start-with-chars": "Ungültiger Kanal. Beginne mit @ oder #", + "error-invalid-custom-field": "Ungültiges benutzerdefiniertes Feld", + "error-invalid-custom-field-name": "Unzulässiger Name für ein benutzerdefiniertes Feld. Benutze nur Buchstaben, Nummern, Binde- und Unterstriche.", + "error-invalid-date": "Das eingegebene Datum ist ungültig.", + "error-invalid-description": "Ungültige Beschreibung", + "error-invalid-domain": "Ungültige Domain", + "error-invalid-email": "Ungültige E-Mail-Adresse: {{email}}", + "error-invalid-email-address": "Ungültige E-Mail-Adresse", + "error-invalid-file-height": "Ungültige Bildhöhe der Datei", + "error-invalid-file-type": "Ungültiges Dateiformat", + "error-invalid-file-width": "Ungültige Bildhöhe der Datei", + "error-invalid-from-address": "Du hast eine ungültige E-Mail-Adresse als Empfänger angegeben.", + "error-invalid-integration": "Ungültige Integration", + "error-invalid-message": "Ungültige Nachricht", + "error-invalid-method": "Ungültige Methode", + "error-invalid-name": "Ungültiger Name", + "error-invalid-password": "Falsches Passwort", + "error-invalid-permission": "Ungültige Berechtigung", + "error-invalid-redirectUri": "Ungültige Redirect-URI", + "error-invalid-role": "Ungültige Rolle", + "error-invalid-room": "Ungültiger Raum", + "error-invalid-room-type": "{{type}} ist kein gültiger Raumtyp.", + "error-invalid-settings": "Ungültige Einstellungen übergeben", + "error-invalid-subscription": "Ungültiges Abonnement", + "error-invalid-token": "Ungültiger Token", + "error-invalid-triggerWords": "Ungültiges Trigger-Wort", + "error-invalid-urls": "Ungültige URLs", + "error-invalid-user": "Ungültiger Benutzer", + "error-invalid-username": "Ungültiger Benutzername", + "error-invalid-webhook-response": "Die Webhook-URL antwortete mit einem anderen Status als 200", + "error-logged-user-not-in-room": "Du bist nicht im Raum `%s`", + "error-message-deleting-blocked": "Nachrichten löschen ist gesperrt", + "error-message-editing-blocked": "Nachrichten bearbeiten ist gesperrt", + "error-message-size-exceeded": "Nachrichtengröße überschreitet Message_MaxAllowedSize", + "error-missing-unsubscribe-link": "Du musst einen Link zum Abmelden vom Verteiler angeben.", + "error-no-tokens-for-this-user": "Es liegen keine Tokens für diesen Benutzer vor", + "error-not-allowed": "Nicht erlaubt", + "error-not-authorized": "Nicht berechtigt", + "error-password-policy-not-met": "Das Passwort genügt nicht den hinterlegten Richtlinien", + "error-password-policy-not-met-maxLength": "Das Passwort ist zu lang", + "error-password-policy-not-met-minLength": "Das Passwort ist zu kurz", + "error-password-policy-not-met-oneLowercase": "Das Passwort entspricht nicht der Richtlinie des Servers mit mindestens einem Kleinbuchstaben", + "error-password-policy-not-met-oneNumber": "Das Passwort muss mindestens eine Zahl beinhalten", + "error-password-policy-not-met-oneSpecial": "Das Passwort muss mindestens ein Sonderzeichen beinhalten", + "error-password-policy-not-met-oneUppercase": "Das Passwort entspricht nicht der Richtlinie des Servers mit mindestens einem Großbuchstaben", + "error-password-policy-not-met-repeatingCharacters": "Im Passwort werden zu viele Buchstaben wiederholt", + "error-personal-access-tokens-are-current-disabled": "Persönliche Zugriffsschlüssel sind zurzeit deaktiviert", + "error-push-disabled": "Push-Benachrichtigungen sind deaktiviert", + "error-remove-last-owner": "Das ist der letzte Besitzer. Bitte bestimme einen neuen Besitzer, bevor Du diesen entfernst.", + "error-role-in-use": "Die Rolle kann nicht gelöscht werden, da sie gerade verwendet wird.", + "error-role-name-required": "Ein Rollenname muss angegeben werden", + "error-room-is-not-closed": "Das Zimmer ist nicht geschlossen", + "error-the-field-is-required": "Das Feld {{field}} ist erforderlich.", + "error-this-is-not-a-livechat-room": "Dies ist kein Livechat-Raum", + "error-token-already-exists": "Ein Zugangsschlüssel mit diesem Namen existiert bereits", + "error-token-does-not-exists": "Der Zugangsschlüssel existiert nicht", + "error-too-many-requests": "Fehler, zu viele Anfragen. Bitte mach langsamer! Du musst {{seconds}} Sekunden warten, bevor Du es erneut versuchen kannst.", + "error-user-has-no-roles": "Dem Benutzer sind keine Rollen zugewiesen.", + "error-user-is-not-activated": "Der Benutzer ist nicht aktiviert.", + "error-user-limit-exceeded": "Die Anzahl der Benutzer, die Du hinzufügen möchtest, übersteigt das vom Administrator gesetzte Limit.", + "error-user-not-in-room": "Der Benutzer ist nicht in diesem Raum.", + "error-user-registration-disabled": "Benutzerregistrierung ist deaktiviert", + "error-user-registration-secret": "Benutzerregistrierung ist nur über geheime URL erlaubt", + "error-you-are-last-owner": "Du bist der letzte Besitzer. Bitte bestimme einen neuen Besitzer, bevor Du den Raum verlässt.", + "every_10_seconds": "Einmal alle 10 Sekunden", + "every_30_minutes": "alle 30 Minuten", + "every_5_minutes": "Einmal alle 5 Minuten", + "every_day": "Einmal jeden Tag", + "every_hour": "stündlich", + "every_minute": "Einmal pro Minute", + "every_second": "Einmal jede Sekunde", + "every_six_hours": "alle 6 Stunden", + "except_pinned": "(außer denen, die gepinnt sind)", + "expression": "Ausdruck", + "force-delete-message": "Nachricht forciert löschen", + "force-delete-message_description": "Berechtigung, eine Nachricht ohne weitere Prüfungen zu löschen", + "github_no_public_email": "Du hast keine öffentliche E-Mail-Adresse in Deinem GitHub-Account.", + "hours": "Stunden", + "if_they_are_from": "(wenn sie von %s sind)", + "initials_avatar": "Avatar aus Initialien", + "inline_code": "Code", + "invisible": "unsichtbar", + "is_typing": "schreibt", + "italics": "kursiv", + "join-without-join-code": "Ohne Code beitreten", + "join-without-join-code_description": "Berechtigung, Kanäle mit Zutrittscode auch ohne Code zu betreten", + "leave-c": "Kanäle verlassen", + "leave-p": "Verlasse private Gruppen", + "line": "Zeile", + "mail-messages": "Nachrichten per E-Mail versenden", + "mail-messages_description": "Berechtigung, Nachrichten per E-Mail zu versenden", + "manage-apps": "Apps verwalten", + "manage-assets": "Assets verwalten", + "manage-assets_description": "Berechtigung, Assets (Stylesheets, Bilder, weitere Dateien) auf dem Server zu verwalten", + "manage-cloud_description": "Cloud verwalten", + "manage-emoji": "Emojis verwalten", + "manage-emoji_description": "Berechtigung, Emojis zu verwalten", + "manage-integrations": "Integrationen verwalten", + "manage-integrations_description": "Berechtigung, die Integrationen des Servers zu verwalten", + "manage-oauth-apps": "OAuth-Anwendungen verwalten", + "manage-oauth-apps_description": "Berechtigung, OAuth-Anwendungen verwalten", + "manage-own-integrations": "Eigene Integrationen verwalten", + "manage-own-integrations_description": "Berechtigung, das Benutzer eigene Integrationen oder Webhooks erstellen und verwalten", + "manage-selected-settings": "Ausgewählte Einstellungen zu ändern", + "manage-selected-settings_description": "Berechtigung, einzelne speziell zugewiesene Einstellungen zu ändern", + "manage-sounds": "Töne verwalten", + "manage-sounds_description": "Berechtigung, Töne zu verwalten", + "mention-all": "Alle erwähnen", + "mention-all_description": "Berechtigung, @all zur Erwähnung aller Kanalmitglieder zu verwenden", + "mention-here": "Hier erwähnen", + "mention-here_description": "Berechtigung um Erwähnungen mit @hier zu nutzen", + "message": "Nachricht", + "messages": "Nachrichten", + "messages_pruned": "Nachrichten gelöscht.", + "minutes": "Minuten", + "multi": "mehrere", + "multi_line": "Mehrzeilig", + "mute-user": "Benutzer stumm schalten", + "mute-user_description": "Berechtigung, Benutzer in diesem Kanal stumm zu schalten", + "n_messages": "%s Nachrichten", + "online": "online", + "optional": "optional", + "or": "oder", + "others": "andere", + "pin-message": "Nachricht anheften", + "pin-message_description": "Berechtigung, eine Nachricht in einem Kanal anzuheften", + "please_enter_valid_domain": "Bitte eine gültige Domain eingeben", + "post-readonly": "Schreibgeschützt posten", + "post-readonly_description": "Berechtigung, in einen schreibgeschützten Kanal zu posten", + "preview-c-room": "Vorschau für öffentliche Kanäle", + "preview-c-room_description": "Berechtigung, den Inhalt eines öffentlichen Kanals einzusehen, bevor diesem beigetreten wird", + "quote": "zitieren", + "remove-closed-livechat-rooms": "Geschlossene Livechats entfernen", + "remove-user": "Benutzer entfernen", + "remove-user_description": "Berechtigung, einen Benutzter aus einem Raum zu entfernen", + "reset-other-user-e2e-key": "Ende-zu-Ende-Verlüsselungsschlüssel eines anderen Nutzers zurücksetzen", + "room_changed_announcement": "Ankündigung des Raums wurde von {{user_by}} zu {{room_announcement}} geändert", + "room_changed_description": "Raumbeschreibung wurde von von {{user_by}} zu {{room_description}} geändert", + "room_changed_privacy": "Der Raum wurde von {{user_by}} zum/r {{room_type}} geändert", + "room_changed_topic": "Das Thema des Raums wurde von {{user_by}} zu {{room_topic}} geändert", + "room_is_blocked": "Der Raum ist blockiert", + "room_is_read_only": "Der Raum ist schreibgeschützt", + "room_name": "Raumname", + "run-import": "Import ausführen", + "run-import_description": "Berechtigung, Importe auszuführen", + "run-migration": "Migration ausführen", + "run-migration_description": "Berechtigung, Migrationen auszuführen", + "save-others-livechat-room-info": "Livechat-Informationen anderer Chats speichern", + "save-others-livechat-room-info_description": "Berechtigung, die Livechat-Informationen anderer Konversationen zu speichern", + "seconds": "Sekunden", + "send-many-messages": "Viele Nachrichten senden", + "set-leader": "Diskussionsleiter ernennen", + "set-moderator": "Moderator ernennen", + "set-moderator_description": "Berechtigung, andere Benutzer zum Moderator eines Kanals zu ernennen", + "set-owner": "Eigentümer ernennen", + "set-owner_description": "Berechtigung, andere Benutzer zum Eigentümer eines Kanals zu ernennen", + "set-react-when-readonly": "Reaktionen in einem schreibgeschützten Kanal erlauben", + "set-react-when-readonly_description": "Berechtigung, Reaktionen in einem schreibgeschützten Kanal zu erlauben", + "set-readonly": "Mit Schreibschutz versehem", + "set-readonly_description": "Berechtigung, einen Raum schreibgeschützt zu machen", + "show_offline_users": "Zeige Benutzer an, die offline sind", + "since_creation": "seit %s", + "snippet-message": "Nachrichten-Snippet", + "snippet-message_description": "Berechtigung, ein Nachrichten-Snippet zu erstellen", + "start-discussion-other-user_description": "Eine Diskussion starten", + "start-discussion_description": "Eine Diskussion starten", + "strike": "durchgestrichen", + "theme-color-attention-color": "Farbe für besondere Aufmerksamkeit", + "theme-color-component-color": "Komponentenfarbe", + "theme-color-content-background-color": "Hintergrundfarbe des Inhalts", + "theme-color-custom-scrollbar-color": "Benutzerdefinierte Farbe der Scrollbar", + "theme-color-error-color": "Farbe für Fehler", + "theme-color-info-font-color": "Schriftfarbe von Informationen", + "theme-color-link-font-color": "Schriftfarbe von Links", + "theme-color-pending-color": "Farbe für Ausstehendes", + "theme-color-primary-action-color": "Primäre Aktionsfarbe", + "theme-color-primary-background-color": "Primäre Hintergrundfarbe ", + "theme-color-primary-font-color": "Primäre Schriftfarbe", + "theme-color-rc-color-alert": "Hinweis", + "theme-color-rc-color-alert-light": "Hinweis (hell)", + "theme-color-rc-color-alert-message-primary": "Primärfarbe von Warnungs-Nachrichten", + "theme-color-rc-color-alert-message-primary-background": "Hintergrundfarbe von Warnungs-Nachrichten", + "theme-color-rc-color-alert-message-secondary": "Sekundärfarbe von Warnungs-Nachrichten", + "theme-color-rc-color-alert-message-secondary-background": "Sekundäre Hintergrundfarbe von Warnungs-Nachrichten", + "theme-color-rc-color-alert-message-warning": "Warnungs-Nachrichten", + "theme-color-rc-color-alert-message-warning-background": "Hintergrund von Warnungs-Nachrichten", + "theme-color-rc-color-button-primary": "Button Primär", + "theme-color-rc-color-button-primary-light": "Button Primär (hell)", + "theme-color-rc-color-content": "Inhalt", + "theme-color-rc-color-error": "Fehler", + "theme-color-rc-color-error-light": "Fehler (hell)", + "theme-color-rc-color-link-active": "Link aktiv", + "theme-color-rc-color-primary": "Primär", + "theme-color-rc-color-primary-dark": "Primär (dunkel)", + "theme-color-rc-color-primary-darkest": "Primär (am dunkelsten)", + "theme-color-rc-color-primary-light": "Primär (hell)", + "theme-color-rc-color-primary-light-medium": "Primär (mittelhell)", + "theme-color-rc-color-primary-lightest": "Primär (am hellsten)", + "theme-color-rc-color-success": "Erfolg", + "theme-color-rc-color-success-light": "Erfolg (hell)", + "theme-color-secondary-action-color": "Sekundäre Aktionsfarbe", + "theme-color-secondary-background-color": "Sekundäre Hintergrundfarbe", + "theme-color-secondary-font-color": "Sekundäre Schriftfarbe", + "theme-color-selection-color": "Auswahlfarbe", + "theme-color-status-away": "Farbe des Status \"abwesend\"", + "theme-color-status-busy": "Farbe des Status \"beschäftigt\"", + "theme-color-status-offline": "Farbe des Status \"offline\"", + "theme-color-status-online": "Farbe des Status \"online\"", + "theme-color-success-color": "Farbe für Erfolg", + "theme-color-transparent-dark": "Transparent dunkel", + "theme-color-transparent-darker": "Transparent dunkler", + "theme-color-transparent-lightest": "Transparent am hellsten", + "theme-color-unread-notification-color": "Farbe von ungelesenen Benachrichtigungen", + "theme-custom-css": "Benutzerdefiniertes CSS", + "theme-font-body-font-family": "Schrift-Familie für den Textkörper", + "thread": "Thread", + "to_see_more_details_on_how_to_integrate": "um weitere Informationen zur Integration zu sehen", + "unarchive-room": "Raum aus dem Archiv holen", + "unarchive-room_description": "Berechtigung, einen Raum aus dem Archiv holen", + "user-generate-access-token": "Zugriffs-Token erzeugen", + "user-generate-access-token_description": "Bereichtigung, Zugangs-Tokens für Benutzer zu erstellen", + "user_sent_an_attachment": "{{user}} hat einen Anhang gesendet", + "view-broadcast-member-list": "Die Liste der Mitglieder in Broadcast-Räumen anzeigen", + "view-c-room": "Öffentlichen Kanal anzeigen", + "view-c-room_description": "Berechtigung, öffentliche Kanäle einzusehen", + "view-d-room": "Direktnachrichten erhalten", + "view-d-room_description": "Berechtigung, Direktnachrichten zu erhalten", + "view-full-other-user-info": "Vollständige Benutzerinformation einsehen", + "view-full-other-user-info_description": "Berechtigung, die vollständigen Benutzerinformation anderer Benutzer einzusehen (inkl. Erstelldatum, letztem Login etc.)", + "view-join-code": "Beitritts-Code anzeigen", + "view-join-code_description": "Berechtigung, den Beitritts-Code zu einem Kanal anzuzeigen", + "view-joined-room": "Beigetretenen Raum anzeigen", + "view-joined-room_description": "Berechtigung, einen Raum, dem der Benutzer angehört, anzuzeigen", + "view-l-room": "Zeige Livechat-Räume", + "view-l-room_description": "Berechtigung, Livechat-Räume zu sehen", + "view-livechat-analytics": "Livechat-Analytics anzeigen", + "view-livechat-manager": "Zeige Livechat-Manager", + "view-livechat-manager_description": "Berechtigung, andere Livechat-Manager zu sehen", + "view-livechat-rooms_description": "Berechtigung, andere Livechat-Räume einzusehen", + "view-logs": "Logs anzeigen", + "view-logs_description": "Berechtigung, die Server-Logs anzuzeigen", + "view-other-user-channels": "Räume anderer Benutzer anzeigen", + "view-other-user-channels_description": "Berechtigung, die Räume anderer Benutzer zu sehen", + "view-outside-room": "Raum außerhalb anzeigen", + "view-p-room": "Privaten Raum anzeigen", + "view-p-room_description": "Berechtigung, private Räume anzuzeigen", + "view-privileged-setting": "Besonders geschützte Einstellungen einsehen", + "view-privileged-setting_description": "Einstellungen anzeigen", + "view-room-administration": "Raum-Administration anzeigen", + "view-room-administration_description": "Berechtigung, Raumstatistiken zu öffentlichen, privaten und Direktnachrichten anzeigen. Beinhaltet nicht die Berechtigung, die Konversationen selbst oder Archive einzusehen.", + "view-statistics": "Statistiken anzeigen", + "view-statistics_description": "Berechtigung, Statistiken über das System einzusehen, bspw. Anzahl der angemeldeten Benutzer, Anzahl der Räume und Informationen zum Betriebssystem.", + "view-user-administration": "Benutzerverwaltung anzeigen", + "view-user-administration_description": "Berechtigung zu unvollständigen, schreibgeschützten Listen von anderen Benutzer, die derzeit am System angemeldet sind. Keine Details der Benutzerkonten können mit dieser Berechtigung eingesehen werden.", + "webdav-account-saved": "WebDAV-Konto gespeichert", + "will_be_able_to": "wird in der Lage sein,", + "yesterday": "gestern", + "you_are_in_preview_mode_of": "Du befindest Dich im Vorschaumodus des Kanals #{{room_name}}", + "you_are_in_preview_mode_of_incoming_livechat": "Du bist im Vorschau-Modus dieses Livechats", + "your_message": "Deine Nachricht", + "your_message_optional": "Deine optionale Nachricht", + "__username__is_no_longer__role__defined_by__user_by_": "{{username}} ist nicht länger {{role}}, geändert durch {{user_by}}", + "__username__was_set__role__by__user_by_": "{{username}} ist jetzt {{role}}, geändert durch {{user_by}}" +} diff --git a/packages/i18n/src/scripts/build.mts b/packages/i18n/src/scripts/build.mts index f778881acb8dc..fd578b1027946 100644 --- a/packages/i18n/src/scripts/build.mts +++ b/packages/i18n/src/scripts/build.mts @@ -1,19 +1,16 @@ import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises'; -import { basename, dirname, join } from 'node:path'; +import { join } from 'node:path'; import { fileURLToPath } from 'node:url'; +import { distDirectory, languageFromBasename, resourceBasename, resourcesDirectory } from './common.mts'; import { normalizeI18nInterpolations } from './normalize.mts'; -export async function build() { - const rootDirectory = join(dirname(fileURLToPath(import.meta.url)), '..', '..'); - const resourcesDirectory = join(rootDirectory, 'src', 'locales'); - const distDirectory = join(rootDirectory, 'dist'); - +async function build() { // read all files in the src/locales directory const resourceFiles = await readdir(resourcesDirectory); const resources = await Promise.all( resourceFiles.map(async (file) => ({ - language: basename(file, '.i18n.json'), + language: languageFromBasename(file), content: JSON.parse(await readFile(join(resourcesDirectory, file), 'utf8')), })), ); @@ -51,7 +48,7 @@ export async function build() { // ./resources/*.i18n.json await mkdir(join(distDirectory, 'resources'), { recursive: true }); for await (const resource of resources) { - await writeFile(join(distDirectory, 'resources', `${resource.language}.i18n.json`), JSON.stringify(resource.content, null, 2)); + await writeFile(join(distDirectory, 'resources', resourceBasename(resource.language)), JSON.stringify(resource.content, null, 2)); } // ./resources @@ -109,7 +106,11 @@ export default languages;`, if (import.meta.url.startsWith('file:')) { const modulePath = fileURLToPath(import.meta.url); + if (process.argv[1] === modulePath) { - build(); + build().catch((error) => { + console.error(error); + process.exit(1); + }); } } diff --git a/packages/i18n/src/scripts/check.mts b/packages/i18n/src/scripts/check.mts new file mode 100644 index 0000000000000..ddb2149a4c19b --- /dev/null +++ b/packages/i18n/src/scripts/check.mts @@ -0,0 +1,230 @@ +import { argv, stderr, stdout } from 'node:process'; +import { fileURLToPath } from 'node:url'; +import { formatWithOptions, parseArgs, styleText } from 'node:util'; + +import { baseLanguage, getResourceLanguages, readResource, writeResource } from './common.mts'; + +type TaskOptions = { + fix?: boolean; +}; + +let errorCount = 0; + +const describeTask = + ( + task: string, + fn: () => AsyncGenerator<{ + lint: (collectError: (format?: any, ...param: any[]) => void) => Promise; + fix: () => Promise; + }>, + ) => + async (options: TaskOptions) => { + for await (const result of fn()) { + if (!result) continue; + + if (options.fix) { + await result.fix(); + console.log(styleText('blue', '✔', { stream: stdout }), styleText('gray', `${task}:`, { stream: stdout }), 'fixes applied'); + } else { + const stderrSupportsColor = styleText('blue', `.`, { stream: stderr }) !== '.'; + + await result.lint((_format, ...param) => { + console.error( + styleText('red', '✘', { stream: stderr }), + styleText('gray', `${task}:`, { stream: stderr }), + formatWithOptions({ colors: stderrSupportsColor }, _format, ...param), + ); + errorCount++; + }); + } + } + }; + +/** + * Sort keys of the base language (en) alphabetically + * and write back the sorted resource file if necessary + */ +const sortBaseKeys = describeTask('sort-base-keys', async function* () { + const baseResource = await readResource(baseLanguage); + + const keys = Object.keys(baseResource); + const sortedKeys = keys.toSorted((a, b) => a.toLowerCase().localeCompare(b.toLowerCase(), 'en')); + + if (keys.join(',') === sortedKeys.join(',')) return; + + yield { + lint: async (collectError) => { + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const beforeKey = keys.at(i - 1); + const j = sortedKeys.indexOf(key); + const expectedBeforeKey = sortedKeys.at(j - 1); + + if (beforeKey !== expectedBeforeKey) { + if (expectedBeforeKey) { + collectError('%o should be after %o', keys[i], expectedBeforeKey); + } else { + collectError('%o should be the first key', keys[i]); + } + } + } + }, + fix: async () => { + const sortedResource: Record = {}; + for (const key of sortedKeys) { + sortedResource[key] = baseResource[key]; + } + + await writeResource(baseLanguage, sortedResource); + }, + }; +}); + +/** + * Apply the order of the base language (en) to all other languages + */ +const sortKeys = describeTask('sort-keys', async function* () { + const baseResource = await readResource(baseLanguage); + const baseKeys = new Set(Object.keys(baseResource)); + + const languages = await getResourceLanguages(); + + for await (const language of languages) { + if (language === baseLanguage) continue; + + const resource = await readResource(language); + const resourceKeys = new Set(Object.keys(resource)); + const extraKeys = resourceKeys.difference(baseKeys); + + const sortedResource: Record = {}; + + for (const key of baseKeys) { + if (!resourceKeys.has(key)) continue; + sortedResource[key] = resource[key]; + } + + for (const key of extraKeys) { + sortedResource[key] = resource[key]; + } + + if (Object.keys(resource).join(',') === Object.keys(sortedResource).join(',')) continue; + + yield { + lint: async (collectError) => { + const keys = Object.keys(resource); + const sortedKeys = Object.keys(sortedResource); + + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (extraKeys.has(key)) continue; + + const j = sortedKeys.indexOf(key); + const expectedBeforeKey = sortedKeys.at(j - 1); + const beforeKey = keys.at(i - 1); + + if (beforeKey !== expectedBeforeKey) { + if (expectedBeforeKey) { + collectError('%s: %o should be after %o', language, keys[i], expectedBeforeKey); + } else { + collectError('%s: %o should be the first key', language, keys[i]); + } + } + } + }, + fix: async () => { + await writeResource(language, sortedResource); + }, + }; + } +}); + +/** + * Wipes extra keys from all language files that are not present in the base language (en) + */ +const wipeExtraKeys = describeTask('wipe-extra-keys', async function* () { + const baseResource = await readResource(baseLanguage); + const baseKeys = new Set(Object.keys(baseResource)); + + const languages = await getResourceLanguages(); + + for await (const language of languages) { + if (language === baseLanguage) continue; + + const resource = await readResource(language); + const resourceKeys = new Set(Object.keys(resource)); + + if (resourceKeys.difference(baseKeys).size === 0) continue; + + yield { + lint: async (collectError) => { + const extraKeys = resourceKeys.difference(baseKeys); + for (const key of extraKeys) { + collectError('%s: has extra key %o', language, key); + } + }, + fix: async () => { + const wipedResource: Record = {}; + // Traversing the own resource keys to preserve the original order + for (const key of Object.keys(resource)) { + if (!baseKeys.has(key)) continue; + wipedResource[key] = resource[key]; + } + + await writeResource(language, wipedResource); + }, + }; + } +}); + +const tasksByName = { + 'sort-base-keys': sortBaseKeys, + 'sort-keys': sortKeys, + 'wipe-extra-keys': wipeExtraKeys, +} as const; + +async function check({ fix, task }: { fix?: boolean; task?: string[] } = {}) { + // We're lenient by default excluding 'sort-base-keys' from the default tasks + const tasks = new Set(['sort-keys', 'wipe-extra-keys']); + + if (task?.length) { + tasks.clear(); + task.filter((taskName): taskName is keyof typeof tasksByName => taskName in tasksByName).forEach((taskName) => tasks.add(taskName)); + } + + if (tasks.size === 0) { + throw new Error('No valid tasks selected.'); + } + + for await (const taskName of tasks) { + const task = tasksByName[taskName]; + await task({ fix }); + } + + if (errorCount > 0) { + throw new Error(`${errorCount} error(s) found.`); + } +} + +if (import.meta.url.startsWith('file:')) { + const modulePath = fileURLToPath(import.meta.url); + + if (argv[1] === modulePath) { + const { values } = parseArgs({ + args: argv.slice(2), + options: { + fix: { type: 'boolean', short: 'f' }, + task: { + type: 'string', + multiple: true, + short: 't', + choices: Object.keys(tasksByName), + }, + }, + }); + + check(values).catch((error) => { + console.error(error); + process.exit(1); + }); + } +} diff --git a/packages/i18n/src/scripts/common.mts b/packages/i18n/src/scripts/common.mts new file mode 100644 index 0000000000000..2eab4560a2244 --- /dev/null +++ b/packages/i18n/src/scripts/common.mts @@ -0,0 +1,26 @@ +import { readdir, readFile, writeFile } from 'node:fs/promises'; +import { basename, dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +export const baseLanguage = 'en'; + +export async function getResourceLanguages() { + const resourceFiles = await readdir(resourcesDirectory); + return resourceFiles.map((file) => languageFromBasename(file)); +} + +export async function readResource(language: string) { + return JSON.parse(await readFile(join(resourcesDirectory, resourceBasename(language)), 'utf8')); +} + +export async function writeResource(language: string, resource: unknown) { + const content = JSON.stringify(resource, null, 2); + return writeFile(join(resourcesDirectory, resourceBasename(language)), content, 'utf8'); +} + +export const rootDirectory = join(dirname(fileURLToPath(import.meta.url)), '..', '..'); +export const resourcesDirectory = join(rootDirectory, 'src', 'locales'); +export const distDirectory = join(rootDirectory, 'dist'); + +export const resourceBasename = (language: string) => `${language}.i18n.json`; +export const languageFromBasename = (path: string) => basename(path, '.i18n.json'); From 1e3b063684b2d61509f6c9754b665763f86827c8 Mon Sep 17 00:00:00 2001 From: Tasso Date: Wed, 24 Sep 2025 13:36:59 -0300 Subject: [PATCH 10/20] Add tasks for handling plurals --- apps/meteor/.scripts/translation-check.ts | 117 +--------------------- packages/i18n/src/scripts/check.mts | 113 ++++++++++++++++++--- packages/i18n/src/scripts/common.mts | 12 +++ 3 files changed, 110 insertions(+), 132 deletions(-) diff --git a/apps/meteor/.scripts/translation-check.ts b/apps/meteor/.scripts/translation-check.ts index de027c0ff7571..4968e0e82fb34 100644 --- a/apps/meteor/.scripts/translation-check.ts +++ b/apps/meteor/.scripts/translation-check.ts @@ -42,28 +42,6 @@ const parseFile = async (path: PathLike) => { return json; }; -const insertTranslation = (json: Record, refKey: string, [key, value]: [key: string, value: string]) => { - const entries = Object.entries(json); - - const refIndex = entries.findIndex(([entryKey]) => entryKey === refKey); - - if (refIndex === -1) { - throw new Error(`Reference key ${refKey} not found`); - } - - const movingEntries = entries.slice(refIndex + 1); - - for (const [key] of movingEntries) { - delete json[key]; - } - - json[key] = value; - - for (const [key, value] of movingEntries) { - json[key] = value; - } -}; - const persistFile = async (path: PathLike, json: Record) => { const content = JSON.stringify(json, null, 2); @@ -124,102 +102,11 @@ export const extractSingularKeys = (json: Record, lng: string) = return [singularKeys, pluralSuffixes] as const; }; -const checkMissingPlurals = async ({ - json, - path, - lng, - fix = false, -}: { - json: Record; - path: PathLike; - lng: string; - fix?: boolean; -}) => { - const [singularKeys, pluralSuffixes] = extractSingularKeys(json, lng); - - const missingPluralKeys: { singularKey: string; existing: string[]; missing: string[] }[] = []; - - for (const singularKey of singularKeys) { - if (singularKey in json) { - continue; - } - - const pluralKeys = pluralSuffixes.map((suffix) => `${singularKey}${suffix}`); - - const existing = pluralKeys.filter((key) => key in json); - const missing = pluralKeys.filter((key) => !(key in json)); - - if (missing.length > 0) { - missingPluralKeys.push({ singularKey, existing, missing }); - } - } - - if (missingPluralKeys.length > 0) { - const message = `Missing plural keys on file ${path}: ${inspect(missingPluralKeys, { colors: !!supportsColor.stdout })}`; - - if (fix) { - console.warn(message); - - for (const { existing, missing } of missingPluralKeys) { - for (const missingKey of missing) { - const refKey = existing.slice(-1)[0]; - const value = json[refKey]; - insertTranslation(json, refKey, [missingKey, value]); - } - } - - await persistFile(path, json); - - return; - } - - throw new Error(message); - } -}; - -const checkExceedingKeys = async ({ - json, - path, - lng, - sourceJson, - sourceLng, - fix = false, -}: { - json: Record; - path: PathLike; - lng: string; - sourceJson: Record; - sourceLng: string; - fix?: boolean; -}) => { - const [singularKeys] = extractSingularKeys(json, lng); - const [sourceSingularKeys] = extractSingularKeys(sourceJson, sourceLng); - - const exceedingKeys = [...singularKeys].filter((key) => !sourceSingularKeys.has(key)); - - if (exceedingKeys.length > 0) { - const message = `Exceeding keys on file ${path}: ${inspect(exceedingKeys, { colors: !!supportsColor.stdout })}`; - - if (fix) { - for (const key of exceedingKeys) { - delete json[key]; - } - - await persistFile(path, json); - - return; - } - - throw new Error(message); - } -}; - const checkFiles = async (sourceDirPath: string, sourceLng: string, fix = false) => { const sourcePath = join(sourceDirPath, `${sourceLng}.i18n.json`); const sourceJson = await parseFile(sourcePath); await checkPlaceholdersFormat({ json: sourceJson, path: sourcePath, fix }); - await checkMissingPlurals({ json: sourceJson, path: sourcePath, lng: sourceLng, fix }); const i18nFiles = await fg([join(sourceDirPath, `**/*.i18n.json`), `!${sourcePath}`]); @@ -235,10 +122,8 @@ const checkFiles = async (sourceDirPath: string, sourceLng: string, fix = false) }), ); - for await (const { path, json, lng } of translations) { + for await (const { path, json } of translations) { await checkPlaceholdersFormat({ json, path, fix }); - await checkExceedingKeys({ json, path, lng, sourceJson, sourceLng, fix }); - await checkMissingPlurals({ json, path, lng, fix }); } }; diff --git a/packages/i18n/src/scripts/check.mts b/packages/i18n/src/scripts/check.mts index ddb2149a4c19b..c41b7094fc50c 100644 --- a/packages/i18n/src/scripts/check.mts +++ b/packages/i18n/src/scripts/check.mts @@ -2,7 +2,7 @@ import { argv, stderr, stdout } from 'node:process'; import { fileURLToPath } from 'node:url'; import { formatWithOptions, parseArgs, styleText } from 'node:util'; -import { baseLanguage, getResourceLanguages, readResource, writeResource } from './common.mts'; +import { baseLanguage, getLanguagePlurals, getResourceLanguages, readResource, writeResource } from './common.mts'; type TaskOptions = { fix?: boolean; @@ -14,8 +14,8 @@ const describeTask = ( task: string, fn: () => AsyncGenerator<{ - lint: (collectError: (format?: any, ...param: any[]) => void) => Promise; - fix: () => Promise; + lint: (reportError: (format?: any, ...param: any[]) => void) => Promise; + fix: (throwError: (format?: any, ...param: any[]) => void) => Promise; }>, ) => async (options: TaskOptions) => { @@ -23,8 +23,17 @@ const describeTask = if (!result) continue; if (options.fix) { - await result.fix(); - console.log(styleText('blue', '✔', { stream: stdout }), styleText('gray', `${task}:`, { stream: stdout }), 'fixes applied'); + try { + await result.fix((format, ...param) => { + throw new Error(formatWithOptions({ colors: !!styleText('blue', `.`, { stream: stdout }) }, format, ...param)); + }); + + console.log(styleText('blue', '✔', { stream: stdout }), styleText('gray', `${task}:`, { stream: stdout }), 'fixes applied'); + } catch (error) { + console.error(styleText('red', '✘', { stream: stdout }), styleText('gray', `${task}:`, { stream: stdout }), error instanceof Error ? error.message : error); + console.error(styleText('gray', ` cannot apply fixes automatically, run without --fix to see all errors`, { stream: stdout })); + errorCount++; + } } else { const stderrSupportsColor = styleText('blue', `.`, { stream: stderr }) !== '.'; @@ -41,8 +50,7 @@ const describeTask = }; /** - * Sort keys of the base language (en) alphabetically - * and write back the sorted resource file if necessary + * Sort keys of the base language (en) alphabetically and write back the sorted resource file if necessary */ const sortBaseKeys = describeTask('sort-base-keys', async function* () { const baseResource = await readResource(baseLanguage); @@ -53,7 +61,7 @@ const sortBaseKeys = describeTask('sort-base-keys', async function* () { if (keys.join(',') === sortedKeys.join(',')) return; yield { - lint: async (collectError) => { + lint: async (reportError) => { for (let i = 0; i < keys.length; i++) { const key = keys[i]; const beforeKey = keys.at(i - 1); @@ -62,9 +70,9 @@ const sortBaseKeys = describeTask('sort-base-keys', async function* () { if (beforeKey !== expectedBeforeKey) { if (expectedBeforeKey) { - collectError('%o should be after %o', keys[i], expectedBeforeKey); + reportError('%o should be after %o', keys[i], expectedBeforeKey); } else { - collectError('%o should be the first key', keys[i]); + reportError('%o should be the first key', keys[i]); } } } @@ -110,7 +118,7 @@ const sortKeys = describeTask('sort-keys', async function* () { if (Object.keys(resource).join(',') === Object.keys(sortedResource).join(',')) continue; yield { - lint: async (collectError) => { + lint: async (reportError) => { const keys = Object.keys(resource); const sortedKeys = Object.keys(sortedResource); @@ -124,9 +132,9 @@ const sortKeys = describeTask('sort-keys', async function* () { if (beforeKey !== expectedBeforeKey) { if (expectedBeforeKey) { - collectError('%s: %o should be after %o', language, keys[i], expectedBeforeKey); + reportError('%s: %o should be after %o', language, keys[i], expectedBeforeKey); } else { - collectError('%s: %o should be the first key', language, keys[i]); + reportError('%s: %o should be the first key', language, keys[i]); } } } @@ -156,10 +164,10 @@ const wipeExtraKeys = describeTask('wipe-extra-keys', async function* () { if (resourceKeys.difference(baseKeys).size === 0) continue; yield { - lint: async (collectError) => { + lint: async (reportError) => { const extraKeys = resourceKeys.difference(baseKeys); for (const key of extraKeys) { - collectError('%s: has extra key %o', language, key); + reportError('%s: has extra key %o', language, key); } }, fix: async () => { @@ -176,15 +184,88 @@ const wipeExtraKeys = describeTask('wipe-extra-keys', async function* () { } }); +/** + * Wipes invalid plural forms from all language files (only "zero", "one", "two", "few", "many", "other" are valid) + */ +const wipeInvalidPlurals = describeTask('wipe-invalid-plurals', async function* () { + const languages = await getResourceLanguages(); + + for await (const language of languages) { + const resource = await readResource(language); + const plurals = getLanguagePlurals(language).concat(['zero']); // 'zero' is special in i18next + + for (const [key, translation] of Object.entries(resource)) { + if (typeof translation !== 'object' || !translation) continue; + + const translationPlurals = Object.keys(translation); + for (const plural of translationPlurals) { + if (!plurals.includes(plural)) { + yield { + lint: async (reportError) => { + reportError('%s: key %o has invalid plural form %o', language, key, plural); + }, + fix: async () => { + const fixedResource: Record = { ...resource }; + fixedResource[key] = Object.fromEntries( + Object.entries(translation).filter(([p]) => plurals.includes(p)), + ); + await writeResource(language, fixedResource); + } + }; + } + } + } + } +}); + +/** + * Finds missing plural forms in all language files + */ +const findMissingPlurals = describeTask('find-missing-plurals', async function* () { + const languages = await getResourceLanguages(); + + for await (const language of languages) { + if (language === baseLanguage) continue; + + const resource = await readResource(language); + const baseResource = await readResource(baseLanguage); + const plurals = getLanguagePlurals(language); + + for (const [key, translation] of Object.entries(baseResource)) { + if (typeof translation !== 'object' || !translation) continue; + if (!(key in resource)) continue; + + const translationPlurals = Object.keys(translation); + const resourceTranslation = resource[key]; + if (typeof resourceTranslation !== 'object' || !resourceTranslation) continue; + + for (const plural of translationPlurals) { + if (!plurals.includes(plural)) continue; + if (plural in resourceTranslation) continue; + yield { + lint: async (reportError) => { + reportError('%s: key %o is missing plural form %o', language, key, plural); + }, + fix: async (throwError) => { + throwError('%s: key %o is missing plural form %o', language, key, plural); + } + }; + } + } + } +}); + const tasksByName = { 'sort-base-keys': sortBaseKeys, 'sort-keys': sortKeys, 'wipe-extra-keys': wipeExtraKeys, + 'wipe-invalid-plurals': wipeInvalidPlurals, + 'find-missing-plurals': findMissingPlurals, } as const; async function check({ fix, task }: { fix?: boolean; task?: string[] } = {}) { // We're lenient by default excluding 'sort-base-keys' from the default tasks - const tasks = new Set(['sort-keys', 'wipe-extra-keys']); + const tasks = new Set(['sort-keys', 'wipe-extra-keys', 'wipe-invalid-plurals', 'find-missing-plurals']); if (task?.length) { tasks.clear(); diff --git a/packages/i18n/src/scripts/common.mts b/packages/i18n/src/scripts/common.mts index 2eab4560a2244..3bdf4c3844958 100644 --- a/packages/i18n/src/scripts/common.mts +++ b/packages/i18n/src/scripts/common.mts @@ -2,6 +2,8 @@ import { readdir, readFile, writeFile } from 'node:fs/promises'; import { basename, dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; +import i18next from 'i18next'; + export const baseLanguage = 'en'; export async function getResourceLanguages() { @@ -9,6 +11,16 @@ export async function getResourceLanguages() { return resourceFiles.map((file) => languageFromBasename(file)); } +export const getLanguagePlurals = (language: string): string[] => { + // @ts-expect-error - faulty module resolution from ESM package + if (!i18next.isInitialized) { + i18next.init({ initImmediate: false }); + } + + // @ts-expect-error - faulty module resolution from ESM package + return i18next.services.pluralResolver.getSuffixes(language).map((suffix: string) => suffix.slice(1)); +}; + export async function readResource(language: string) { return JSON.parse(await readFile(join(resourcesDirectory, resourceBasename(language)), 'utf8')); } From 92f7037fbdffa7e78819b9e14eeee378089abb21 Mon Sep 17 00:00:00 2001 From: Tasso Date: Wed, 24 Sep 2025 20:43:33 -0300 Subject: [PATCH 11/20] Improve old placeholder format detection --- apps/meteor/.scripts/translation-check.ts | 134 ------------------- apps/meteor/package.json | 1 - packages/i18n/src/locales/fa.i18n.json | 4 +- packages/i18n/src/locales/fi.i18n.json | 4 +- packages/i18n/src/locales/hu.i18n.json | 4 +- packages/i18n/src/locales/ka-GE.i18n.json | 6 +- packages/i18n/src/locales/ko.i18n.json | 2 +- packages/i18n/src/locales/mn.i18n.json | 5 +- packages/i18n/src/locales/ms-MY.i18n.json | 2 +- packages/i18n/src/locales/ru.i18n.json | 6 +- packages/i18n/src/locales/uk.i18n.json | 2 +- packages/i18n/src/locales/zh-TW.i18n.json | 8 +- packages/i18n/src/scripts/check.mts | 152 +++++++++++++++++++--- packages/i18n/src/scripts/common.mts | 6 +- 14 files changed, 157 insertions(+), 179 deletions(-) delete mode 100644 apps/meteor/.scripts/translation-check.ts diff --git a/apps/meteor/.scripts/translation-check.ts b/apps/meteor/.scripts/translation-check.ts deleted file mode 100644 index 4968e0e82fb34..0000000000000 --- a/apps/meteor/.scripts/translation-check.ts +++ /dev/null @@ -1,134 +0,0 @@ -import type { PathLike } from 'node:fs'; -import { readFile, writeFile } from 'node:fs/promises'; -import { join } from 'node:path'; -import { inspect } from 'node:util'; - -import fg from 'fast-glob'; -import i18next from 'i18next'; -import supportsColor from 'supports-color'; - -const hasDuplicatedKeys = (content: string, json: Record) => { - const matchKeys = content.matchAll(/^\s+"([^"]+)"/gm); - - const allKeys = [...matchKeys]; - - return allKeys.length !== Object.keys(json).length; -}; - -const parseFile = async (path: PathLike) => { - const content = await readFile(path, 'utf-8'); - let json: Record; - try { - json = JSON.parse(content); - } catch (e) { - if (e instanceof SyntaxError) { - const matches = /^Unexpected token .* in JSON at position (\d+)$/.exec(e.message); - - if (matches) { - const [, positionStr] = matches; - const position = parseInt(positionStr, 10); - const line = content.slice(0, position).split('\n').length; - const column = position - content.slice(0, position).lastIndexOf('\n'); - throw new SyntaxError(`Invalid JSON on file ${path}:${line}:${column}`); - } - } - throw new SyntaxError(`Invalid JSON on file ${path}: ${(e as Error).message}`); - } - - if (hasDuplicatedKeys(content, json)) { - throw new SyntaxError(`Duplicated keys found on file ${path}`); - } - - return json; -}; - -const persistFile = async (path: PathLike, json: Record) => { - const content = JSON.stringify(json, null, 2); - - await writeFile(path, content, 'utf-8'); -}; - -const oldPlaceholderFormat = /__([a-zA-Z_]+)__/g; - -const checkPlaceholdersFormat = async ({ json, path, fix = false }: { json: Record; path: PathLike; fix?: boolean }) => { - const outdatedKeys = Object.entries(json) - .map(([key, value]) => ({ - key, - value, - placeholders: value.match(oldPlaceholderFormat), - })) - .filter((outdatedKey): outdatedKey is { key: string; value: string; placeholders: RegExpMatchArray } => !!outdatedKey.placeholders); - - if (outdatedKeys.length > 0) { - const message = `Outdated placeholder format on file ${path}: ${inspect(outdatedKeys, { colors: !!supportsColor.stdout })}`; - - if (fix) { - console.warn(message); - - for (const { key, value } of outdatedKeys) { - const newValue = value.replace(oldPlaceholderFormat, (_, name) => `{{${name}}}`); - - json[key] = newValue; - } - - await persistFile(path, json); - - return; - } - - throw new Error(message); - } -}; - -export const extractSingularKeys = (json: Record, lng: string) => { - if (!i18next.isInitialized) { - i18next.init({ initImmediate: false }); - } - - const pluralSuffixes = i18next.services.pluralResolver.getSuffixes(lng) as string[]; - - const singularKeys = new Set( - Object.keys(json).map((key) => { - for (const pluralSuffix of pluralSuffixes) { - if (key.endsWith(pluralSuffix)) { - return key.slice(0, -pluralSuffix.length); - } - } - - return key; - }), - ); - - return [singularKeys, pluralSuffixes] as const; -}; - -const checkFiles = async (sourceDirPath: string, sourceLng: string, fix = false) => { - const sourcePath = join(sourceDirPath, `${sourceLng}.i18n.json`); - const sourceJson = await parseFile(sourcePath); - - await checkPlaceholdersFormat({ json: sourceJson, path: sourcePath, fix }); - - const i18nFiles = await fg([join(sourceDirPath, `**/*.i18n.json`), `!${sourcePath}`]); - - const languageFileRegex = /\/([^\/]*?).i18n.json$/; - const translations = await Promise.all( - i18nFiles.map(async (path) => { - const lng = languageFileRegex.exec(path)?.[1]; - if (!lng) { - throw new Error(`Invalid language file path ${path}`); - } - - return { path, json: await parseFile(path), lng }; - }), - ); - - for await (const { path, json } of translations) { - await checkPlaceholdersFormat({ json, path, fix }); - } -}; - -const fix = process.argv[2] === '--fix'; -checkFiles('./packages/rocketchat-i18n/i18n', 'en', fix).catch((e) => { - console.error(e); - process.exit(1); -}); diff --git a/apps/meteor/package.json b/apps/meteor/package.json index ceb06416ac624..2df75e0d57606 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -45,7 +45,6 @@ "testunit-watch": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' mocha --watch --config ./.mocharc.js", "test": "yarn testunit && yarn testapi", "translation-diff": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/translation-diff.ts", - "translation-check": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/translation-check.ts", "translation-replace-sprintf-params": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/replaceTranslationSprintfParams.ts", "version": "node .scripts/version.js", "set-version": "node .scripts/set-version.js", diff --git a/packages/i18n/src/locales/fa.i18n.json b/packages/i18n/src/locales/fa.i18n.json index e2a946bb0320c..f8e0e855b1d25 100644 --- a/packages/i18n/src/locales/fa.i18n.json +++ b/packages/i18n/src/locales/fa.i18n.json @@ -360,8 +360,8 @@ "Apps_Marketplace_Uninstall_App_Prompt": "آیا واقعاً می خواهید این برنامه را حذف کنید؟", "Apps_Marketplace_Uninstall_Subscribed_App_Anyway": "در هر صورت حذف کنید", "Apps_Marketplace_Uninstall_Subscribed_App_Prompt": "این برنامه اشتراک دارد و حذف آن لغو نخواهد شد. اگر می خواهید این کار را انجام دهید ، لطفاً قبل از حذف اشتراک ، اشتراک خود را اصلاح کنید.", - "Apps_Marketplace_pricingPlan_monthly": "__ قیمت__ / ماه", - "Apps_Marketplace_pricingPlan_monthly_perUser": "__ قیمت__ / ماه برای هر کاربر", + "Apps_Marketplace_pricingPlan_monthly": "{{price}} / ماه", + "Apps_Marketplace_pricingPlan_monthly_perUser": "{{price}} / ماه برای هر کاربر", "Apps_Settings": "تنظیمات برنامه", "Apps_User_Already_Exists": "قبلاً از نام کاربری \"{{username}}\" استفاده شده است. تغییر نام یا حذف کاربر با استفاده از آن برای نصب این برنامه", "Apps_WhatIsIt": "برنامه ها: آنها چه هستند؟", diff --git a/packages/i18n/src/locales/fi.i18n.json b/packages/i18n/src/locales/fi.i18n.json index 936cec5bb41c6..4b67fd7ff7088 100644 --- a/packages/i18n/src/locales/fi.i18n.json +++ b/packages/i18n/src/locales/fi.i18n.json @@ -3707,9 +3707,9 @@ "SAML_Identifier_Format": "Tunnisteen muoto", "SAML_Identifier_Format_Description": "Jätä tämä tyhjäksi, jos haluat jättää NameID-käytännön pois pyynnöstä.", "SAML_LogoutRequest_Template": "Uloskirjautumispyynnön malli", - "SAML_LogoutRequest_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_newId\\__\\_**: Satunnaisesti luotu id-merkkijono \n- **\\__\\_instant\\_\\_\\_**: Nykyinen aikaleima \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP Single LogOut URL-osoite, johon ohjataan. \n- **\\__\\_issuer\\_\\__**: {{Custom Issuer}} -asetuksen arvo. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} -asetuksen arvo. \n- **\\_\\_nameID\\_\\__**: IdP:ltä saatu NameID, kun käyttäjä kirjautui sisään. \n- **\\_\\_sessionIndex\\_\\_**: IdP:ltä saatu sessionIndex, kun käyttäjä kirjautui sisään.", + "SAML_LogoutRequest_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_newId\\_\\_**: Satunnaisesti luotu id-merkkijono \n- **\\_\\_instant\\_\\_**: Nykyinen aikaleima \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP Single LogOut URL-osoite, johon ohjataan. \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} -asetuksen arvo. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} -asetuksen arvo. \n- **\\_\\_nameID\\_\\_**: IdP:ltä saatu NameID, kun käyttäjä kirjautui sisään. \n- **\\_\\_sessionIndex\\_\\_**: IdP:ltä saatu sessionIndex, kun käyttäjä kirjautui sisään.", "SAML_LogoutResponse_Template": "Uloskirjautumisvastauksen malli", - "SAML_LogoutResponse_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_newId\\__\\_**: Satunnaisesti luotu id-merkkijono \n- **\\_\\_inResponseToId\\_\\_**: IdP:ltä vastaanotetun uloskirjautumispyynnön tunnus \n- **\\_\\_instant\\_\\__**: Nykyinen aikaleima \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP:n yksittäisen uloskirjautumisen URL-osoite, johon ohjataan. \n- **\\_\\_issuer\\_\\__**: {{Custom Issuer}} -asetuksen arvo. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} -asetuksen arvo. \n- **\\_\\__nameID\\_\\__**: IdP:n uloskirjautumispyynnöstä saatu NameID. \n- **\\_\\_sessionIndex\\_\\_**: IdP:n uloskirjautumispyynnöstä saatu sessionIndex.", + "SAML_LogoutResponse_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_newId\\_\\_**: Satunnaisesti luotu id-merkkijono \n- **\\_\\_inResponseToId\\_\\_**: IdP:ltä vastaanotetun uloskirjautumispyynnön tunnus \n- **\\_\\_instant\\_\\_**: Nykyinen aikaleima \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP:n yksittäisen uloskirjautumisen URL-osoite, johon ohjataan. \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} -asetuksen arvo. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} -asetuksen arvo. \n- **\\_\\_nameID\\_\\_**: IdP:n uloskirjautumispyynnöstä saatu NameID. \n- **\\_\\_sessionIndex\\_\\_**: IdP:n uloskirjautumispyynnöstä saatu sessionIndex.", "SAML_MetadataCertificate_Template": "Metadatan varmenteen malli", "SAML_Metadata_Certificate_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_certificate\\_\\_**: Yksityinen varmenne väitteen salausta varten.", "SAML_Metadata_Template": "Metadatan tietomalli", diff --git a/packages/i18n/src/locales/hu.i18n.json b/packages/i18n/src/locales/hu.i18n.json index 9881471c5fdc1..5e8187509b8bf 100644 --- a/packages/i18n/src/locales/hu.i18n.json +++ b/packages/i18n/src/locales/hu.i18n.json @@ -3446,7 +3446,7 @@ "SAML_AuthnContext_Template": "AuthN-környezet sablon", "SAML_AuthnContext_Template_Description": "Itt bármelyik változót használhatja az AuthN-kérés sablonjából. \n \n További authn környezetek hozzáadásához kettőzze meg az {{AuthnContextClassRef}} címkét, és cserélje ki az {{\\_\\_authnContext\\_\\}} változót az új környezetre.", "SAML_AuthnRequest_Template": "AuthN-kérés sablon", - "SAML_AuthnRequest_Template_Description": "A következő változók érhetők el: \n- **\\_\\_newId\\_\\_**: véletlenszerűen előállított azonosító-karakterlánc. \n- **\\_\\_instant\\_\\_**: jelenlegi időbélyeg. \n- **\\_\\_callbackUrl\\_\\_**: a Rocket.Chat visszahívási URL-je. \n- **\\_\\_entryPoint\\_\\_**: az __egyéni belépési pont__ beállítás értéke. \n- **\\_\\_issuer\\_\\_**: az __egyéni kibocsátó__ beállítás értéke. \n- **\\_\\_identifierFormatTag\\_\\_**: a __NameID házirend sablon__ tartalma, ha érvényes __azonosítóformátum__ van beállítva. \n- **\\_\\_identifierFormat\\_\\_**: az __azonosítóformátum__ beállítás értéke. \n- **\\_\\_authnContextTag\\_\\_**: az {{AuthN-környezet sablon}} tartalma, ha érvényes __egyéni AuthN-környezet__ van beállítva. \n- **\\_\\_authnContextComparison\\_\\_**: az __AuthN-környezet összehasonlítása__ beállítás értéke. \n- **\\_\\_authnContext\\_\\_**: az __egyéni AuthN-környezet__ beállítás értéke.", + "SAML_AuthnRequest_Template_Description": "A következő változók érhetők el: \n- **\\_\\_newId\\_\\_**: véletlenszerűen előállított azonosító-karakterlánc. \n- **\\_\\_instant\\_\\_**: jelenlegi időbélyeg. \n- **\\_\\_callbackUrl\\_\\_**: a Rocket.Chat visszahívási URL-je. \n- **\\_\\_entryPoint\\_\\_**: az {{egyéni belépési pont}} beállítás értéke. \n- **\\_\\_issuer\\_\\_**: az {{egyéni kibocsátó}} beállítás értéke. \n- **\\_\\_identifierFormatTag\\_\\_**: a {{NameID házirend sablon}} tartalma, ha érvényes {{azonosítóformátum}} van beállítva. \n- **\\_\\_identifierFormat\\_\\_**: az {{azonosítóformátum}} beállítás értéke. \n- **\\_\\_authnContextTag\\_\\_**: az {{AuthN-környezet sablon}} tartalma, ha érvényes {{egyéni AuthN-környezet}} van beállítva. \n- **\\_\\_authnContextComparison\\_\\_**: az {{AuthN-környezet összehasonlítása}} beállítás értéke. \n- **\\_\\_authnContext\\_\\_**: az {{egyéni AuthN-környezet}} beállítás értéke.", "SAML_Connection": "Kapcsolat", "SAML_Custom_Authn_Context": "Egyéni AuthN-környezet", "SAML_Custom_Authn_Context_Comparison": "AuthN-környezet összehasonlítása", @@ -3501,7 +3501,7 @@ "SAML_MetadataCertificate_Template": "Metaadattanúsítvány-sablon", "SAML_Metadata_Certificate_Template_Description": "A következő változók érhetők el: \n- **\\_\\_certificate\\_\\_**: a személyes tanúsítvány a helyességi feltétel titkosításához.", "SAML_Metadata_Template": "Metaadatsablon", - "SAML_Metadata_Template_Description": "A következő változók érhetők el: \n- **\\_\\_sloLocation\\_\\_**: a Rocket.Chat önálló kijelentkezési URL-je. \n- **\\_\\_issuer\\_\\_**: az __egyéni kibocsátó__ beállítás értéke. \n- **\\_\\_identifierFormat\\_\\_**: az {{azonosítóformátum}} beállítás értéke. \n- **\\_\\_certificateTag\\_\\_**: ha személyes tanúsítvány van beállítva, akkor ez tartalmazni fogja a {{metaadattanúsítvány-sablont}}, egyébként mellőzve lesz. \n- **\\_\\_callbackUrl\\_\\_**: a Rocket.Chat visszahívási URL-je.", + "SAML_Metadata_Template_Description": "A következő változók érhetők el: \n- **\\_\\_sloLocation\\_\\_**: a Rocket.Chat önálló kijelentkezési URL-je. \n- **\\_\\_issuer\\_\\_**: az {{egyéni kibocsátó}} beállítás értéke. \n- **\\_\\_identifierFormat\\_\\_**: az {{azonosítóformátum}} beállítás értéke. \n- **\\_\\_certificateTag\\_\\_**: ha személyes tanúsítvány van beállítva, akkor ez tartalmazni fogja a {{metaadattanúsítvány-sablont}}, egyébként mellőzve lesz. \n- **\\_\\_callbackUrl\\_\\_**: a Rocket.Chat visszahívási URL-je.", "SAML_NameIdPolicy_Template": "NameID házirend sablon", "SAML_NameIdPolicy_Template_Description": "Itt bármelyik változót használhatja az engedélyezési kérés sablonjából.", "SAML_Role_Attribute_Name": "Szerep attribútum neve", diff --git a/packages/i18n/src/locales/ka-GE.i18n.json b/packages/i18n/src/locales/ka-GE.i18n.json index d11670493e7d2..248da47afc279 100644 --- a/packages/i18n/src/locales/ka-GE.i18n.json +++ b/packages/i18n/src/locales/ka-GE.i18n.json @@ -2841,7 +2841,7 @@ "This_room_has_been_unarchived_by__username_": "ეს ოთახი ამოარქივდა {{username}}-ის მიერ", "This_room_is_read_only": "ოთახი არის მხოლოდ წაკითხვის უფლებით", "This_week": "ეს კვირა", - "Thread_message": "კომენტარი გააკეთა * __ მომხმარებლის __ ის გზავნილზე: _ {{msg}} _", + "Thread_message": "კომენტარი გააკეთა *{{username}}* ის გზავნილზე: _{{msg}}_", "Thursday": "ხუთშაბათი", "Time_in_seconds": "დრო წამებში", "Timeouts": "თაიმაუტები", @@ -3540,8 +3540,8 @@ "remove-user": "მომხმარებლის მოცილება", "remove-user_description": "მომხმარებლი ოთახიდან მოცილების უფლება", "reset-other-user-e2e-key": "სხვა მომხმარებლის E2E გასაღებების გადატვირთვა", - "room_changed_announcement": "ოთახის განცხადება შეიცვალა {{room_announcement}},{{username}}-ის მიერ", - "room_changed_description": "ოთახის აღწერა შეიცვალა: {{room_description}} __ მომხმარებელი__-ის მიერ ", + "room_changed_announcement": "ოთახის განცხადება შეიცვალა {{room_announcement}} მიერ {{user_by}}", + "room_changed_description": "ოთახის აღწერა შეიცვალა: {{room_description}} მიერ {{user_by}}", "room_changed_topic": "ოთახის თემა შეიცვალა: {{room_topic}} {{user_by}}", "room_is_blocked": "ოთახი დაბლოკილია", "room_is_read_only": "ოთახი არის მხოლოდ წაკითხვის უფლებით", diff --git a/packages/i18n/src/locales/ko.i18n.json b/packages/i18n/src/locales/ko.i18n.json index 888bf2c4ab05f..c93e4b8b97d7f 100644 --- a/packages/i18n/src/locales/ko.i18n.json +++ b/packages/i18n/src/locales/ko.i18n.json @@ -2721,7 +2721,7 @@ "SAML_AuthnContext_Template": "AuthnContext 템플릿", "SAML_AuthnContext_Template_Description": "여기에서 AuthnRequest 템플릿의 모든 변수를 사용할 수 있습니다. \n \n인증 컨텍스트를 추가하려면, {{AuthnContextClassRef}} 태그를 복제하고 {{ \\ _ \\ _ authnContext \\ _ \\ }}_ 변수를 새 컨텍스트로 바꾸십시오.", "SAML_AuthnRequest_Template": "AuthnRequest 템플릿", - "SAML_AuthnRequest_Template_Description": "다음 변수를 사용할 수 있습니다. : \n -** \\ _ \\ _ newId \\ _ \\ _ ** : 임의로 생성 된 id 문자열 \n -** \\ _ \\ _ instant \\ _ \\ _ ** : 현재 타임 스탬프 \n -** \\ _ \\ _ callbackUrl \\ _ \\ _ ** : Rocket.Chat 콜백 URL. \n -** \\ _ \\ _ entryPoint \\ _ \\ _ ** : {{Custom Entry Point}} 설정의 값입니다. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : {{Custom Issuer}} 설정의 값입니다. \n -** \\ _ \\ _ identifierFormatTag \\ _ \\ _ ** : 유효한 {{Identifier Format}}이 구성된 경우 __NameID 정책 템플릿 __의 내용입니다. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : {{Identifier Format}} 설정의 값입니다. \n -** \\ _ \\ _ authnContextTag \\ _ \\ _ ** : 유효한 {{Custom Authn Context}}가 구성된 경우 {{AuthnContext Template}}의 내용입니다. \n -** \\ _ \\ _ authnContextComparison \\ _ \\ _ ** : {{Authn Context Comparison}} 설정의 값입니다. \n -** \\ _ \\ _ authnContext \\ _ \\ _ ** : {{Custom Authn Context}} 설정의 값입니다.", + "SAML_AuthnRequest_Template_Description": "다음 변수를 사용할 수 있습니다. : \n -**\\_\\_newId\\_\\_**: 임의로 생성 된 id 문자열 \n -**\\_\\_instant\\_\\_**: 현재 타임 스탬프 \n -**\\_\\callbackUrl\\_\\_**: Rocket.Chat 콜백 URL. \n -** \\_\\_entryPoint\\_\\_**: {{Custom Entry Point}} 설정의 값입니다. \n -**\\_\\_issuer\\_\\_**: {{Custom Issuer}} 설정의 값입니다. \n -**\\_\\_identifierFormatTag\\_\\_**: 유효한 {{Identifier Format}}이 구성된 경우 {{NameID 정책 템플릿}} 의 내용입니다. \n -**\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} 설정의 값입니다. \n -**\\_\\_authnContextTag\\_\\_**: 유효한 {{Custom Authn Context}}가 구성된 경우 {{AuthnContext Template}}의 내용입니다. \n -**\\_\\_authnContextComparison\\_\\_**: {{Authn Context Comparison}} 설정의 값입니다. \n -**\\_\\_authnContext\\_\\_**: {{Custom Authn Context}} 설정의 값입니다.", "SAML_Custom_Authn_Context": "사용자 정의 인증 컨텍스트", "SAML_Custom_Authn_Context_Comparison": "인증 된 컨텍스트 비교", "SAML_Custom_Authn_Context_description": "요청에서 인증 컨텍스트를 생략하려면이 항목을 비워 두십시오. \n \n여러 인증 컨텍스트를 추가하려면 {{AuthnContext Template}} 설정에 직접 추가하십시오.", diff --git a/packages/i18n/src/locales/mn.i18n.json b/packages/i18n/src/locales/mn.i18n.json index ba24dde8da6a2..e7b73ab9c62d1 100644 --- a/packages/i18n/src/locales/mn.i18n.json +++ b/packages/i18n/src/locales/mn.i18n.json @@ -1534,7 +1534,7 @@ "New_role": "Шинэ үүрэг", "New_version_available_(s)": "Шинэ хувилбар боломжтой (%s)", "New_videocall_request": "Шинэ видео дуудлагын хүсэлт", - "New_visitor_navigation": "Шинэ навигаци: __хүүх__", + "New_visitor_navigation": "Шинэ навигаци: {{history}}", "Newer_than": "Үүнээс илүү", "Newer_than_may_not_exceed_Older_than": "\"Дахин илүү\" нь \"Хуучин\"", "No": "Үгүй", @@ -2743,6 +2743,5 @@ "you_are_in_preview_mode_of": "Та сувгийн урьдчилан харах горимд байна {{room_name}}", "your_message": "таны зурвас", "your_message_optional": "таны мессеж (заавал биш)", - "__count__empty_rooms_will_be_removed_automatically": "{{count}} тооны хоосон өрөөнүүд автоматаар устгагдах болно", - "__username__was_set__role__by__user_by_": "__ус_name__ __role_ __" + "__count__empty_rooms_will_be_removed_automatically": "{{count}} тооны хоосон өрөөнүүд автоматаар устгагдах болно" } \ No newline at end of file diff --git a/packages/i18n/src/locales/ms-MY.i18n.json b/packages/i18n/src/locales/ms-MY.i18n.json index 50a89d84bb9f7..0df9d8c360d06 100644 --- a/packages/i18n/src/locales/ms-MY.i18n.json +++ b/packages/i18n/src/locales/ms-MY.i18n.json @@ -2762,5 +2762,5 @@ "you_are_in_preview_mode_of": "Anda berapa di dalam mod pralihat saluran #{{room_name}}", "your_message": "mesej anda", "your_message_optional": "mesej anda (pilihan)", - "__username__was_set__role__by__user_by_": "__nama pengguna__ ditubuhkan {{role}} oleh {{user_by}}" + "__username__was_set__role__by__user_by_": "{{username}} ditubuhkan {{role}} oleh {{user_by}}" } \ No newline at end of file diff --git a/packages/i18n/src/locales/ru.i18n.json b/packages/i18n/src/locales/ru.i18n.json index aaaf931fb9125..9fc54991f3859 100644 --- a/packages/i18n/src/locales/ru.i18n.json +++ b/packages/i18n/src/locales/ru.i18n.json @@ -3315,7 +3315,7 @@ "SAML_AuthnContext_Template": "Шаблон AuthnContext", "SAML_AuthnContext_Template_Description": "Здесь можно использовать любую переменную из шаблона AuthnRequest. \n \n Чтобы добавить дополнительные контексты authn, продублируйте тег {{AuthnContextClassRef}} и замените переменную {{\\_\\_authnContext\\_\\}} на новый контекст.", "SAML_AuthnRequest_Template": "Шаблон AuthnRequest", - "SAML_AuthnRequest_Template_Description": "Доступны следующие переменные: \n- **\\_\\_\\_newId\\_\\_**: Случайно сгенерированная строка идентификатора \n- **\\_\\_\\_\\_стоянная\\_\\_**: Текущая метка времени \n- **\\_\\_callbackUrl\\_\\_**: URL обратного вызова Rocket.Chat. \n- **\\_\\_entryPoint\\_\\_**: Значение параметра {{Custom Entry Point}}. \n- **\\_\\_\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormatTag\\_\\_**: Содержимое шаблона {{NameID Policy Template}}, если настроен действительный {{Identifier Format}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра __Формат_идентификатора__. \n- **\\_\\_authnContextTag\\_\\_**: Содержимое шаблона __Автоконтекста__, если настроен действительный __Настроенный Автоконтекст__. \n- **\\_\\_authnContextComparison\\_\\_**: Значение параметра __Сравнение контекстов_. \n- **\\_\\_authnContext\\_\\_**: Значение параметра {{Custom Authn Context}}.", + "SAML_AuthnRequest_Template_Description": "Доступны следующие переменные: \n- **\\_\\_newId\\_\\_**: Случайно сгенерированная строка идентификатора \n- **\\_\\_instant\\_\\_**: Текущая метка времени \n- **\\_\\_callbackUrl\\_\\_**: URL обратного вызова Rocket.Chat. \n- **\\_\\_entryPoint\\_\\_**: Значение параметра {{Custom Entry Point}}. \n- **\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormatTag\\_\\_**: Содержимое шаблона {{NameID Policy Template}}, если настроен действительный {{Identifier Format}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Формат_идентификатора}}. \n- **\\_\\_authnContextTag\\_\\_**: Содержимое шаблона {{Автоконтекста}}, если настроен действительный {{Настроенный Автоконтекст}}. \n- **\\_\\_authnContextComparison\\_\\_**: Значение параметра {{Сравнение контекстов}}. \n- **\\_\\_authnContext\\_\\_**: Значение параметра {{Custom Authn Context}}.", "SAML_Connection": "Подключение", "SAML_Custom_Authn_Context": "Пользовательский контекст Authn", "SAML_Custom_Authn_Context_Comparison": "Сравнение контекста Authn", @@ -3363,13 +3363,13 @@ "SAML_Identifier_Format": "Формат идентификатора", "SAML_Identifier_Format_Description": "Оставьте это поле пустым, чтобы исключить политику NameID из запроса.", "SAML_LogoutRequest_Template": "Шаблон запроса на выход из системы", - "SAML_LogoutRequest_Template_Description": "Доступны следующие переменные: \n- **\\_\\_\\_newId\\_\\_**: Случайно сгенерированная строка идентификатора \n- **\\_\\_\\_\\_стоянная\\_\\_**: Текущая метка времени \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL IDP Single LogOut для перенаправления. \n- **\\_\\_\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра __Формат идентификатора__. \n- **\\_\\_\\_\\_nameID\\_\\_\\_**: Идентификатор имени, полученный от IdP, когда пользователь вошел в систему. \n- **\\_\\_sessionIndex\\_\\_**: Индекс сессии, полученный от IdP, когда пользователь вошел в систему.", + "SAML_LogoutRequest_Template_Description": "Доступны следующие переменные: \n- **\\_\\_newId\\_\\_**: Случайно сгенерированная строка идентификатора \n- **\\_\\_instant\\_\\_**: Текущая метка времени \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL IDP Single LogOut для перенаправления. \n- **\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Формат идентификатора}}. \n- **\\_\\_nameID\\_\\_**: Идентификатор имени, полученный от IdP, когда пользователь вошел в систему. \n- **\\_\\_sessionIndex\\_\\_**: Индекс сессии, полученный от IdP, когда пользователь вошел в систему.", "SAML_LogoutResponse_Template": "Шаблон выхода из системы", "SAML_LogoutResponse_Template_Description": "Доступны следующие переменные: \n- **\\_\\_newId\\_\\_**: Случайно сгенерированная идентификационная строка \n- **\\_\\_inResponseToId\\_\\_**: Идентификатор запроса на выход из системы, полученный от IdP \n- **\\_\\_instant\\_\\_**: Текущая метка времени \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL одиночного входа в систему IDP для переадресации. \n- **\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: Идентификатор имени, полученный из запроса на выход из системы IdP. \n- **\\_\\_sessionIndex\\_\\_**: СессияИндекс, полученный из запроса на выход из системы IdP.", "SAML_MetadataCertificate_Template": "Шаблон сертификата метаданных", "SAML_Metadata_Certificate_Template_Description": "Доступны следующие переменные: \n- **\\_\\_certificate\\_\\_**: Частный сертификат для шифрования утверждения.", "SAML_Metadata_Template": "Шаблон метаданных", - "SAML_Metadata_Template_Description": "Доступны следующие переменные: \n- **\\_\\_sloLocation\\_\\_**:URL одиночного входа в систему Rocket.Chat. \n- **\\__\\issuer\\__\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Identifier Format}}. \n- **\\__\\certificateTag\\__\\_**: Если настроен личный сертификат, он будет включать {{Metadata Certificate Template}}, в противном случае он будет проигнорирован. \n- **\\__\\callbackUrl\\__\\_**: URL обратного вызова Rocket.Chat.", + "SAML_Metadata_Template_Description": "Доступны следующие переменные: \n- **\\_\\_sloLocation\\_\\_**:URL одиночного входа в систему Rocket.Chat. \n- **\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Identifier Format}}. \n- **\\_\\_certificateTag\\_\\_**: Если настроен личный сертификат, он будет включать {{Metadata Certificate Template}}, в противном случае он будет проигнорирован. \n- **\\_\\_callbackUrl\\_\\_**: URL обратного вызова Rocket.Chat.", "SAML_NameIdPolicy_Template": "Шаблон политики NameID", "SAML_NameIdPolicy_Template_Description": "Тут Вы можете использовать любую переменную из шаблона запроса авторизации.", "SAML_Role_Attribute_Name": "Имя атрибута роли", diff --git a/packages/i18n/src/locales/uk.i18n.json b/packages/i18n/src/locales/uk.i18n.json index 0d355c0fc2b5e..4e3f0aa8d727f 100644 --- a/packages/i18n/src/locales/uk.i18n.json +++ b/packages/i18n/src/locales/uk.i18n.json @@ -2711,7 +2711,7 @@ "UserDataDownload_CompletedRequestExisted_Text": "Ваш файл даних вже створений. Перевірте свою електронну адресу для отримання посилання на завантаження.", "UserDataDownload_EmailBody": "Ваш файл даних вже готовий до завантаження. Натисніть тут, щоб завантажити його.", "UserDataDownload_EmailSubject": "Ваш файл даних готовий до завантаження", - "UserDataDownload_RequestExisted_Text": "Ваш файл даних уже генерується. Посилання для його завантаження буде надіслано на вашу електронну адресу, коли буде готово. Існують __ очікувані_операції __ чергові операції, які запускаються перед вашими.", + "UserDataDownload_RequestExisted_Text": "Ваш файл даних уже генерується. Посилання для його завантаження буде надіслано на вашу електронну адресу, коли буде готово. Існують {{pending_operations}} чергові операції, які запускаються перед вашими.", "UserDataDownload_Requested": "Завантажте потрібний файл", "UserDataDownload_Requested_Text": "Ваш файл даних буде згенерований. Посилання на його завантаження буде надіслано на вашу електронну адресу, коли він буде готовий. Існують {{pending_operations}} заплановані операції, які запускаються перед вашими.", "UserData_EnableDownload": "Увімкнути завантаження даних користувача", diff --git a/packages/i18n/src/locales/zh-TW.i18n.json b/packages/i18n/src/locales/zh-TW.i18n.json index dd0fbf8a08831..b8cd28dc36a53 100644 --- a/packages/i18n/src/locales/zh-TW.i18n.json +++ b/packages/i18n/src/locales/zh-TW.i18n.json @@ -3079,7 +3079,7 @@ "SAML_AuthnContext_Template": "AuthnContext 範本", "SAML_AuthnContext_Template_Description": "您可以在此處使用AuthnRequest範本中的任何變數。 \n \n要增加其他身份驗證上下文,請複製{{AuthnContextClassRef}} 標誌然後取代成 {{\\_\\_authnContext\\_\\}} 變數替換為新的上下文。", "SAML_AuthnRequest_Template": "AuthnRequest 範本", - "SAML_AuthnRequest_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**:隨機產生的ID字串 \n- **\\_\\_instant\\_\\_**:目前時間戳記 \n- **\\_\\_callbackUrl\\_\\_**:Rocket.Chat 回應網址。 \n- **\\_\\_entryPoint\\_\\_**:__ Custom Entry Point__設定的值。 \n- **\\_\\_issuer\\_\\_**:__ Custom Issuer__設定的值。 \n- **\\_\\_identifierFormatTag\\_\\_**: 如果設定了有效的{{Identifier Format}},則__NameID原則範本__的內容。 \n- **\\_\\_identifierFormat\\_\\_**:__ Identifier Format__設定的值。 \n- **\\_\\_authnContextTag\\_\\_**:如果設定了有效的{{Custom Authn Context}},則{{AuthnContext Template}}的內容。 \n- **\\_\\_authnContextComparison\\_\\_**:__Authn上下文比較__設定的值。 \n- **\\_\\_authnContext\\_\\_**:__ Custom Authn Context__設定的值。", + "SAML_AuthnRequest_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**:隨機產生的ID字串 \n- **\\_\\_instant\\_\\_**:目前時間戳記 \n- **\\_\\_callbackUrl\\_\\_**:Rocket.Chat 回應網址。 \n- **\\_\\_entryPoint\\_\\_**: {{Custom Entry Point}}設定的值。 \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} 設定的值。 \n- **\\_\\_identifierFormatTag\\_\\_**: 如果設定了有效的{{Identifier Format}},則{{NameID原則範本}}的內容。 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}}設定的值。 \n- **\\_\\_authnContextTag\\_\\_**:如果設定了有效的{{Custom Authn Context}},則{{AuthnContext Template}}的內容。 \n- **\\_\\_authnContextComparison\\_\\_**: {{Authn上下文比較}}設定的值。 \n- **\\_\\_authnContext\\_\\_**: {{Custom Authn Context}}設定的值。", "SAML_Custom_Authn_Context": "自定義授權內文", "SAML_Custom_Authn_Context_Comparison": "內容驗證比對", "SAML_Custom_Authn_Context_description": "將此保留為空可忽略請求中的authn上下文。要增加多個身份驗證上下文,請將其他上下文直接增加到 {{AuthnContext Template}} 設定中。", @@ -3119,13 +3119,13 @@ "SAML_Identifier_Format": "標識符格式", "SAML_Identifier_Format_Description": "將此保留為空可忽略請求中的 NameID 政策。", "SAML_LogoutRequest_Template": "登出請求範本", - "SAML_LogoutRequest_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**: 隨機產生的ID字串 \n-** \\ _ \\ _ instant \\ _ \\ _ **:目前時間戳記 \n-** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ **:重定向到的IDP單一登出網址。 \n-** \\ _ \\ _ issuer \\ _ \\ _ **:__ Custom Issuer__設定的值。 \n-** \\ _ \\ _ identifierFormat \\ _ \\ _ **:__ Identifier Format__設定的值。 \n-** \\ _ \\ _ nameID \\ _ \\ _ **:使用者登入時從IdP接收到的NameID。 \n-**** __ \\ _ sessionIndex \\ _ \\ _ **:使用者登出要求時從IdP接收到的sessionIndex。", + "SAML_LogoutRequest_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**: 隨機產生的ID字串 \n- **\\_\\_instant\\_\\_**:目前時間戳記 \n- **\\_\\_idpSLORedirectURL\\_\\_**:重定向到的IDP單一登出網址。 \n- **\\_\\_issuer\\_\\_**:{{Custom Issuer}}設定的值。 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}}設定的值。 \n- **\\_\\_nameID\\_\\_**:使用者登入時從IdP接收到的NameID。 \n- **\\_\\_sessionIndex\\_\\_**:使用者登出要求時從IdP接收到的sessionIndex。", "SAML_LogoutResponse_Template": "登出回應範本", - "SAML_LogoutResponse_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**: 隨機產生的ID字串 \n-**\\_\\_inResponseToId\\_\\_**: 從Idp接收到登出要求的ID \n-** \\ _ \\ _ instant \\ _ \\ _ **:目前時間戳記 \n-** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ **:重定向到的IDP單一登出網址。 \n-** \\ _ \\ _ issuer \\ _ \\ _ **:__ Custom Issuer__設定的值。 \n-** \\ _ \\ _ identifierFormat \\ _ \\ _ **:__ Identifier Format__設定的值。 \n-** \\ _ \\ _ nameID \\ _ \\ _ **:使用者登入時從IdP接收到的NameID。 \n-**** __ \\ _ sessionIndex \\ _ \\ _ **:使用者登出要求時從IdP接收到的sessionIndex。", + "SAML_LogoutResponse_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**: 隨機產生的ID字串 \n- **\\_\\_inResponseToId\\_\\_**: 從Idp接收到登出要求的ID \n- **\\_\\_instant\\_\\_**:目前時間戳記 \n- **\\_\\_idpSLORedirectURL\\_\\_**:重定向到的IDP單一登出網址。 \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}}設定的值。 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}}設定的值。 \n- **\\_\\_nameID\\_\\_**:使用者登入時從IdP接收到的NameID。 \n- **\\_\\_sessionIndex\\_\\_**:使用者登出要求時從IdP接收到的sessionIndex。", "SAML_MetadataCertificate_Template": "Metadata 憑證範本", "SAML_Metadata_Certificate_Template_Description": "可以使用以下變數: \n- **\\_\\_certificate\\_\\_**:用於主要加密的專用憑證。", "SAML_Metadata_Template": "Metadata 範本", - "SAML_Metadata_Template_Description": "可以使用以下變數: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chat 單一登出網址。 \n- **\\_\\_issuer\\_\\_**: __ Custom Issuer__設定的值。 \n- **\\_\\_identifierFormat\\_\\_**: __ Identifier Format__設定的值。 \n- **\\_\\_certificateTag\\_\\_**: 如果設置了私人憑證,則將包括{{Metadata Certificate Template}},否則將被忽略。 \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat 回應網址。", + "SAML_Metadata_Template_Description": "可以使用以下變數: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chat 單一登出網址。 \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}}設定的值。 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}}設定的值。 \n- **\\_\\_certificateTag\\_\\_**: 如果設置了私人憑證,則將包括{{Metadata Certificate Template}},否則將被忽略。 \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat 回應網址。", "SAML_NameIdPolicy_Template": "NameID 政策範本", "SAML_NameIdPolicy_Template_Description": "您可以在此處使用授權請求範本中的任何變數。", "SAML_Role_Attribute_Name": "角色屬性名稱", diff --git a/packages/i18n/src/scripts/check.mts b/packages/i18n/src/scripts/check.mts index c41b7094fc50c..32b6a19ce0c0b 100644 --- a/packages/i18n/src/scripts/check.mts +++ b/packages/i18n/src/scripts/check.mts @@ -2,7 +2,7 @@ import { argv, stderr, stdout } from 'node:process'; import { fileURLToPath } from 'node:url'; import { formatWithOptions, parseArgs, styleText } from 'node:util'; -import { baseLanguage, getLanguagePlurals, getResourceLanguages, readResource, writeResource } from './common.mts'; +import { baseLanguage, getLanguagePlurals, getResourceLanguages, readContent, readResource, writeResource } from './common.mts'; type TaskOptions = { fix?: boolean; @@ -19,32 +19,41 @@ const describeTask = }>, ) => async (options: TaskOptions) => { + const stdoutSupportsColor = styleText('blue', `.`, { stream: stdout }) !== '.'; + const stderrSupportsColor = styleText('blue', `.`, { stream: stderr }) !== '.'; + + const throwError = (format?: any, ...param: any[]) => { + throw new Error(formatWithOptions({ colors: stdoutSupportsColor }, format, ...param)); + }; + + const reportError = (format?: any, ...param: any[]) => { + console.error( + styleText('red', '✘', { stream: stderr }), + styleText('gray', `${task}:`, { stream: stderr }), + formatWithOptions({ colors: stderrSupportsColor }, format, ...param), + ); + errorCount++; + }; + for await (const result of fn()) { if (!result) continue; if (options.fix) { try { - await result.fix((format, ...param) => { - throw new Error(formatWithOptions({ colors: !!styleText('blue', `.`, { stream: stdout }) }, format, ...param)); - }); + await result.fix(throwError); console.log(styleText('blue', '✔', { stream: stdout }), styleText('gray', `${task}:`, { stream: stdout }), 'fixes applied'); } catch (error) { - console.error(styleText('red', '✘', { stream: stdout }), styleText('gray', `${task}:`, { stream: stdout }), error instanceof Error ? error.message : error); + console.error( + styleText('red', '✘', { stream: stdout }), + styleText('gray', `${task}:`, { stream: stdout }), + error instanceof Error ? error.message : error, + ); console.error(styleText('gray', ` cannot apply fixes automatically, run without --fix to see all errors`, { stream: stdout })); errorCount++; } } else { - const stderrSupportsColor = styleText('blue', `.`, { stream: stderr }) !== '.'; - - await result.lint((_format, ...param) => { - console.error( - styleText('red', '✘', { stream: stderr }), - styleText('gray', `${task}:`, { stream: stderr }), - formatWithOptions({ colors: stderrSupportsColor }, _format, ...param), - ); - errorCount++; - }); + await result.lint(reportError); } } }; @@ -206,11 +215,9 @@ const wipeInvalidPlurals = describeTask('wipe-invalid-plurals', async function* }, fix: async () => { const fixedResource: Record = { ...resource }; - fixedResource[key] = Object.fromEntries( - Object.entries(translation).filter(([p]) => plurals.includes(p)), - ); + fixedResource[key] = Object.fromEntries(Object.entries(translation).filter(([p]) => plurals.includes(p))); await writeResource(language, fixedResource); - } + }, }; } } @@ -248,24 +255,127 @@ const findMissingPlurals = describeTask('find-missing-plurals', async function* }, fix: async (throwError) => { throwError('%s: key %o is missing plural form %o', language, key, plural); - } + }, + }; + } + } + } +}); + +const replaceDoubleUnderscorePlaceholders = describeTask('replace-2-underscores', async function* () { + const languages = await getResourceLanguages(); + + function* listTranslations(resource: Record) { + for (const [key, translation] of Object.entries(resource)) { + if (typeof translation === 'string') { + yield { key, translation } as const; + continue; + } + + if (typeof translation === 'object' && translation) { + for (const [plural, pluralTranslation] of Object.entries(translation)) { + if (typeof pluralTranslation !== 'string') continue; + yield { key, plural, translation: pluralTranslation } as const; + } + } + } + } + + const placeholderRegex = /__(.*?)__/g; + const identifierRegex = /^[a-zA-Z_][a-zA-Z0-9_]*$/; + + for await (const language of languages) { + const resource = await readResource(language); + + for (const { key, plural, translation } of listTranslations(resource)) { + const match = placeholderRegex.exec(translation); + if (!match) continue; + + if (!identifierRegex.test(match[1])) { + yield { + lint: async (reportError) => { + if (plural) { + reportError('%s: key %o (plural %o) has invalid placeholder %o', language, key, plural, match[0]); + } else { + reportError('%s: key %o has invalid placeholder %o', language, key, match[0]); + } + }, + fix: async (throwError) => { + if (plural) { + throwError('%s: key %o (plural %o) has invalid placeholder %o', language, key, plural, match[0]); + } else { + throwError('%s: key %o has invalid placeholder %o', language, key, match[0]); + } + }, }; + continue; } + + yield { + lint: async (reportError) => { + if (plural) { + reportError('%s: key %o (plural %o) has placeholder %o, should be %o', language, key, plural, match[0], `{{${match[1]}}}`); + } else { + reportError('%s: key %o has placeholder %o, should be %o', language, key, match[0], `{{${match[1]}}}`); + } + }, + fix: async () => { + const fixedResource = { ...resource }; + if (plural) { + fixedResource[key] = { + ...(fixedResource[key] as Record), + [plural]: translation.replace(placeholderRegex, `{{${match[1]}}}`), + }; + } else { + fixedResource[key] = translation.replace(placeholderRegex, `{{${match[1]}}}`); + } + await writeResource(language, fixedResource); + }, + }; } } }); +const trimEndOfFile = describeTask('trim-eof', async function* () { + const languages = await getResourceLanguages(); + + for await (const language of languages) { + const content = await readContent(language); + const trimmedContent = content.replace(/\s+$/g, ''); + + if (trimmedContent.length === content.length) continue; + + yield { + lint: async (reportError) => { + reportError('%s: has trailing whitespace at end of file', language); + }, + fix: async () => { + await writeResource(language, JSON.parse(trimmedContent)); + }, + }; + } +}); + const tasksByName = { 'sort-base-keys': sortBaseKeys, 'sort-keys': sortKeys, 'wipe-extra-keys': wipeExtraKeys, 'wipe-invalid-plurals': wipeInvalidPlurals, 'find-missing-plurals': findMissingPlurals, + 'replace-2-underscores': replaceDoubleUnderscorePlaceholders, + 'trim-eof': trimEndOfFile, } as const; async function check({ fix, task }: { fix?: boolean; task?: string[] } = {}) { // We're lenient by default excluding 'sort-base-keys' from the default tasks - const tasks = new Set(['sort-keys', 'wipe-extra-keys', 'wipe-invalid-plurals', 'find-missing-plurals']); + const tasks = new Set([ + 'sort-keys', + 'wipe-extra-keys', + 'wipe-invalid-plurals', + 'find-missing-plurals', + 'replace-2-underscores', + 'trim-eof', + ]); if (task?.length) { tasks.clear(); diff --git a/packages/i18n/src/scripts/common.mts b/packages/i18n/src/scripts/common.mts index 3bdf4c3844958..4ec26c92671e2 100644 --- a/packages/i18n/src/scripts/common.mts +++ b/packages/i18n/src/scripts/common.mts @@ -21,8 +21,12 @@ export const getLanguagePlurals = (language: string): string[] => { return i18next.services.pluralResolver.getSuffixes(language).map((suffix: string) => suffix.slice(1)); }; +export async function readContent(language: string) { + return readFile(join(resourcesDirectory, resourceBasename(language)), 'utf8'); +} + export async function readResource(language: string) { - return JSON.parse(await readFile(join(resourcesDirectory, resourceBasename(language)), 'utf8')); + return JSON.parse(await readContent(language)); } export async function writeResource(language: string, resource: unknown) { From f89fa1094455aee64833a92e1deab14f68e39ebe Mon Sep 17 00:00:00 2001 From: Tasso Date: Thu, 25 Sep 2025 03:04:52 -0300 Subject: [PATCH 12/20] RRemove unused script --- apps/meteor/.scripts/translation-diff.ts | 33 ------------------------ apps/meteor/package.json | 1 - 2 files changed, 34 deletions(-) delete mode 100644 apps/meteor/.scripts/translation-diff.ts diff --git a/apps/meteor/.scripts/translation-diff.ts b/apps/meteor/.scripts/translation-diff.ts deleted file mode 100644 index dd309cae71e38..0000000000000 --- a/apps/meteor/.scripts/translation-diff.ts +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env ts-node - -import { readFile } from 'fs/promises'; -import path from 'path'; - -const translationDir = path.resolve(__dirname, '../packages/rocketchat-i18n/i18n/'); - -async function translationDiff(source: string, target: string) { - console.debug('loading translations from', translationDir); - - function diffKeys(a: Record, b: Record) { - const diff: Record = {}; - Object.keys(a).forEach((key) => { - if (!b[key]) { - diff[key] = a[key]; - } - }); - - return diff; - } - - const sourceTranslations = JSON.parse(await readFile(`${translationDir}/${source}.i18n.json`, 'utf8')); - const targetTranslations = JSON.parse(await readFile(`${translationDir}/${target}.i18n.json`, 'utf8')); - - return diffKeys(sourceTranslations, targetTranslations); -} - -const sourceLang = process.argv[2] || 'en'; -const targetLang = process.argv[3] || 'de'; -translationDiff(sourceLang, targetLang).then((diff) => { - console.log('Diff between', sourceLang, 'and', targetLang); - console.log(JSON.stringify(diff, undefined, 2)); -}); diff --git a/apps/meteor/package.json b/apps/meteor/package.json index 2df75e0d57606..0587803517915 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -44,7 +44,6 @@ ".testunit:definition": "mocha --config ./.mocharc.definition.js", "testunit-watch": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' mocha --watch --config ./.mocharc.js", "test": "yarn testunit && yarn testapi", - "translation-diff": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/translation-diff.ts", "translation-replace-sprintf-params": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/replaceTranslationSprintfParams.ts", "version": "node .scripts/version.js", "set-version": "node .scripts/set-version.js", From 16d6823f756817c627d6ec29a2087bb8767249ef Mon Sep 17 00:00:00 2001 From: Tasso Date: Thu, 25 Sep 2025 11:13:37 -0300 Subject: [PATCH 13/20] Add check for matching placeholders --- packages/i18n/src/scripts/check.mts | 113 +++++++++++++++++++++------- 1 file changed, 87 insertions(+), 26 deletions(-) diff --git a/packages/i18n/src/scripts/check.mts b/packages/i18n/src/scripts/check.mts index 32b6a19ce0c0b..84c9419acaa94 100644 --- a/packages/i18n/src/scripts/check.mts +++ b/packages/i18n/src/scripts/check.mts @@ -15,7 +15,7 @@ const describeTask = task: string, fn: () => AsyncGenerator<{ lint: (reportError: (format?: any, ...param: any[]) => void) => Promise; - fix: (throwError: (format?: any, ...param: any[]) => void) => Promise; + fix?: (throwError: (format?: any, ...param: any[]) => void) => Promise; }>, ) => async (options: TaskOptions) => { @@ -40,6 +40,11 @@ const describeTask = if (options.fix) { try { + if (!result.fix) { + await result.lint(throwError); + continue; + } + await result.fix(throwError); console.log(styleText('blue', '✔', { stream: stdout }), styleText('gray', `${task}:`, { stream: stdout }), 'fixes applied'); @@ -253,33 +258,30 @@ const findMissingPlurals = describeTask('find-missing-plurals', async function* lint: async (reportError) => { reportError('%s: key %o is missing plural form %o', language, key, plural); }, - fix: async (throwError) => { - throwError('%s: key %o is missing plural form %o', language, key, plural); - }, }; } } } }); -const replaceDoubleUnderscorePlaceholders = describeTask('replace-2-underscores', async function* () { - const languages = await getResourceLanguages(); - - function* listTranslations(resource: Record) { - for (const [key, translation] of Object.entries(resource)) { - if (typeof translation === 'string') { - yield { key, translation } as const; - continue; - } +function* listTranslations(resource: Record) { + for (const [key, translation] of Object.entries(resource)) { + if (typeof translation === 'string') { + yield { key, translation } as const; + continue; + } - if (typeof translation === 'object' && translation) { - for (const [plural, pluralTranslation] of Object.entries(translation)) { - if (typeof pluralTranslation !== 'string') continue; - yield { key, plural, translation: pluralTranslation } as const; - } + if (typeof translation === 'object' && translation) { + for (const [plural, pluralTranslation] of Object.entries(translation)) { + if (typeof pluralTranslation !== 'string') continue; + yield { key, plural, translation: pluralTranslation } as const; } } } +} + +const replaceDoubleUnderscorePlaceholders = describeTask('replace-2-underscores', async function* () { + const languages = await getResourceLanguages(); const placeholderRegex = /__(.*?)__/g; const identifierRegex = /^[a-zA-Z_][a-zA-Z0-9_]*$/; @@ -300,13 +302,6 @@ const replaceDoubleUnderscorePlaceholders = describeTask('replace-2-underscores' reportError('%s: key %o has invalid placeholder %o', language, key, match[0]); } }, - fix: async (throwError) => { - if (plural) { - throwError('%s: key %o (plural %o) has invalid placeholder %o', language, key, plural, match[0]); - } else { - throwError('%s: key %o has invalid placeholder %o', language, key, match[0]); - } - }, }; continue; } @@ -356,6 +351,71 @@ const trimEndOfFile = describeTask('trim-eof', async function* () { } }); +/** + * Asserts that all translations have the same placeholders as the base language (en) + */ +const matchPlaceholders = describeTask('match-placeholders', async function* () { + const baseResource = await readResource(baseLanguage); + const baseTranslations = listTranslations(baseResource); + const basePlaceholdersByEncodedKey = new Map>(); + + const extractPlaceholders = (translation: string): Set => { + const placeholders = new Set(); + const placeholderRegex = /{{(.*?)}}/g; + let match; + while ((match = placeholderRegex.exec(translation)) !== null) { + placeholders.add(match[1]); + } + return placeholders; + }; + + const encodedKey = (key: string, plural?: string) => (plural ? `${key}|${plural}` : key); + + for (const { key: baseKey, plural: basePlural, translation: baseTranslation } of baseTranslations) { + basePlaceholdersByEncodedKey.set(encodedKey(baseKey, basePlural), extractPlaceholders(baseTranslation)); + } + + const languages = await getResourceLanguages(); + + for await (const language of languages) { + if (language === baseLanguage) continue; + + const resource = await readResource(language); + const translations = listTranslations(resource); + + for (const { key, plural, translation } of translations) { + const basePlaceholders = basePlaceholdersByEncodedKey.get(encodedKey(key, plural)); + if (!basePlaceholders) continue; + + const placeholders = extractPlaceholders(translation); + + for (const basePlaceholder of basePlaceholders) { + if (placeholders.has(basePlaceholder)) continue; + + yield { + lint: async (reportError) => { + if (plural) { + reportError('%s: key %o (plural %o) is missing placeholder %o', language, key, plural, basePlaceholder); + return; + } + reportError('%s: key %o is missing placeholder %o', language, key, basePlaceholder); + }, + }; + } + + for (const placeholder of placeholders) { + if (basePlaceholders.has(placeholder)) continue; + + yield { + lint: async (reportError) => { + reportError('%s: key %o%s has extra placeholder %o', language, key, plural ? ` (plural ${plural})` : '', placeholder); + }, + }; + } + } + } +}); + const tasksByName = { 'sort-base-keys': sortBaseKeys, 'sort-keys': sortKeys, @@ -364,10 +424,11 @@ const tasksByName = { 'find-missing-plurals': findMissingPlurals, 'replace-2-underscores': replaceDoubleUnderscorePlaceholders, 'trim-eof': trimEndOfFile, + 'match-placeholders': matchPlaceholders, } as const; async function check({ fix, task }: { fix?: boolean; task?: string[] } = {}) { - // We're lenient by default excluding 'sort-base-keys' from the default tasks + // We're lenient by default excluding some non-critical tasks const tasks = new Set([ 'sort-keys', 'wipe-extra-keys', From c72a827d5e3628c4af81cd611e302692f119239c Mon Sep 17 00:00:00 2001 From: Tasso Date: Thu, 25 Sep 2025 13:38:45 -0300 Subject: [PATCH 14/20] Fix odd SAML translations --- packages/i18n/src/locales/ar.i18n.json | 14 +++++++------- packages/i18n/src/locales/ca.i18n.json | 14 +++++++------- packages/i18n/src/locales/cs.i18n.json | 14 +++++++------- packages/i18n/src/locales/da.i18n.json | 14 +++++++------- packages/i18n/src/locales/de.i18n.json | 14 +++++++------- packages/i18n/src/locales/en.i18n.json | 14 +++++++------- packages/i18n/src/locales/es.i18n.json | 14 +++++++------- packages/i18n/src/locales/fi.i18n.json | 14 +++++++------- packages/i18n/src/locales/fr.i18n.json | 14 +++++++------- packages/i18n/src/locales/hi-IN.i18n.json | 12 ++++++------ packages/i18n/src/locales/hu.i18n.json | 14 +++++++------- packages/i18n/src/locales/ja.i18n.json | 14 +++++++------- packages/i18n/src/locales/ko.i18n.json | 12 ++++++------ packages/i18n/src/locales/nb.i18n.json | 14 +++++++------- packages/i18n/src/locales/nl.i18n.json | 14 +++++++------- packages/i18n/src/locales/nn.i18n.json | 14 +++++++------- packages/i18n/src/locales/pl.i18n.json | 14 +++++++------- packages/i18n/src/locales/pt-BR.i18n.json | 14 +++++++------- packages/i18n/src/locales/ru.i18n.json | 14 +++++++------- packages/i18n/src/locales/sv.i18n.json | 14 +++++++------- packages/i18n/src/locales/zh-TW.i18n.json | 16 ++++++++-------- packages/i18n/src/locales/zh.i18n.json | 16 ++++++++-------- 22 files changed, 154 insertions(+), 154 deletions(-) diff --git a/packages/i18n/src/locales/ar.i18n.json b/packages/i18n/src/locales/ar.i18n.json index 07fbfdaeb58f0..9596ed9f7f5f6 100644 --- a/packages/i18n/src/locales/ar.i18n.json +++ b/packages/i18n/src/locales/ar.i18n.json @@ -3181,13 +3181,13 @@ "SAML_Allowed_Clock_Drift": "يُسمح بانحراف الساعة من موفر الهوية", "SAML_Allowed_Clock_Drift_Description": "قد تنحرف ساعة موفر الهوية قليلاً قبل ساعات النظام. يمكنك السماح بقدر صغير من انحراف الساعة. يجب إعطاء قيمته بعدد من المللي ثانية. تتم إضافة القيمة المعطاة إلى الوقت الحالي الذي يتم فيه التحقق من صحة الرد.", "SAML_AuthnContext_Template": "قالب سياق المصادقة", - "SAML_AuthnContext_Template_Description": "يمكنك استخدام أي متغير من قالب طلب المصادقة هنا. \n \n لإضافة سياقات مصادقة إضافية، قم بتكرار علامة {{AuthnContextClassRef}} واستبدال متغير {{\\_\\_authnContext\\_\\}}_ بالسياق الجديد.", + "SAML_AuthnContext_Template_Description": "يمكنك استخدام أي متغير من قالب طلب المصادقة هنا. \n \n لإضافة سياقات مصادقة إضافية، قم بتكرار علامة `AuthnContextClassRef` واستبدال متغير `\\_\\_authnContext\\_\\_`_ بالسياق الجديد.", "SAML_AuthnRequest_Template": "قالب طلب المصادقة", - "SAML_AuthnRequest_Template_Description": "المتغيرات التالية متاحة: \n- **\\_\\_newId\\_\\_**: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- **\\_\\_instant\\_\\_**: الطابع الزمني الحالي \n- **\\_\\_callbackUrl\\_\\_**: عنوان URL لرد الاتصال Rocket.Chat. \n- **\\_\\_entryPoint\\_\\_**: قيمة إعداد {{Custom Entry Point}}. \n- **\\_\\_issuer\\_\\_**: قيمة إعداد {{Custom Issuer}}. \n- **\\_\\_identifierFormatTag\\_\\_**: محتويات {{NameID Policy Template}} إذا تم تكوين {{Identifier Format}} صالح. \n- **\\_\\_identifierFormat\\_\\_**: قيمة إعداد {{Identifier Format}}. \n- **\\_\\_authnContextTag\\_\\_**: محتويات {{AuthnContext Template}} إذا تم تكوين {{Custom Authn Context}} صالح. \n- **\\_\\_authnContextComparison\\_\\_**: قيمة إعداد{{Authn Context Comparison}}. \n- **\\_\\_authnContext\\_\\_**: قيمة إعداد {{Custom Authn Context}}.", + "SAML_AuthnRequest_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_newId\\_\\_*: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- *\\_\\_instant\\_\\_*: الطابع الزمني الحالي \n- *\\_\\_callbackUrl\\_\\_*: عنوان URL لرد الاتصال Rocket.Chat. \n- *\\_\\_entryPoint\\_\\_*: قيمة إعداد *Custom Entry Point*. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormatTag\\_\\_*: محتويات *NameID Policy Template* إذا تم تكوين *Identifier Format* صالح. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n- *\\_\\_authnContextTag\\_\\_*: محتويات *AuthnContext Template* إذا تم تكوين *Custom Authn Context* صالح. \n- *\\_\\_authnContextComparison\\_\\_*: قيمة إعداد*Authn Context Comparison*. \n- *\\_\\_authnContext\\_\\_*: قيمة إعداد *Custom Authn Context*.", "SAML_Connection": "اتصال", "SAML_Custom_Authn_Context": "سياق المصادقة المخصص", "SAML_Custom_Authn_Context_Comparison": "مقارنة سياق المصادقة", - "SAML_Custom_Authn_Context_description": "اترك هذا فارغًا لحذف سياق المصادقة من الطلب. \n \n لإضافة سياقات مصادقة متعددة، أضف السياقات الإضافية مباشرة إلى إعداد {{AuthnContext Template}}.", + "SAML_Custom_Authn_Context_description": "اترك هذا فارغًا لحذف سياق المصادقة من الطلب. \n \n لإضافة سياقات مصادقة متعددة، أضف السياقات الإضافية مباشرة إلى إعداد *AuthnContext Template*.", "SAML_Custom_Cert": "شهادة مخصصة", "SAML_Custom_Debug": "تمكين تتبع الأخطاء", "SAML_Custom_EMail_Field": "اسم حقل البريد الإلكتروني", @@ -3231,13 +3231,13 @@ "SAML_Identifier_Format": "تنسيق المعرّف", "SAML_Identifier_Format_Description": "اترك هذا فارغًا لحذف سياسة NameID من الطلب.", "SAML_LogoutRequest_Template": "قالب طلب تسجيل الخروج", - "SAML_LogoutRequest_Template_Description": "المتغيرات التالية متاحة: \n- **\\_\\_newId\\_\\_**: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- **\\_\\_instant\\_\\_**: الطابع الزمني الحالي \n- **\\_\\_idpSLORedirectURL\\_\\_**: عنوان URL لتسجيل الخروج الأحادي لـ IDP المراد إعادة التوجيه إليه. \n- **\\_\\_issuer\\_\\_**: قيمة إعداد {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: قيمة إعداد {{Identifier Format}}. \n-- **\\_\\_nameID\\_\\_**: تم استلام NameID من IdP عندما قام المستخدم بتسجيل الدخول. \n- **\\_\\_sessionIndex\\_\\_**: تم استلام SessionIndex من IdP عندما قام المستخدم بتسجيل الدخول.", + "SAML_LogoutRequest_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_newId\\_\\_*: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- *\\_\\_instant\\_\\_*: الطابع الزمني الحالي \n- *\\_\\_idpSLORedirectURL\\_\\_*: عنوان URL لتسجيل الخروج الأحادي لـ IDP المراد إعادة التوجيه إليه. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n-- *\\_\\_nameID\\_\\_*: تم استلام NameID من IdP عندما قام المستخدم بتسجيل الدخول. \n- *\\_\\_sessionIndex\\_\\_*: تم استلام SessionIndex من IdP عندما قام المستخدم بتسجيل الدخول.", "SAML_LogoutResponse_Template": "قالب استجابة تسجيل الخروج", - "SAML_LogoutResponse_Template_Description": "المتغيرات التالية متاحة: \n- **\\_\\_newId\\_\\_**: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- **\\_\\_inResponseToId\\_\\_**: معرّف طلب تسجيل الخروج المستلم من IdP \n- **\\_\\_instant\\_\\_**: الطابع الزمني الحالي \n- **\\_\\_idpSLORedirectURL\\_\\_**: عنوان URL لتسجيل الخروج الأحادي لـ IDP المراد إعادة التوجيه إليه. \n- **\\_\\_issuer\\_\\_**: قيمة إعداد {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: قيمة إعداد {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: تم استلام NameID من طلب تسجيل خروج IdP. \n- **\\_\\_sessionIndex\\_\\_**: تم استلام sessionIndex من طلب تسجيل خروج IdP.", + "SAML_LogoutResponse_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_newId\\_\\_*: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- *\\_\\_inResponseToId\\_\\_*: معرّف طلب تسجيل الخروج المستلم من IdP \n- *\\_\\_instant\\_\\_*: الطابع الزمني الحالي \n- *\\_\\_idpSLORedirectURL\\_\\_*: عنوان URL لتسجيل الخروج الأحادي لـ IDP المراد إعادة التوجيه إليه. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: تم استلام NameID من طلب تسجيل خروج IdP. \n- *\\_\\_sessionIndex\\_\\_*: تم استلام sessionIndex من طلب تسجيل خروج IdP.", "SAML_MetadataCertificate_Template": "قالب شهادة بيانات التعريف", - "SAML_Metadata_Certificate_Template_Description": "المتغيرات التالية متاحة: \n- **\\_\\_certificate\\_\\_**: الشهادة الخاصة لتشفير التأكيد.", + "SAML_Metadata_Certificate_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_certificate\\_\\_*: الشهادة الخاصة لتشفير التأكيد.", "SAML_Metadata_Template": "قالب بيانات التعريف", - "SAML_Metadata_Template_Description": "المتغيرات التالية متاحة: \n- **\\_\\_sloLocation\\_\\_**: عنوان URL لتسجيل الخروج الأحادي Rocket.Chat. \n- **\\_\\_issuer\\_\\_**: قيمة إعداد {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: قيمة إعداد {{Identifier Format}}. \n- **\\_\\_certificateTag\\_\\_**: إذا تم تكوين شهادة خاصة، فسيتضمن ذلك {{Metadata Certificate Template}}، وإلا فسيتم تجاهلها. \n- **\\_\\_callbackUrl\\_\\_**: عنوان URL لرد الاتصال Rocket.Chat.", + "SAML_Metadata_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_sloLocation\\_\\_*: عنوان URL لتسجيل الخروج الأحادي Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: إذا تم تكوين شهادة خاصة، فسيتضمن ذلك {{Metadata Certificate Template}}، وإلا فسيتم تجاهلها. \n- *\\_\\_callbackUrl\\_\\_*: عنوان URL لرد الاتصال Rocket.Chat.", "SAML_NameIdPolicy_Template": "قالب سياسة NameID", "SAML_NameIdPolicy_Template_Description": "يمكنك استخدام أي متغير من قالب طلب التفويض هنا.", "SAML_Role_Attribute_Name": "اسم سمة الدور", diff --git a/packages/i18n/src/locales/ca.i18n.json b/packages/i18n/src/locales/ca.i18n.json index fe905e88bce6d..4fd1add5a4f59 100644 --- a/packages/i18n/src/locales/ca.i18n.json +++ b/packages/i18n/src/locales/ca.i18n.json @@ -3125,13 +3125,13 @@ "SAML_Allowed_Clock_Drift": "Desviació de rellotge permesa de el proveïdor d'identitat", "SAML_Allowed_Clock_Drift_Description": "El reloj del proveedor de identidad puede adelantarse un poco a los relojes del sistema. Puede permitir una pequeña desviación del reloj. Su valor debe expresarse en milisegundos (ms). El valor dado se suma a la hora actual en la que se valida la respuesta.", "SAML_AuthnContext_Template": "Plantilla AuthnContext", - "SAML_AuthnContext_Template_Description": "Podeu utilitzar qualsevol variable de la plantilla AuthnRequest aquí. \n \nPara afegir contextos d'autenticació addicionals, dupliqui l'etiqueta {{AuthnContextClassRef}} i reemplaci la variable {{ \\ _ \\ _ authnContext \\ _ \\ }}_ amb el nou context.", + "SAML_AuthnContext_Template_Description": "Podeu utilitzar qualsevol variable de la plantilla AuthnRequest aquí. \n \nPara afegir contextos d'autenticació addicionals, dupliqui l'etiqueta `AuthnContextClassRef` i reemplaci la variable *\\_\\_authnContext\\_\\_* amb el nou context.", "SAML_AuthnRequest_Template": "Plantilla AuthnRequest", - "SAML_AuthnRequest_Template_Description": "Les següents variables estan disponibles: \n - ** \\ _ \\ _ newId \\ _ \\ _ **: Cadena d'identificació generada aleatoriamente \n- ** \\ _ \\ _ instant \\ _ \\ _ **: Data i hora actual \n- ** \\ _ \\ _ callbackUrl \\ _ \\ _ **: la URL de devolució de trucada d'Rocket.Chat. \n- ** \\ _ \\ _ entryPoint \\ _ \\ _ **: El valor de l'opció {{Custom Entry Point }} \n- ** \\ _ \\ _ issuer \\ _ \\ _ **: El valor de l'opció {{Custom Issuer }} \n- ** \\ _ \\ _ identifierFormatTag \\ _ \\ _ **: El contingut d'{{NameID Policy Template}} si un vàlid {{Identifier Format}} és configurado. \n- ** \\ _ \\ _ identifierFormat \\ _ \\ _ **: El valor de l'opció {{Identifier Format }} \n- ** \\ _ \\ _ authnContextTag \\ _ \\ _ **: El contingut de {{AuthnContext Template}} si un vàlid {{Custom Authn Context}} és configurado. \n- ** \\ _ \\ _ authnContextComparison \\ _ \\ _ * *: El valor de l'opció {{Authn Context Comparison }} \n- ** \\ _ \\ _ authnContext \\ _ \\ _ **: El valor de l'opció {{Custom Authn Context}}", + "SAML_AuthnRequest_Template_Description": "Les següents variables estan disponibles: \n - *\\_\\_newId\\_\\_*: Cadena d'identificació generada aleatoriamente \n- *\\_\\_instant\\_\\_*: Data i hora actual \n- * \\_\\_callbackUrl\\_\\_*: la URL de devolució de trucada d'Rocket.Chat. \n- *\\_\\_entryPoint\\_\\_*: El valor de l'opció *Custom Entry Point* \n- *\\_\\_issuer\\_\\_*: El valor de l'opció *Custom Issuer* \n- *\\_\\_identifierFormatTag\\_\\_*: El contingut d'*NameID Policy Template* si un vàlid *Identifier Format* és configurado. \n- *\\_\\_identifierFormat\\_\\_*: El valor de l'opció *Identifier Format* \n- *\\_\\_authnContextTag\\_\\_*: El contingut de *AuthnContext Template* si un vàlid *Custom Authn Context* és configurado. \n- *\\_\\_authnContextComparison\\_\\_*: El valor de l'opció *Authn Context Comparison* \n- *\\_\\_authnContext\\_\\_*: El valor de l'opció *Custom Authn Context*", "SAML_Connection": "Connexió", "SAML_Custom_Authn_Context": "Context Authn personalitzat", "SAML_Custom_Authn_Context_Comparison": "Comparació del context d’Authn", - "SAML_Custom_Authn_Context_description": "Deixi això buit per ometre el context d'autenticació de la sol·licitud. \n \nPer afegir múltiples contextos d'autenticació, afegiu els addicionals directament a la configuració {{AuthnContext Template}}.", + "SAML_Custom_Authn_Context_description": "Deixi això buit per ometre el context d'autenticació de la sol·licitud. \n \nPer afegir múltiples contextos d'autenticació, afegiu els addicionals directament a la configuració *AuthnContext Template*.", "SAML_Custom_Cert": "Certificat personalitzat", "SAML_Custom_Debug": "Activar la depuració", "SAML_Custom_EMail_Field": "Nom del camp de correu electrònic", @@ -3175,13 +3175,13 @@ "SAML_Identifier_Format": "Format identificador", "SAML_Identifier_Format_Description": "Deixi això buit per ometre la Política de NameID de la sol·licitud.", "SAML_LogoutRequest_Template": "Plantilla de sol·licitud de tancament de sessió", - "SAML_LogoutRequest_Template_Description": "Les següents variables estan disponibles: \n- ** \\ _ \\ _ newId \\ _ \\ _ **: Cadena d'identificació generada aleatoriamente \n- ** \\ _ \\ _ instant \\ _ \\ _ **: Data i hora actual \n- ** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ **: la URL d'inici de sessió únic d'IDP a la qual redireccionar. \n- ** \\ _ \\ _ issuer \\ _ \\ _ **: El valor de l'opció {{Custom Issuer }} \n- ** \\ _ \\ _ identifierFormat \\ _ \\ _ **: el valor de l'opció {{Identifier Format }} \n- ** \\ _ \\ _ nameID \\ _ \\ _ **: el NameID rebut des del IdP quan l'usuari ha iniciat sesión. \n- ** \\ _ \\ _ sessionIndex \\ _ \\ _ **: el sessionIndex rebut des del IdP quan l'usuari ha tancat sessió.", + "SAML_LogoutRequest_Template_Description": "Les següents variables estan disponibles: \n- *\\_\\_newId\\_\\_*: Cadena d'identificació generada aleatoriamente \n- *\\_\\_instant\\_\\_*: Data i hora actual \n- *\\_\\_idpSLORedirectURL\\_\\_*: la URL d'inici de sessió únic d'IDP a la qual redireccionar. \n- *\\_\\_issuer\\_\\_*: El valor de l'opció *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: el valor de l'opció *Identifier Format* \n- *\\_\\_nameID\\_\\_*: el NameID rebut des del IdP quan l'usuari ha iniciat sesión. \n- *\\_\\_sessionIndex\\_\\_*: el sessionIndex rebut des del IdP quan l'usuari ha tancat sessió.", "SAML_LogoutResponse_Template": "Plantilla de resposta de tancament de sessió", - "SAML_LogoutResponse_Template_Description": "Les següents variables estan disponibles: \n- ** \\ _ \\ _ newId \\ _ \\ _ **: Cadena d'identificació generada aleatoriamente \n- ** \\ _ \\ _ inResponseToId \\ _ \\ _ **: La identificació de la resposta de tancament de sesón rebuda de el IdP \n- ** \\ _ \\ _ instant \\ _ \\ _ **: Data i hora actual \n- ** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ **: la URL d'inici de sessió únic d'IDP a la qual redireccionar. \n- * * \\ _ \\ _ issuer \\ _ \\ _ **: El valor de l'opció {{Custom Issuer }} \n- ** \\ _ \\ _ identifierFormat \\ _ \\ _ **: El valor de l'opció {{Identifier Format }} \n- ** \\ _ \\ _ nameID \\ _ \\ _ **: El NameID rebut des de la resposta de tancament de sessió de IdP \n- ** \\ _ \\ _ sessionIndex \\ _ \\ _ **: El sessionIndex rebut des de la resposta de tancament de sessió de IdP", + "SAML_LogoutResponse_Template_Description": "Les següents variables estan disponibles: \n- *\\_\\_newId\\_\\_*: Cadena d'identificació generada aleatoriamente \n- *\\_\\_inResponseToId\\_\\_*: La identificació de la resposta de tancament de sesón rebuda de el IdP \n- *\\_\\_instant\\_\\_*: Data i hora actual \n- *\\_\\_idpSLORedirectURL\\_\\_*: la URL d'inici de sessió únic d'IDP a la qual redireccionar. \n- * * \\ _ \\ _ issuer \\ _ \\ _ **: El valor de l'opció *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: El valor de l'opció *Identifier Format* \n- *\\_\\_nameID\\_\\_*: El NameID rebut des de la resposta de tancament de sessió de IdP \n- *\\_\\_sessionIndex\\_\\_*: El sessionIndex rebut des de la resposta de tancament de sessió de IdP", "SAML_MetadataCertificate_Template": "Plantilla de certificat de metadades", - "SAML_Metadata_Certificate_Template_Description": "Les següents variables estan disponibles: \n- ** \\ _ \\ _ newId \\ _ \\ _ **: Cadena d'identificació generada aleatòriament", + "SAML_Metadata_Certificate_Template_Description": "Les següents variables estan disponibles: \n- *\\_\\_newId\\_\\_*: Cadena d'identificació generada aleatòriament", "SAML_Metadata_Template": "Plantilla de metadades", - "SAML_Metadata_Template_Description": "Les següents variables estan disponibles: \n - ** \\ _ \\ _ sloLocation \\ _ \\ _ **: L'URL de tancament de sessió simple de Rocket.Chat \n- ** \\ _ \\ _ issuer \\ _ \\ _ **: The value of the {{Custom Issuer}} setting. \n- ** \\ _ \\ _ identifierFormat \\ _ \\ _ **: el valor de l'opció {{Identifier Format }} \n- ** \\ _ \\ _ certificateTag \\ _ \\ _ **: Si un certificat privat és configurat, això inclourà el {{Metadata Certificate Template}}, en cas contrari serà ignorado. \n- ** \\ _ \\ _ callbackUrl \\ _ \\ _ **: L'URL de crida de Rocket.Chat", + "SAML_Metadata_Template_Description": "Les següents variables estan disponibles: \n - *\\_\\_sloLocation\\_\\_*: L'URL de tancament de sessió simple de Rocket.Chat \n- *\\_\\_issuer\\_\\_*: The value of the *Custom Issuer* setting. \n- *\\_\\_identifierFormat\\_\\_*: el valor de l'opció *Identifier Format* \n- *\\_\\_certificateTag\\_\\_*: Si un certificat privat és configurat, això inclourà el *Metadata Certificate Template*, en cas contrari serà ignorado. \n- *\\_\\_callbackUrl\\_\\_*: L'URL de crida de Rocket.Chat", "SAML_NameIdPolicy_Template": "Plantilla de política NameID", "SAML_NameIdPolicy_Template_Description": "Podeu utilitzar qualsevol variable de la Plantilla de sol·licitud d'autorització aquí.", "SAML_Role_Attribute_Name": "Nom de l'atribut de rol", diff --git a/packages/i18n/src/locales/cs.i18n.json b/packages/i18n/src/locales/cs.i18n.json index 4e41c05bd0196..27335b595c251 100644 --- a/packages/i18n/src/locales/cs.i18n.json +++ b/packages/i18n/src/locales/cs.i18n.json @@ -2660,12 +2660,12 @@ "SAML_Allowed_Clock_Drift": "Povolit časový nesoulad oproti poskytovali identity", "SAML_Allowed_Clock_Drift_Description": "Čas poskytovatele identity mohou být napřed oproti systémovému času. Zde lze povolit manuální posun času. Hodnota je udaná počtem milisekund (ms). Tato hodnota je pak připočtena k systémovému času proti kterému se odpověď validuje.", "SAML_AuthnContext_Template": "AuthnContext šablona", - "SAML_AuthnContext_Template_Description": "Lze použít jakoukoliv proměnou z AuthnRequest šablony. \n \nPro přidání dalších authn kontextů, rozšiřte {{AuthnContextClassRef}} tag and nahraďte {{\\_\\_authnContext\\_\\}} proměnnou novým obsahem.", + "SAML_AuthnContext_Template_Description": "Lze použít jakoukoliv proměnou z AuthnRequest šablony. \n \nPro přidání dalších authn kontextů, rozšiřte `AuthnContextClassRef` tag and nahraďte `\\_\\_authnContext\\_\\_` proměnnou novým obsahem.", "SAML_AuthnRequest_Template": "AuthnRequest šablona", - "SAML_AuthnRequest_Template_Description": "Dostupné tyto proměnné: \n- **\\_\\_newId\\_\\_**: Náhodně generovaný id řetězec \n- **\\_\\_instant\\_\\_**: Aktuální timestamp \n- **\\_\\_callbackUrl\\_\\_**: URL Rocket.Chat callback \n- **\\_\\_entryPoint\\_\\_**: Hodnota nastavení {{Custom Entry Point}}. \n- **\\_\\_issuer\\_\\_**: Hodnota nastavení {{Custom Issuer}}. \n- **\\_\\_identifierFormatTag\\_\\_**: Obsah {{NameID Policy Template}} pokud je nastaven validní {{Identifier Format}}. \n- **\\_\\_identifierFormat\\_\\_**: Hodnota nastavení {{Identifier Format}}. \n- **\\_\\_authnContextTag\\_\\_**: Obsah {{AuthnContext Template}} pokud je nastaven validní {{Custom Authn Context}}. \n- **\\_\\_authnContextComparison\\_\\_**: Hodnota nastavení {{Authn Context Comparison}}. \n- **\\_\\_authnContext\\_\\_**: Hodnota nastavení {{Custom Authn Context}}.", + "SAML_AuthnRequest_Template_Description": "Dostupné tyto proměnné: \n- *\\_\\_newId\\_\\_*: Náhodně generovaný id řetězec \n- *\\_\\_instant\\_\\_*: Aktuální timestamp \n- *\\_\\_callbackUrl\\_\\_*: URL Rocket.Chat callback \n- *\\_\\_entryPoint\\_\\_*: Hodnota nastavení *Custom Entry Point*. \n- *\\_\\_issuer\\_\\_*: Hodnota nastavení *Custom Issuer*. \n- *\\_\\_identifierFormatTag\\_\\_*: Obsah *NameID Policy Template* pokud je nastaven validní *Identifier Format*. \n- *\\_\\_identifierFormat\\_\\_*: Hodnota nastavení *Identifier Format*. \n- *\\_\\_authnContextTag\\_\\_*: Obsah *AuthnContext Template* pokud je nastaven validní *Custom Authn Context*. \n- *\\_\\_authnContextComparison\\_\\_*: Hodnota nastavení *Authn Context Comparison*. \n- *\\_\\_authnContext\\_\\_*: Hodnota nastavení *Custom Authn Context*.", "SAML_Custom_Authn_Context": "Vlastní Authn kontext", "SAML_Custom_Authn_Context_Comparison": "Porovnání kontextu Authn", - "SAML_Custom_Authn_Context_description": "Ponechte prázdné pro vynechání authn kontextu v požadavku. \n \nPro přídání více authn kontextů je přidejte přímo do nastavení {{AuthnContext Template}}", + "SAML_Custom_Authn_Context_description": "Ponechte prázdné pro vynechání authn kontextu v požadavku. \n \nPro přídání více authn kontextů je přidejte přímo do nastavení *AuthnContext Template*", "SAML_Custom_Cert": "Vlastní Certifikát", "SAML_Custom_Debug": "Zapnout debugování", "SAML_Custom_EMail_Field": "Název pole emailu", @@ -2701,13 +2701,13 @@ "SAML_Identifier_Format": "Formát identifikátoru", "SAML_Identifier_Format_Description": "Ponechte prázdné pro přeskočení NameID policy z požadavku.", "SAML_LogoutRequest_Template": "Šablona odpověďi při odhlášení", - "SAML_LogoutRequest_Template_Description": "Dostupné tyto proměnné: \n- **\\_\\_newId\\_\\_**: Náhodně generovaný id řetězec \n- **\\_\\_instant\\_\\_**: Aktuální timestamp \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL kam přesměrovat IDP Single LogOut. \n- **\\_\\_issuer\\_\\_**: Hodnota nastavení {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Hodnota nastavení {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: Hodnota NameID obdržená z IdP při přihlášení. \n- **\\_\\_sessionIndex\\_\\_**: Hodnota sessionIndex obdržená z IdP při přihlášení.", + "SAML_LogoutRequest_Template_Description": "Dostupné tyto proměnné: \n- *\\_\\_newId\\_\\_*: Náhodně generovaný id řetězec \n- *\\_\\_instant\\_\\_*: Aktuální timestamp \n- *\\_\\_idpSLORedirectURL\\_\\_*: URL kam přesměrovat IDP Single LogOut. \n- *\\_\\_issuer\\_\\_*: Hodnota nastavení *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Hodnota nastavení *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: Hodnota NameID obdržená z IdP při přihlášení. \n- *\\_\\_sessionIndex\\_\\_*: Hodnota sessionIndex obdržená z IdP při přihlášení.", "SAML_LogoutResponse_Template": "Šablona odpověďi při odhlášení", - "SAML_LogoutResponse_Template_Description": "Dostupné tyto proměnné: \n- **\\_\\_newId\\_\\_**: Náhodně generovaný id řetězec \n- **\\_\\_inResponseToId\\_\\_**: ID požadavku odhlášení z IdP \n- **\\_\\_instant\\_\\_**: Aktuální timestamp \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL kam přesměrovat IDP Single LogOut. \n- **\\_\\_issuer\\_\\_**: Hodnota nastavení {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Hodnota nastavení {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: Hodnota NameID obdržená z IdP při přihlášení. \n- **\\_\\_sessionIndex\\_\\_**: Hodnota sessionIndex obdržená z IdP při přihlášení.", + "SAML_LogoutResponse_Template_Description": "Dostupné tyto proměnné: \n- *\\_\\_newId\\_\\_*: Náhodně generovaný id řetězec \n- *\\_\\_inResponseToId\\_\\_*: ID požadavku odhlášení z IdP \n- *\\_\\_instant\\_\\_*: Aktuální timestamp \n- *\\_\\_idpSLORedirectURL\\_\\_*: URL kam přesměrovat IDP Single LogOut. \n- *\\_\\_issuer\\_\\_*: Hodnota nastavení *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Hodnota nastavení *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: Hodnota NameID obdržená z IdP při přihlášení. \n- *\\_\\_sessionIndex\\_\\_*: Hodnota sessionIndex obdržená z IdP při přihlášení.", "SAML_MetadataCertificate_Template": "Šablona certifikátu metadat", - "SAML_Metadata_Certificate_Template_Description": "Dostupné tyto proměnné: \n- **\\_\\_certificate\\_\\_**: Privátní certifikát pro nastavení šifrování", + "SAML_Metadata_Certificate_Template_Description": "Dostupné tyto proměnné: \n- *\\_\\_certificate\\_\\_*: Privátní certifikát pro nastavení šifrování", "SAML_Metadata_Template": "Šablona metadat", - "SAML_Metadata_Template_Description": "Dostupné tyto proměnné: \n- **\\_\\_sloLocation\\_\\_**: URL Single LogOut. \n- **\\_\\_issuer\\_\\_**: Hodnota nastavení {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Hodnota nastavení {{Identifier Format}}. \n- **\\_\\_certificateTag\\_\\_**: Pokud je nastaven privátní certifikát, bude obsahovat {{Metadata Certificate Template}}, jinak ignorováno. \n- **\\_\\_callbackUrl\\_\\_**: URL Rocket.Chat callback", + "SAML_Metadata_Template_Description": "Dostupné tyto proměnné: \n- *\\_\\_sloLocation\\_\\_*: URL Single LogOut. \n- *\\_\\_issuer\\_\\_*: Hodnota nastavení *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Hodnota nastavení *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Pokud je nastaven privátní certifikát, bude obsahovat {{Metadata Certificate Template}}, jinak ignorováno. \n- *\\_\\_callbackUrl\\_\\_*: URL Rocket.Chat callback", "SAML_NameIdPolicy_Template": "Šablona NameID Policy", "SAML_NameIdPolicy_Template_Description": "Lze použít jakoukoliv proměnnou z Autorizačního požadavku.", "SAML_Role_Attribute_Name": "Název atributu role", diff --git a/packages/i18n/src/locales/da.i18n.json b/packages/i18n/src/locales/da.i18n.json index 9493767278d99..88dbb19f9f81a 100644 --- a/packages/i18n/src/locales/da.i18n.json +++ b/packages/i18n/src/locales/da.i18n.json @@ -2749,12 +2749,12 @@ "SAML_Allowed_Clock_Drift": "Tillad tids-afvigelse fra identiets-udbyderen", "SAML_Allowed_Clock_Drift_Description": "Tiden fra identitets-udbyderen vil mulighvis afvige ved at være lidt foran dit systemur. Du kan tillade en smule afvigelse. Værdien skal angives i millisekunder (ms). Den angivne værdi tilføjes til nuværende tid hvorefter svaret valideres.", "SAML_AuthnContext_Template": "AuthnContext-skabelon", - "SAML_AuthnContext_Template_Description": "Du kan bruge en hvilken som helst variabel fra AuthnRequest-skabelonen her. \n \nFor at tilføje yderligere authn-indhold, skal du duplikere {{AuthnContextClassRef}}-tagget og erstatte {{\\_\\_authnContext\\_\\ }}_ variablen med den nye kontekst.", + "SAML_AuthnContext_Template_Description": "Du kan bruge en hvilken som helst variabel fra AuthnRequest-skabelonen her. \n \nFor at tilføje yderligere authn-indhold, skal du duplikere `AuthnContextClassRef`-tagget og erstatte *\\_\\_authnContext\\_\\_* variablen med den nye kontekst.", "SAML_AuthnRequest_Template": "AuthnRequest-skabelon", - "SAML_AuthnRequest_Template_Description": "Følgende variabler er tilgængelige: \n- **\\_\\ _newId\\_\\_**: Tilfældigt genereret id-streng \n- **\\_\\ _instant\\_\\_**: Aktuel tidsstempel \n- **\\_\\ _callbackUrl\\_\\_**: The Rocket.Chat callback-URL. \n- **\\ _ \\ _ entryPoint \\ _ \\ _**: Værdien af indstillingen {{Custom Entry Point}}. \n- **\\_\\_Issuer\\_\\_**: Værdien af indstillingen {{Custom Issuer}}. \n- ** \\_\\_identifikatorFormatTag\\_\\ _**: Indholdet af {{NameID-politikskabelonen}}, hvis et gyldigt {{Identifier-format}} er konfigureret. \n- **\\_\\_identifikatorFormat\\_\\_**: Værdien af indstillingen {{Identifier Format}}. \n- **\\_\\_authnContextTag\\_\\_**: Indholdet af {{AuthnContext-skabelonen}}, hvis en gyldig {{Custom Authn Context}} er konfigureret. \n- **\\_\\_authnContextComparison\\_\\_**: Værdien af indstillingen {{Authn Context Comparison}} \n - **\\_\\_authnContext\\_\\_**: Værdien af indstillingen {{Custom Authn Context}}.", + "SAML_AuthnRequest_Template_Description": "Følgende variabler er tilgængelige: \n- *\\_\\_newId\\_\\_*: Tilfældigt genereret id-streng \n- *\\_\\_instant\\_\\_*: Aktuel tidsstempel \n- *\\_\\_callbackUrl\\_\\_*: The Rocket.Chat callback-URL. \n- **\\_\\_entryPoint\\_\\_**: Værdien af indstillingen *Custom Entry Point*. \n- **\\_\\_issuer\\_\\_**: Værdien af indstillingen *Custom Issuer*. \n- **\\_\\_identifierFormatTag\\_\\_**: Indholdet af *NameID-politikskabelonen*, hvis et gyldigt *Identifier-format* er konfigureret. \n- **\\_\\_identifierFormat\\_\\_**: Værdien af indstillingen *Identifier Format*. \n- *\\_\\_authnContextTag\\_\\_*: Indholdet af *AuthnContext-skabelonen*, hvis en gyldig *Custom Authn Context* er konfigureret. \n- *\\_\\_authnContextComparison\\_\\_*: Værdien af indstillingen *Authn Context Comparison* \n - *\\_\\_authnContext\\_\\_*: Værdien af indstillingen *Custom Authn Context*.", "SAML_Custom_Authn_Context": "Brugerdefineret Authn-kontekst", "SAML_Custom_Authn_Context_Comparison": "Sammenligning af Authn-kontekst", - "SAML_Custom_Authn_Context_description": "Lad dette være tomt for at udelade authn-konteksten fra anmodningen. \n \nFor at tilføje flere authn-kontekst, skal du tilføje yderligere direkte til indstillingen {{AuthnContext Template}}.", + "SAML_Custom_Authn_Context_description": "Lad dette være tomt for at udelade authn-konteksten fra anmodningen. \n \nFor at tilføje flere authn-kontekst, skal du tilføje yderligere direkte til indstillingen *AuthnContext Template*.", "SAML_Custom_Cert": "Brugerdefineret certifikat", "SAML_Custom_Debug": "Aktivér fejlfinding", "SAML_Custom_EMail_Field": "E-mail feltnavn", @@ -2790,13 +2790,13 @@ "SAML_Identifier_Format": "Identificer format", "SAML_Identifier_Format_Description": "Lad dette være tomt for at udelade NameID-politikken fra anmodningen.", "SAML_LogoutRequest_Template": "Logout-anmodnings-skabelon", - "SAML_LogoutRequest_Template_Description": "Følgende variable er tilgængelige: \n- **\\_\\_newId\\_\\_**: Tilfældig genereret id-streng \n- **\\_\\_instant\\_\\_**: Aktuelt tidsstempel \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP'en til den enkelte logout-URL der skal omdirigeres til. \n- **\\_\\_issuer\\_\\_**: Værdien af {{Custom Issuer}} indstillingen. \n- **\\_\\_identifierFormat\\_\\_**: Værdien af {{Identifier Format}} indstillingen. \n- **\\_\\_nameID\\_\\_**: NameID'et modtaget fra IdP'en da brugeren loggede ind. \n- **\\_\\_sessionIndex\\_\\_**: Sessions-indekset modtaget fra IdP'en da brugeren loggede ind.", + "SAML_LogoutRequest_Template_Description": "Følgende variable er tilgængelige: \n- *\\_\\_newId\\_\\_*: Tilfældig genereret id-streng \n- *\\_\\_instant\\_\\_*: Aktuelt tidsstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP'en til den enkelte logout-URL der skal omdirigeres til. \n- *\\_\\_issuer\\_\\_*: Værdien af *Custom Issuer* indstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Værdien af *Identifier Format* indstillingen. \n- *\\_\\_nameID\\_\\_*: NameID'et modtaget fra IdP'en da brugeren loggede ind. \n- *\\_\\_sessionIndex\\_\\_*: Sessions-indekset modtaget fra IdP'en da brugeren loggede ind.", "SAML_LogoutResponse_Template": "Logout-svar-skabelon", - "SAML_LogoutResponse_Template_Description": "Følgende variable er tilgængelige: \n- **\\_\\_newId\\_\\_**: Tilfældig genereret id-streng \n- **\\_\\_inResponseToId\\_\\_**: ID'et til den logout-anmodning modtaget fra IdP'en. \n- **\\_\\_instant\\_\\_**: Aktuelt tidsstempel \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP'en til den enkelte logout-URL der skal omdirigeres til \n.- **\\_\\_issuer\\_\\_**: Værdien af {{Custom Issuer}} indstillingen. \n- **\\_\\_identifierFormat\\_\\_**: Værdien af {{Identifier Format}} indstillingen. \n- **\\_\\_nameID\\_\\_**: NameID'et modtaget fra IdP-Logout-anmodningen. \n- **\\_\\_sessionIndex\\_\\_**: Sessions-indekset modtaget fra IdP-Logout-anmodningen.", + "SAML_LogoutResponse_Template_Description": "Følgende variable er tilgængelige: \n- *\\_\\_newId\\_\\_*: Tilfældig genereret id-streng \n- *\\_\\_inResponseToId\\_\\_*: ID'et til den logout-anmodning modtaget fra IdP'en. \n- *\\_\\_instant\\_\\_*: Aktuelt tidsstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP'en til den enkelte logout-URL der skal omdirigeres til \n.- *\\_\\_issuer\\_\\_*: Værdien af *Custom Issuer* indstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Værdien af *Identifier Format* indstillingen. \n- *\\_\\_nameID\\_\\_*: NameID'et modtaget fra IdP-Logout-anmodningen. \n- *\\_\\_sessionIndex\\_\\_*: Sessions-indekset modtaget fra IdP-Logout-anmodningen.", "SAML_MetadataCertificate_Template": "Certifikat-skabelon for metadata", - "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgængelige: \n- **\\_\\_certificate\\_\\_**: Det private certifikat til erklærings-kryptering.", + "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgængelige: \n- *\\_\\_certificate\\_\\_*: Det private certifikat til erklærings-kryptering.", "SAML_Metadata_Template": "Skabelon for metadata", - "SAML_Metadata_Template_Description": "Følgende variabler er tilgængelige: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chat-log-ud-URL. \n- **\\_\\_issuer\\_\\_**: Værdien af indstillingen {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Værdien af indstillingen {{Identifier Format}}. \n- **\\_\\_certificateTag\\_\\_**: Hvis et privat certifikat er konfigureret, vil dette indeholde {{Metadata Certificate Template}}, ellers ignoreres det. \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat callback-URL.", + "SAML_Metadata_Template_Description": "Følgende variabler er tilgængelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat-log-ud-URL. \n- *\\_\\_issuer\\_\\_*: Værdien af indstillingen *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Værdien af indstillingen *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat certifikat er konfigureret, vil dette indeholde {{Metadata Certificate Template}}, ellers ignoreres det. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat callback-URL.", "SAML_NameIdPolicy_Template": "NameID-politik-skabelon", "SAML_NameIdPolicy_Template_Description": "Du kan bruge en hvilken som helst variabel fra skabelonen Authorize Request her.", "SAML_Role_Attribute_Name": "Rolleattributs navn", diff --git a/packages/i18n/src/locales/de.i18n.json b/packages/i18n/src/locales/de.i18n.json index ae3d7ba521b00..6c8fa0a28c345 100644 --- a/packages/i18n/src/locales/de.i18n.json +++ b/packages/i18n/src/locales/de.i18n.json @@ -3532,13 +3532,13 @@ "SAML_Allowed_Clock_Drift": "Erlaubte Zeitabweichung zum Identity Provider", "SAML_Allowed_Clock_Drift_Description": "Die Uhrzeit des Identitätsproviders kann minimal vor der eigenen Systemzeit liegen. Um eine geringe Abweichung der Zeiten zu berücksichtigen, kann eine Zeitabweichung definiert werden. Der Wert muss in einer Anzahl von Millisekunden (ms) angegeben werden. Der angegebene Wert wird zur aktuellen Zeit, zu der die Antwort validiert wird, addiert.", "SAML_AuthnContext_Template": "AuthnContext-Vorlage", - "SAML_AuthnContext_Template_Description": "Sie können hier jede Variable der AuthnRequest-Vorlage verwenden. \n \nWenn Sie zusätzlichen authn-Kontext hinzufügen möchten, duplizieren Sie den Tag {{AuthnContextClassRef}} und ersetzen Sie die Variable {{\\_\\_authnContext\\_\\}} durch den neuen Kontext.", + "SAML_AuthnContext_Template_Description": "Sie können hier jede Variable der AuthnRequest-Vorlage verwenden. \n \nWenn Sie zusätzlichen authn-Kontext hinzufügen möchten, duplizieren Sie den Tag `AuthnContextClassRef` und ersetzen Sie die Variable `\\_\\_authnContext\\_\\_` durch den neuen Kontext.", "SAML_AuthnRequest_Template": "AuthnRequest-Vorlage", - "SAML_AuthnRequest_Template_Description": "Die folgenden Variablen sind verfügbar: \n- **\\_\\_newId\\_\\_**: Zufällig erzeugte ID-Zeichenfolge \n- **\\_\\_instant\\_\\_**: Aktuelle Zeitmarke \n- **\\_\\_callbackUrl\\_\\_**: Die Rückruf-URL von Rocket.Chat. \n- **\\_\\_entryPoint\\_\\_**: Der Wert der Einstellung {{Custom Entry Point}} \n- **\\_\\_issuer\\_\\_**: Der Wert der Einstellung {{Custom Issuer}} \n- **\\_\\_identifierFormatTag\\_\\_**: Der Inhalt von {{NameID Policy Template}}, wenn ein gültiges {{Identifier Format}} konfiguriert ist. \n- **\\_\\_identifierFormat\\_\\_**: Der Wert der Einstellung {{Identifier Format}} \n- **\\_\\_authnContextTag\\_\\_**: Der Inhalt von {{AuthnContext Template}}, wenn ein gültiger {{Custom Authn Context}} konfiguriert ist. \n- **\\_\\_authnContextComparison\\_\\_**: Der Wert der Einstellung {{Authn Context Comparison}} \n- **\\_\\_authnContext\\_\\_**: Der Wert der Einstellung {{Custom Authn Context}}", + "SAML_AuthnRequest_Template_Description": "Die folgenden Variablen sind verfügbar: \n- *\\_\\_newId\\_\\_*: Zufällig erzeugte ID-Zeichenfolge \n- *\\_\\_instant\\_\\_*: Aktuelle Zeitmarke \n- *\\_\\_callbackUrl\\_\\_*: Die Rückruf-URL von Rocket.Chat. \n- *\\_\\_entryPoint\\_\\_*: Der Wert der Einstellung *Custom Entry Point* \n- *\\_\\_issuer\\_\\_*: Der Wert der Einstellung *Custom Issuer* \n- *\\_\\_identifierFormatTag\\_\\_*: Der Inhalt von *NameID Policy Template*, wenn ein gültiges *Identifier Format* konfiguriert ist. \n- *\\_\\_identifierFormat\\_\\_*: Der Wert der Einstellung *Identifier Format* \n- *\\_\\_authnContextTag\\_\\_*: Der Inhalt von *AuthnContext Template*, wenn ein gültiger *Custom Authn Context* konfiguriert ist. \n- *\\_\\_authnContextComparison\\_\\_*: Der Wert der Einstellung *Authn Context Comparison* \n- *\\_\\_authnContext\\_\\_*: Der Wert der Einstellung *Custom Authn Context*", "SAML_Connection": "Verbindung", "SAML_Custom_Authn_Context": "Benutzerdefinierter Authn-Kontext", "SAML_Custom_Authn_Context_Comparison": "Authn-Kontextvergleich", - "SAML_Custom_Authn_Context_description": "Lassen Sie dies leer, um den authn-Kontext aus der Anforderung herauszulassen. \n \n Wenn Sie mehrere authn-Kontexte hinzufügen möchten, fügen Sie der Einstellung {{AuthnContext Template}} alle weiteren direkt hinzu.", + "SAML_Custom_Authn_Context_description": "Lassen Sie dies leer, um den authn-Kontext aus der Anforderung herauszulassen. \n \n Wenn Sie mehrere authn-Kontexte hinzufügen möchten, fügen Sie der Einstellung *AuthnContext Template* alle weiteren direkt hinzu.", "SAML_Custom_Cert": "Benutzerdefiniertes Zertifikat", "SAML_Custom_Debug": "Debugmodus aktivieren", "SAML_Custom_EMail_Field": "E-Mail Feldname", @@ -3583,13 +3583,13 @@ "SAML_Identifier_Format": "ID-Format", "SAML_Identifier_Format_Description": "Leerlassen, um die NameID-Richtlinie aus der Anforderung wegzulassen.", "SAML_LogoutRequest_Template": "Vorlage Abmeldeanforderung", - "SAML_LogoutRequest_Template_Description": "Die folgenden Variablen sind verfügbar: \n- **\\_\\_newId\\_\\_**: Zufällig generierte ID-Zeichenfolge \n- **\\_\\_instant\\_\\_**: Aktuelle Zeitmarke \n- **\\_\\_idpSLORedirectURL\\_\\_**: Die IDP Single LogOut URL für die Weiterleitung. \n- **\\_\\_issuer\\_\\_**: Der Wert der Einstellung {{Custom Issuer}} \n- **\\_\\_identifierFormat\\_\\_**: Der Wert der Einstellung {{Identifier Format}} \n- **\\_\\_nameID\\_\\_**: Die von IdP empfangene NameID, wenn sich der Benutzer anmeldet. \n- **\\_\\_sessionIndex\\_\\_**: Der von IdP empfangene Sitzungsindex, wenn sich der Benutzer anmeldet.", + "SAML_LogoutRequest_Template_Description": "Die folgenden Variablen sind verfügbar: \n- *\\_\\_newId\\_\\_*: Zufällig generierte ID-Zeichenfolge \n- *\\_\\_instant\\_\\_*: Aktuelle Zeitmarke \n- *\\_\\_idpSLORedirectURL\\_\\_*: Die IDP Single LogOut URL für die Weiterleitung. \n- *\\_\\_issuer\\_\\_*: Der Wert der Einstellung *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: Der Wert der Einstellung *Identifier Format* \n- *\\_\\_nameID\\_\\_*: Die von IdP empfangene NameID, wenn sich der Benutzer anmeldet. \n- *\\_\\_sessionIndex\\_\\_*: Der von IdP empfangene Sitzungsindex, wenn sich der Benutzer anmeldet.", "SAML_LogoutResponse_Template": "Vorlage Abmeldeantwort", - "SAML_LogoutResponse_Template_Description": "Die folgenden Variablen sind verfügbar: \n- **\\_\\_newId\\_\\_**: Zufällig generierte ID-Zeichenfolge \n- **\\_\\_inResponseToId\\_\\_**: Die von IdP empfangene Abmeldeanforderung \n- **\\_\\_instant\\_\\_**: Aktuelle Zeitmarke \n- **\\_\\_idpSLORedirectURL\\_\\_**: Die IDP Single LogOut URL für die Weiterleitung. \n- **\\_\\_issuer\\_\\_**: Der Wert der Einstellung{{Custom Issuer}} \n- **\\_\\_identifierFormat\\_\\_**: Der Wert der Einstellung {{Identifier Format}} \n- **\\_\\_nameID\\_\\_**: Die von der IdP-Abmeldeanforderung empfangene NameID. \n- **\\_\\_sessionIndex\\_\\_**: Der von der IdP-Abmeldeanforderung empfangene Sitzungsindex.", + "SAML_LogoutResponse_Template_Description": "Die folgenden Variablen sind verfügbar: \n- *\\_\\_newId\\_\\_*: Zufällig generierte ID-Zeichenfolge \n- *\\_\\_inResponseToId\\_\\_*: Die von IdP empfangene Abmeldeanforderung \n- *\\_\\_instant\\_\\_*: Aktuelle Zeitmarke \n- *\\_\\_idpSLORedirectURL\\_\\_*: Die IDP Single LogOut URL für die Weiterleitung. \n- *\\_\\_issuer\\_\\_*: Der Wert der Einstellung*Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: Der Wert der Einstellung *Identifier Format* \n- *\\_\\_nameID\\_\\_*: Die von der IdP-Abmeldeanforderung empfangene NameID. \n- *\\_\\_sessionIndex\\_\\_*: Der von der IdP-Abmeldeanforderung empfangene Sitzungsindex.", "SAML_MetadataCertificate_Template": "Vorlage Metadatenzertifikat", - "SAML_Metadata_Certificate_Template_Description": "Die folgenden Variablen sind verfügbar: \n- **\\_\\_certificate\\_\\_**: Das private Zertifikat für die Assertionverschlüsselung.", + "SAML_Metadata_Certificate_Template_Description": "Die folgenden Variablen sind verfügbar: \n- *\\_\\_certificate\\_\\_*: Das private Zertifikat für die Assertionverschlüsselung.", "SAML_Metadata_Template": "Metadatenvorlage", - "SAML_Metadata_Template_Description": "Die folgenden Variablen sind verfügbar: \n- **\\_\\_sloLocation\\_\\_**: Die Single LogOut URL von Rocket.Chat. \n- **\\_\\_issuer\\_\\_**: Der Wert der Einstellung {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Der Wert der Einstellung {{Identifier Format}} \n- **\\_\\_certificateTag\\_\\_**: Wenn ein privates Zertifikat konfiguriert wird, enthält diese die {{Metadata Certificate Template}}, andernfalls wird es ignoriert. \n- **\\_\\_callbackUrl\\_\\_**: Die Rückruf-URL von Rocket.Chat.", + "SAML_Metadata_Template_Description": "Die folgenden Variablen sind verfügbar: \n- *\\_\\_sloLocation\\_\\_*: Die Single LogOut URL von Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Der Wert der Einstellung *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Der Wert der Einstellung *Identifier Format* \n- *\\_\\_certificateTag\\_\\_*: Wenn ein privates Zertifikat konfiguriert wird, enthält diese die {{Metadata Certificate Template}}, andernfalls wird es ignoriert. \n- *\\_\\_callbackUrl\\_\\_*: Die Rückruf-URL von Rocket.Chat.", "SAML_NameIdPolicy_Template": "Vorlage NameID-Richtlinie", "SAML_NameIdPolicy_Template_Description": "Sie können hier jede beliebige Variable der Vorlage Autorisierungsanforderung verwenden.", "SAML_Role_Attribute_Name": "Rollenattributname", diff --git a/packages/i18n/src/locales/en.i18n.json b/packages/i18n/src/locales/en.i18n.json index 0d7e43776d9ed..6b77354140f39 100644 --- a/packages/i18n/src/locales/en.i18n.json +++ b/packages/i18n/src/locales/en.i18n.json @@ -4507,13 +4507,13 @@ "SAML_Allowed_Clock_Drift": "Allowed clock drift from Identity Provider", "SAML_Allowed_Clock_Drift_Description": "The clock of the Identity Provider may drift slightly ahead of your system clocks. You can allow for a small amount of clock drift. Its value must be given in a number of milliseconds (ms). The value given is added to the current time at which the response is validated.", "SAML_AuthnContext_Template": "AuthnContext Template", - "SAML_AuthnContext_Template_Description": "You can use any variable from the AuthnRequest Template here. \n \n To add additional authn contexts, duplicate the {{AuthnContextClassRef}} tag and replace the {{\\_\\_authnContext\\_\\}} variable with the new context.", + "SAML_AuthnContext_Template_Description": "You can use any variable from the AuthnRequest Template here. \n \n To add additional authn contexts, duplicate the `AuthnContextClassRef` tag and replace the `\\_\\_authnContext\\_\\_` variable with the new context.", "SAML_AuthnRequest_Template": "AuthnRequest Template", - "SAML_AuthnRequest_Template_Description": "The following variables are available: \n- **\\_\\_newId\\_\\_**: Randomly generated id string \n- **\\_\\_instant\\_\\_**: Current timestamp \n- **\\_\\_callbackUrl\\_\\_**: The Rocket.Chat callback URL. \n- **\\_\\_entryPoint\\_\\_**: The value of the {{Custom Entry Point}} setting. \n- **\\_\\_issuer\\_\\_**: The value of the {{Custom Issuer}} setting. \n- **\\_\\_identifierFormatTag\\_\\_**: The contents of the {{NameID Policy Template}} if a valid {{Identifier Format}} is configured. \n- **\\_\\_identifierFormat\\_\\_**: The value of the {{Identifier Format}} setting. \n- **\\_\\_authnContextTag\\_\\_**: The contents of the {{AuthnContext Template}} if a valid {{Custom Authn Context}} is configured. \n- **\\_\\_authnContextComparison\\_\\_**: The value of the {{Authn Context Comparison}} setting. \n- **\\_\\_authnContext\\_\\_**: The value of the {{Custom Authn Context}} setting.", + "SAML_AuthnRequest_Template_Description": "The following variables are available: \n- *\\_\\_newId\\_\\_*: Randomly generated id string \n- *\\_\\_instant\\_\\_*: Current timestamp \n- *\\_\\_callbackUrl\\_\\_*: The Rocket.Chat callback URL. \n- *\\_\\_entryPoint\\_\\_*: The value of the *Custom Entry Point* setting. \n- *\\_\\_issuer\\_\\_*: The value of the *Custom Issuer* setting. \n- *\\_\\_identifierFormatTag\\_\\_*: The contents of the *NameID Policy Template* if a valid *Identifier Format* is configured. \n- *\\_\\_identifierFormat\\_\\_*: The value of the *Identifier Format* setting. \n- *\\_\\_authnContextTag\\_\\_*: The contents of the *AuthnContext Template* if a valid *Custom Authn Context* is configured. \n- *\\_\\_authnContextComparison\\_\\_*: The value of the *Authn Context Comparison* setting. \n- *\\_\\_authnContext\\_\\_*: The value of the *Custom Authn Context* setting.", "SAML_Connection": "Connection", "SAML_Custom_Authn_Context": "Custom Authn Context", "SAML_Custom_Authn_Context_Comparison": "Authn Context Comparison", - "SAML_Custom_Authn_Context_description": "Leave this empty to omit the authn context from the request. \n \n To add multiple authn contexts, add the additional ones directly to the {{AuthnContext Template}} setting.", + "SAML_Custom_Authn_Context_description": "Leave this empty to omit the authn context from the request. \n \n To add multiple authn contexts, add the additional ones directly to the *AuthnContext Template* setting.", "SAML_Custom_Cert": "Custom Certificate", "SAML_Custom_Debug": "Enable Debug", "SAML_Custom_EMail_Field": "E-Mail field name", @@ -4560,13 +4560,13 @@ "SAML_Identifier_Format": "Identifier Format", "SAML_Identifier_Format_Description": "Leave this empty to omit the NameID Policy from the request.", "SAML_LogoutRequest_Template": "Logout Request Template", - "SAML_LogoutRequest_Template_Description": "The following variables are available: \n- **\\_\\_newId\\_\\_**: Randomly generated id string \n- **\\_\\_instant\\_\\_**: Current timestamp \n- **\\_\\_idpSLORedirectURL\\_\\_**: The IDP Single LogOut URL to redirect to. \n- **\\_\\_issuer\\_\\_**: The value of the {{Custom Issuer}} setting. \n- **\\_\\_identifierFormat\\_\\_**: The value of the {{Identifier Format}} setting. \n- **\\_\\_nameID\\_\\_**: The NameID received from the IdP when the user logged in. \n- **\\_\\_sessionIndex\\_\\_**: The sessionIndex received from the IdP when the user logged in.", + "SAML_LogoutRequest_Template_Description": "The following variables are available: \n- *\\_\\_newId\\_\\_*: Randomly generated id string \n- *\\_\\_instant\\_\\_*: Current timestamp \n- *\\_\\_idpSLORedirectURL\\_\\_*: The IDP Single LogOut URL to redirect to. \n- *\\_\\_issuer\\_\\_*: The value of the *Custom Issuer* setting. \n- *\\_\\_identifierFormat\\_\\_*: The value of the *Identifier Format* setting. \n- *\\_\\_nameID\\_\\_*: The NameID received from the IdP when the user logged in. \n- *\\_\\_sessionIndex\\_\\_*: The sessionIndex received from the IdP when the user logged in.", "SAML_LogoutResponse_Template": "Logout Response Template", - "SAML_LogoutResponse_Template_Description": "The following variables are available: \n- **\\_\\_newId\\_\\_**: Randomly generated id string \n- **\\_\\_inResponseToId\\_\\_**: The ID of the Logout Request received from the IdP \n- **\\_\\_instant\\_\\_**: Current timestamp \n- **\\_\\_idpSLORedirectURL\\_\\_**: The IDP Single LogOut URL to redirect to. \n- **\\_\\_issuer\\_\\_**: The value of the {{Custom Issuer}} setting. \n- **\\_\\_identifierFormat\\_\\_**: The value of the {{Identifier Format}} setting. \n- **\\_\\_nameID\\_\\_**: The NameID received from the IdP Logout Request. \n- **\\_\\_sessionIndex\\_\\_**: The sessionIndex received from the IdP Logout Request.", + "SAML_LogoutResponse_Template_Description": "The following variables are available: \n- *\\_\\_newId\\_\\_*: Randomly generated id string \n- *\\_\\_inResponseToId\\_\\_*: The ID of the Logout Request received from the IdP \n- *\\_\\_instant\\_\\_*: Current timestamp \n- *\\_\\_idpSLORedirectURL\\_\\_*: The IDP Single LogOut URL to redirect to. \n- *\\_\\_issuer\\_\\_*: The value of the *Custom Issuer* setting. \n- *\\_\\_identifierFormat\\_\\_*: The value of the *Identifier Format* setting. \n- *\\_\\_nameID\\_\\_*: The NameID received from the IdP Logout Request. \n- *\\_\\_sessionIndex\\_\\_*: The sessionIndex received from the IdP Logout Request.", "SAML_MetadataCertificate_Template": "Metadata Certificate Template", - "SAML_Metadata_Certificate_Template_Description": "The following variables are available: \n- **\\_\\_certificate\\_\\_**: The private certificate for assertion encryption.", + "SAML_Metadata_Certificate_Template_Description": "The following variables are available: \n- *\\_\\_certificate\\_\\_*: The private certificate for assertion encryption.", "SAML_Metadata_Template": "Metadata Template", - "SAML_Metadata_Template_Description": "The following variables are available: \n- **\\_\\_sloLocation\\_\\_**: The Rocket.Chat Single LogOut URL. \n- **\\_\\_issuer\\_\\_**: The value of the {{Custom Issuer}} setting. \n- **\\_\\_identifierFormat\\_\\_**: The value of the {{Identifier Format}} setting. \n- **\\_\\_certificateTag\\_\\_**: If a private certificate is configured, this will include the {{Metadata Certificate Template}}, otherwise it will be ignored. \n- **\\_\\_callbackUrl\\_\\_**: The Rocket.Chat callback URL.", + "SAML_Metadata_Template_Description": "The following variables are available: \n- *\\_\\_sloLocation\\_\\_*: The Rocket.Chat Single LogOut URL. \n- *\\_\\_issuer\\_\\_*: The value of the *Custom Issuer* setting. \n- *\\_\\_identifierFormat\\_\\_*: The value of the *Identifier Format* setting. \n- *\\_\\_certificateTag\\_\\_*: If a private certificate is configured, this will include the {{Metadata Certificate Template}}, otherwise it will be ignored. \n- *\\_\\_callbackUrl\\_\\_*: The Rocket.Chat callback URL.", "SAML_NameIdPolicy_Template": "NameID Policy Template", "SAML_NameIdPolicy_Template_Description": "You can use any variable from the Authorize Request Template here.", "SAML_Role_Attribute_Name": "Role Attribute Name", diff --git a/packages/i18n/src/locales/es.i18n.json b/packages/i18n/src/locales/es.i18n.json index 7ba662a09d66e..49ac6a5c13929 100644 --- a/packages/i18n/src/locales/es.i18n.json +++ b/packages/i18n/src/locales/es.i18n.json @@ -3258,13 +3258,13 @@ "SAML_Allowed_Clock_Drift": "Discrepancia de reloj permitida del proveedor de identidad", "SAML_Allowed_Clock_Drift_Description": "El reloj del proveedor de identidad puede ir ligeramente adelantado respecto a los relojes del sistema. Puedes permitir una pequeña desviación del reloj. Su valor debe expresarse en milisegundos (ms). El valor dado se suma a la hora actual en la que se valida la respuesta.", "SAML_AuthnContext_Template": "Plantilla AuthnContext", - "SAML_AuthnContext_Template_Description": "Puedes usar cualquier variable de la plantilla AuthnRequest aquí. \n \nPara añadir contextos de autenticación adicionales, duplica la etiqueta {{AuthnContextClassRef}} y reemplaza la variable {{\\_\\_authnContext\\_\\}} con el nuevo contexto.", + "SAML_AuthnContext_Template_Description": "Puedes usar cualquier variable de la plantilla AuthnRequest aquí. \n \nPara añadir contextos de autenticación adicionales, duplica la etiqueta `AuthnContextClassRef` y reemplaza la variable `\\_\\_authnContext\\_\\_` con el nuevo contexto.", "SAML_AuthnRequest_Template": "Plantilla AuthnRequest", - "SAML_AuthnRequest_Template_Description": "Las siguientes variables están disponibles: \n- **\\_\\_newId\\_\\_**: Cadena de identificación generada aleatoriamente \n- **\\_\\_instant\\_\\_**: Fecha y hora actual \n- **\\_\\_callbackUrl\\_\\_**: URL de devolución de llamada de Rocket.Chat \n- **\\_\\_entryPoint\\_\\_**: Valor del ajuste {{Custom Entry Point}} \n- **\\_\\_issuer\\_\\_**: Valor del ajuste {{Custom Issuer}} \n- **\\_\\_identifierFormatTag\\_\\_**: Contenido de {{NameID Policy Template}} si un {{Identifier Format}} válido está configurado \n- **\\_\\_identifierFormat\\_\\_**: Valor del ajuste {{Identifier Format}} \n- **\\_\\_authnContextTag\\_\\_**: Contenido de {{AuthnContext Template}} si un {{Custom Authn Context}} válido está configurado \n- **\\_\\_authnContextComparison\\_\\_**: Valor del ajuste {{Authn Context Comparison}} \n- **\\_\\_authnContext\\_\\_**: Valor del ajuste {{Custom Authn Context}}", + "SAML_AuthnRequest_Template_Description": "Las siguientes variables están disponibles: \n- *\\_\\_newId\\_\\_*: Cadena de identificación generada aleatoriamente \n- *\\_\\_instant\\_\\_*: Fecha y hora actual \n- *\\_\\_callbackUrl\\_\\_*: URL de devolución de llamada de Rocket.Chat \n- *\\_\\_entryPoint\\_\\_*: Valor del ajuste *Custom Entry Point* \n- *\\_\\_issuer\\_\\_*: Valor del ajuste *Custom Issuer* \n- *\\_\\_identifierFormatTag\\_\\_*: Contenido de *NameID Policy Template* si un *Identifier Format* válido está configurado \n- *\\_\\_identifierFormat\\_\\_*: Valor del ajuste *Identifier Format* \n- *\\_\\_authnContextTag\\_\\_*: Contenido de *AuthnContext Template* si un *Custom Authn Context* válido está configurado \n- *\\_\\_authnContextComparison\\_\\_*: Valor del ajuste *Authn Context Comparison* \n- *\\_\\_authnContext\\_\\_*: Valor del ajuste *Custom Authn Context*", "SAML_Connection": "Conexión", "SAML_Custom_Authn_Context": "Contexto de autenticación personalizado", "SAML_Custom_Authn_Context_Comparison": "Comparación de contexto de autenticación", - "SAML_Custom_Authn_Context_description": "Dejar esto vacío para omitir el contexto de autenticación de la solicitud. \n \nPara añadir múltiples contextos de autenticación, añade los adicionales directamente al ajuste {{AuthnContext Template}}.", + "SAML_Custom_Authn_Context_description": "Dejar esto vacío para omitir el contexto de autenticación de la solicitud. \n \nPara añadir múltiples contextos de autenticación, añade los adicionales directamente al ajuste *AuthnContext Template*.", "SAML_Custom_Cert": "Certificado personalizado ", "SAML_Custom_Debug": "Habilitar depuración", "SAML_Custom_EMail_Field": "Nombre de campo de correo electrónico", @@ -3308,13 +3308,13 @@ "SAML_Identifier_Format": "Formato de identificador", "SAML_Identifier_Format_Description": "Dejar esto vacío para omitir la política de NameID de la solicitud.", "SAML_LogoutRequest_Template": "Plantilla de solicitud de cierre de sesión", - "SAML_LogoutRequest_Template_Description": "Las siguientes variables están disponibles: \n- **\\_\\_newId\\_\\_**: Cadena de identificación generada aleatoriamente \n- **\\_\\_instant\\_\\_**: Fecha y hora actual \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL de inicio de sesión único de IDP a la que redireccionar \n- **\\_\\_issuer\\_\\_**: Valor del ajuste {{Custom Issuer}} \n- **\\_\\_identifierFormat\\_\\_**: Valor del ajuste {{Identifier Format}} \n- **\\_\\_nameID\\_\\_**: NameID recibido desde el IdP cuando el usuario ha iniciado sesión \n- **\\_\\_sessionIndex\\_\\_**: SessionIndex recibido desde el IdP cuando el usuario ha cerrado sesión", + "SAML_LogoutRequest_Template_Description": "Las siguientes variables están disponibles: \n- *\\_\\_newId\\_\\_*: Cadena de identificación generada aleatoriamente \n- *\\_\\_instant\\_\\_*: Fecha y hora actual \n- *\\_\\_idpSLORedirectURL\\_\\_*: URL de inicio de sesión único de IDP a la que redireccionar \n- *\\_\\_issuer\\_\\_*: Valor del ajuste *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: Valor del ajuste *Identifier Format* \n- *\\_\\_nameID\\_\\_*: NameID recibido desde el IdP cuando el usuario ha iniciado sesión \n- *\\_\\_sessionIndex\\_\\_*: SessionIndex recibido desde el IdP cuando el usuario ha cerrado sesión", "SAML_LogoutResponse_Template": "Plantilla de respuesta de cierre de sesión", - "SAML_LogoutResponse_Template_Description": "Las siguientes variables están disponibles: \n- **\\_\\_newId\\_\\_**: Cadena de identificación generada aleatoriamente \n- **\\_\\_inResponseToId\\_\\_**: ID de la respuesta de cierre de sesión recibida desde el IdP \n- **\\_\\_instant\\_\\_**: Fecha y hora actual \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL de inicio de sesión único de IDP a la que redireccionar \n- **\\_\\_issuer\\_\\_**: Valor del ajuste {{Custom Issuer}} \n- **\\_\\_identifierFormat\\_\\_**: Valor del ajuste {{Identifier Format}} \n- **\\_\\_nameID\\_\\_**: NameID recibido desde la solicitud de cierre de sesión de IdP \n- **\\_\\_sessionIndex\\_\\_**: SessionIndex recibido desde la solicitud de cierre de sesión de IdP", + "SAML_LogoutResponse_Template_Description": "Las siguientes variables están disponibles: \n- *\\_\\_newId\\_\\_*: Cadena de identificación generada aleatoriamente \n- *\\_\\_inResponseToId\\_\\_*: ID de la respuesta de cierre de sesión recibida desde el IdP \n- *\\_\\_instant\\_\\_*: Fecha y hora actual \n- *\\_\\_idpSLORedirectURL\\_\\_*: URL de inicio de sesión único de IDP a la que redireccionar \n- *\\_\\_issuer\\_\\_*: Valor del ajuste *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: Valor del ajuste *Identifier Format* \n- *\\_\\_nameID\\_\\_*: NameID recibido desde la solicitud de cierre de sesión de IdP \n- *\\_\\_sessionIndex\\_\\_*: SessionIndex recibido desde la solicitud de cierre de sesión de IdP", "SAML_MetadataCertificate_Template": "Plantilla de certificado de metadatos", - "SAML_Metadata_Certificate_Template_Description": "Las siguientes variables están disponibles: \n- **\\_\\_certificate\\_\\_**: Certificado privado para cifrado de aserción", + "SAML_Metadata_Certificate_Template_Description": "Las siguientes variables están disponibles: \n- *\\_\\_certificate\\_\\_*: Certificado privado para cifrado de aserción", "SAML_Metadata_Template": "Plantilla de metadatos", - "SAML_Metadata_Template_Description": "Las siguientes variables están disponibles: \n- **\\_\\_sloLocation\\_\\_**: URL de cierre de sesión única de Rocket.Chat \n- **\\_\\_issuer\\_\\_**: Valor del ajuste {{Custom Issuer}} \n- **\\_\\_identifierFormat\\_\\_**: Valor del ajuste {{Identifier Format}} \n- **\\_\\_certificateTag\\_\\_**: Si un certificado privado está configurado, esto incluirá el {{Metadata Certificate Template}}, de lo contrario se ignorará \n- **\\_\\_callbackUrl\\_\\_**: URL de respaldo de Rocket.Chat", + "SAML_Metadata_Template_Description": "Las siguientes variables están disponibles: \n- *\\_\\_sloLocation\\_\\_*: URL de cierre de sesión única de Rocket.Chat \n- *\\_\\_issuer\\_\\_*: Valor del ajuste *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: Valor del ajuste *Identifier Format* \n- *\\_\\_certificateTag\\_\\_*: Si un certificado privado está configurado, esto incluirá el {{Metadata Certificate Template}}, de lo contrario se ignorará \n- *\\_\\_callbackUrl\\_\\_*: URL de respaldo de Rocket.Chat", "SAML_NameIdPolicy_Template": "Plantilla de política de NameID", "SAML_NameIdPolicy_Template_Description": "Puedes usar cualquier variable de la plantilla de solicitud de autorización aquí.", "SAML_Role_Attribute_Name": "Nombre de atributo de rol", diff --git a/packages/i18n/src/locales/fi.i18n.json b/packages/i18n/src/locales/fi.i18n.json index 4b67fd7ff7088..640cd4aa58123 100644 --- a/packages/i18n/src/locales/fi.i18n.json +++ b/packages/i18n/src/locales/fi.i18n.json @@ -3656,13 +3656,13 @@ "SAML_Allowed_Clock_Drift": "Sallittu kellonajoitusvirhe Identiteettipalveluntarjoajaan verrattuna", "SAML_Allowed_Clock_Drift_Description": "Identiteettipalveluntarjoajan kello voi olla hieman edellä järjestelmän kelloja. Voit sallia pienen määrän kelloajon. Sen arvo on ilmoitettava millisekunteina (ms). Annettu arvo lisätään vastauksen validoinnin nykyiseen aikaan.", "SAML_AuthnContext_Template": "AuthnContext-malli", - "SAML_AuthnContext_Template_Description": "Voit käyttää tässä mitä tahansa muuttujaa AuthnRequest-mallista. \n \n Jos haluat lisätä lisää authn-konteksteja, kopioi {{AuthnContextClassRef}}-tunniste ja korvaa {{\\_\\_authnContext\\_\\}}-muuttuja uudella kontekstilla.", + "SAML_AuthnContext_Template_Description": "Voit käyttää tässä mitä tahansa muuttujaa AuthnRequest-mallista. \n \n Jos haluat lisätä lisää authn-konteksteja, kopioi `AuthnContextClassRef`-tunniste ja korvaa `\\_\\_authnContext\\_\\_`-muuttuja uudella kontekstilla.", "SAML_AuthnRequest_Template": "AuthnRequest-malli", - "SAML_AuthnRequest_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_newId\\_\\_**: Satunnaisesti luotu id-merkkijono \n- **\\_\\_instant\\_\\_**: Nykyinen aikaleima \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chatin takaisinkutsun URL-osoite. \n- **\\_\\_entryPoint\\_\\_**: {{Custom Entry Point}} -asetuksen arvo. \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} -asetuksen arvo. \n- **\\_\\_identifierFormatTag\\_\\_**: {{NameID Policy Template}} sisältö, jos voimassa oleva {{Identifier Format}} on määritetty. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} -asetuksen arvo. \n- **\\_\\_authnContextTag\\_\\_**: {{AuthnContext Template}} sisältö, jos voimassa oleva {{Custom Authn Context}} on määritetty. \n- **\\_\\_authnContextComparison\\_\\_**: {{Authn Context Comparison}} -asetuksen arvo. \n- **\\_\\_authnContext\\_\\_**: {{Custom Authn Context}} -asetuksen arvo.", + "SAML_AuthnRequest_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- *\\_\\_newId\\_\\_*: Satunnaisesti luotu id-merkkijono \n- *\\_\\_instant\\_\\_*: Nykyinen aikaleima \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chatin takaisinkutsun URL-osoite. \n- *\\_\\_entryPoint\\_\\_*: *Custom Entry Point* -asetuksen arvo. \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* -asetuksen arvo. \n- *\\_\\_identifierFormatTag\\_\\_*: *NameID Policy Template* sisältö, jos voimassa oleva *Identifier Format* on määritetty. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* -asetuksen arvo. \n- *\\_\\_authnContextTag\\_\\_*: *AuthnContext Template* sisältö, jos voimassa oleva *Custom Authn Context* on määritetty. \n- *\\_\\_authnContextComparison\\_\\_*: *Authn Context Comparison* -asetuksen arvo. \n- *\\_\\_authnContext\\_\\_*: *Custom Authn Context* -asetuksen arvo.", "SAML_Connection": "Yhteys", "SAML_Custom_Authn_Context": "Mukautettu Authn-konteksti", "SAML_Custom_Authn_Context_Comparison": "Authn kontekstin vertailu", - "SAML_Custom_Authn_Context_description": "Jätä tämä tyhjäksi, jos haluat jättää authn-kontekstin pois pyynnöstä. \n \n Jos haluat lisätä useita authn-konteksteja, lisää ylimääräiset kontekstit suoraan {{AuthnContext Template}} -asetukseen.", + "SAML_Custom_Authn_Context_description": "Jätä tämä tyhjäksi, jos haluat jättää authn-kontekstin pois pyynnöstä. \n \n Jos haluat lisätä useita authn-konteksteja, lisää ylimääräiset kontekstit suoraan *AuthnContext Template* -asetukseen.", "SAML_Custom_Cert": "Mukautettu varmenne", "SAML_Custom_Debug": "Ota vianmääritys käyttöön", "SAML_Custom_EMail_Field": "Sähköpostikentän nimi", @@ -3707,13 +3707,13 @@ "SAML_Identifier_Format": "Tunnisteen muoto", "SAML_Identifier_Format_Description": "Jätä tämä tyhjäksi, jos haluat jättää NameID-käytännön pois pyynnöstä.", "SAML_LogoutRequest_Template": "Uloskirjautumispyynnön malli", - "SAML_LogoutRequest_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_newId\\_\\_**: Satunnaisesti luotu id-merkkijono \n- **\\_\\_instant\\_\\_**: Nykyinen aikaleima \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP Single LogOut URL-osoite, johon ohjataan. \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} -asetuksen arvo. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} -asetuksen arvo. \n- **\\_\\_nameID\\_\\_**: IdP:ltä saatu NameID, kun käyttäjä kirjautui sisään. \n- **\\_\\_sessionIndex\\_\\_**: IdP:ltä saatu sessionIndex, kun käyttäjä kirjautui sisään.", + "SAML_LogoutRequest_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- *\\_\\_newId\\_\\_*: Satunnaisesti luotu id-merkkijono \n- *\\_\\_instant\\_\\_*: Nykyinen aikaleima \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP Single LogOut URL-osoite, johon ohjataan. \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* -asetuksen arvo. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* -asetuksen arvo. \n- *\\_\\_nameID\\_\\_*: IdP:ltä saatu NameID, kun käyttäjä kirjautui sisään. \n- *\\_\\_sessionIndex\\_\\_*: IdP:ltä saatu sessionIndex, kun käyttäjä kirjautui sisään.", "SAML_LogoutResponse_Template": "Uloskirjautumisvastauksen malli", - "SAML_LogoutResponse_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_newId\\_\\_**: Satunnaisesti luotu id-merkkijono \n- **\\_\\_inResponseToId\\_\\_**: IdP:ltä vastaanotetun uloskirjautumispyynnön tunnus \n- **\\_\\_instant\\_\\_**: Nykyinen aikaleima \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP:n yksittäisen uloskirjautumisen URL-osoite, johon ohjataan. \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} -asetuksen arvo. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} -asetuksen arvo. \n- **\\_\\_nameID\\_\\_**: IdP:n uloskirjautumispyynnöstä saatu NameID. \n- **\\_\\_sessionIndex\\_\\_**: IdP:n uloskirjautumispyynnöstä saatu sessionIndex.", + "SAML_LogoutResponse_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- *\\_\\_newId\\_\\_*: Satunnaisesti luotu id-merkkijono \n- *\\_\\_inResponseToId\\_\\_*: IdP:ltä vastaanotetun uloskirjautumispyynnön tunnus \n- *\\_\\_instant\\_\\_*: Nykyinen aikaleima \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP:n yksittäisen uloskirjautumisen URL-osoite, johon ohjataan. \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* -asetuksen arvo. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* -asetuksen arvo. \n- *\\_\\_nameID\\_\\_*: IdP:n uloskirjautumispyynnöstä saatu NameID. \n- *\\_\\_sessionIndex\\_\\_*: IdP:n uloskirjautumispyynnöstä saatu sessionIndex.", "SAML_MetadataCertificate_Template": "Metadatan varmenteen malli", - "SAML_Metadata_Certificate_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_certificate\\_\\_**: Yksityinen varmenne väitteen salausta varten.", + "SAML_Metadata_Certificate_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- *\\_\\_certificate\\_\\_*: Yksityinen varmenne väitteen salausta varten.", "SAML_Metadata_Template": "Metadatan tietomalli", - "SAML_Metadata_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chat Single LogOut URL-osoite. \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} -asetuksen arvo. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} -asetuksen arvo. \n- **\\_\\_certificateTag\\_\\_**: Jos yksityinen varmenne on määritetty, tämä sisältää {{Metadata Certificate Template}} -varmenteen mallin__, muutoin sitä ei oteta huomioon. \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chatin takaisinkutsun URL-osoite.", + "SAML_Metadata_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat Single LogOut URL-osoite. \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* -asetuksen arvo. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* -asetuksen arvo. \n- *\\_\\_certificateTag\\_\\_*: Jos yksityinen varmenne on määritetty, tämä sisältää {{Metadata Certificate Template}} -varmenteen mallin__, muutoin sitä ei oteta huomioon. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chatin takaisinkutsun URL-osoite.", "SAML_NameIdPolicy_Template": "NameID Policy malli", "SAML_NameIdPolicy_Template_Description": "Voit käyttää mitä tahansa muuttujaa Authorize Request Template -mallista.", "SAML_Role_Attribute_Name": "Rooli Attribuutin nimi", diff --git a/packages/i18n/src/locales/fr.i18n.json b/packages/i18n/src/locales/fr.i18n.json index 0e5b0e85292cc..2d163c10b4fda 100644 --- a/packages/i18n/src/locales/fr.i18n.json +++ b/packages/i18n/src/locales/fr.i18n.json @@ -3178,13 +3178,13 @@ "SAML_Allowed_Clock_Drift": "Dérive d'horloge du fournisseur d'identités autorisée", "SAML_Allowed_Clock_Drift_Description": "L'horloge du fournisseur d'identités peut être légèrement en avance sur les horloges de votre système. Vous pouvez autoriser une dérive d'horloge minimale. Cette valeur doit être exprimée en millisecondes (ms). Elle est ajoutée à l'heure actuelle à laquelle la réponse est validée.", "SAML_AuthnContext_Template": "Modèle AuthnContext", - "SAML_AuthnContext_Template_Description": "Vous pouvez utiliser n'importe quelle variable du modèle AuthnRequest. \n \nPour ajouter des contextes authn supplémentaires, dupliquez la balise {{AuthnContextClassRef}} et remplacez la variable {{\\_\\_authnContext\\_\\}} par le nouveau contexte.", + "SAML_AuthnContext_Template_Description": "Vous pouvez utiliser n'importe quelle variable du modèle AuthnRequest. \n \nPour ajouter des contextes authn supplémentaires, dupliquez la balise `AuthnContextClassRef` et remplacez la variable `\\_\\_authnContext\\_\\_` par le nouveau contexte.", "SAML_AuthnRequest_Template": "Modèle AuthnRequest", - "SAML_AuthnRequest_Template_Description": "Les variables suivantes sont disponibles : \n- **\\_\\_newId\\_\\_** : Chaîne d'ID générée aléatoirement \n- **\\_\\_instant\\_\\_** : Horodatage actuel \n- **\\_\\_callbackUrl\\_\\_** : URL de rappel Rocket.Chat. \n- **\\_\\_entryPoint\\_\\_** : Valeur du paramètre {{Custom Entry Point}}. \n- **\\_\\_issuer\\_\\_** : Valeur du paramètre {{Custom Issuer}}. \n- **\\_\\_identifierFormatTag\\_\\_** : Contenu de {{NameID Policy Template}} si un {{Identifier Format}} valide est configuré. \n- **\\_\\_identifierFormat\\_\\_** : Valeur du paramètre {{Identifier Format}}. \n- **\\_\\_authnContextTag\\_\\_** : Contenu de {{AuthnContext Template}} si un {{Custom Authn Context}} valide est configuré. \n- **\\_\\_authnContextComparison\\_\\_** : Valeur du paramètre {{Authn Context Comparison}}. \n- **\\_\\_authnContext\\_\\_** : Valeur du paramètre {{Custom Authn Context}}.", + "SAML_AuthnRequest_Template_Description": "Les variables suivantes sont disponibles : \n- *\\_\\_newId\\_\\_* : Chaîne d'ID générée aléatoirement \n- *\\_\\_instant\\_\\_* : Horodatage actuel \n- *\\_\\_callbackUrl\\_\\_* : URL de rappel Rocket.Chat. \n- *\\_\\_entryPoint\\_\\_* : Valeur du paramètre *Custom Entry Point*. \n- *\\_\\_issuer\\_\\_* : Valeur du paramètre *Custom Issuer*. \n- *\\_\\_identifierFormatTag\\_\\_* : Contenu de *NameID Policy Template* si un *Identifier Format* valide est configuré. \n- *\\_\\_identifierFormat\\_\\_* : Valeur du paramètre *Identifier Format*. \n- *\\_\\_authnContextTag\\_\\_* : Contenu de *AuthnContext Template* si un *Custom Authn Context* valide est configuré. \n- *\\_\\_authnContextComparison\\_\\_* : Valeur du paramètre *Authn Context Comparison*. \n- *\\_\\_authnContext\\_\\_* : Valeur du paramètre *Custom Authn Context*.", "SAML_Connection": "Connexion", "SAML_Custom_Authn_Context": "Contexte authn personnalisé", "SAML_Custom_Authn_Context_Comparison": "Comparaison du contexte authn ", - "SAML_Custom_Authn_Context_description": "Laissez ce champ vide pour omettre le contexte authn de la demande. \n \nPour ajouter plusieurs contextes authn, ajoutez les contextes supplémentaires directement au paramètre {{AuthnContext Template}}.", + "SAML_Custom_Authn_Context_description": "Laissez ce champ vide pour omettre le contexte authn de la demande. \n \nPour ajouter plusieurs contextes authn, ajoutez les contextes supplémentaires directement au paramètre *AuthnContext Template*.", "SAML_Custom_Cert": "Certificat personnalisé", "SAML_Custom_Debug": "Activer le débogage", "SAML_Custom_EMail_Field": "Nom du champ d'adresse e-mail", @@ -3228,13 +3228,13 @@ "SAML_Identifier_Format": "Format de l'identifiant", "SAML_Identifier_Format_Description": "Laissez ce champ vide pour omettre la politique NameID de la demande.", "SAML_LogoutRequest_Template": "Modèle de demande de déconnexion", - "SAML_LogoutRequest_Template_Description": "Les variables suivantes sont disponibles : \n- **\\_\\_newId\\_\\_** : Chaîne d'identificationt générée aléatoirement \n- **\\_\\_instant\\_\\_** : Horodatage actuel \n- **\\_\\_idpSLORedirectURL\\_\\_** : URL de déconnexion unique IDP vers laquelle effectuer la redirection. \n- **\\_\\_issuer\\_\\_** : Valeur du paramètre {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_** : Valeur du paramètre {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_** : NameID reçu de l'IdP lorsque l'utilisateur s'est connecté. \n- **\\_\\_sessionIndex\\_\\_** : SessionIndex reçu de l'IdP lorsque l'utilisateur s'est connecté.", + "SAML_LogoutRequest_Template_Description": "Les variables suivantes sont disponibles : \n- *\\_\\_newId\\_\\_* : Chaîne d'identificationt générée aléatoirement \n- *\\_\\_instant\\_\\_* : Horodatage actuel \n- *\\_\\_idpSLORedirectURL\\_\\_* : URL de déconnexion unique IDP vers laquelle effectuer la redirection. \n- *\\_\\_issuer\\_\\_* : Valeur du paramètre *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_* : Valeur du paramètre *Identifier Format*. \n- *\\_\\_nameID\\_\\_* : NameID reçu de l'IdP lorsque l'utilisateur s'est connecté. \n- *\\_\\_sessionIndex\\_\\_* : SessionIndex reçu de l'IdP lorsque l'utilisateur s'est connecté.", "SAML_LogoutResponse_Template": "Modèle de réponse de déconnexion", - "SAML_LogoutResponse_Template_Description": "Les variables suivantes sont disponibles : \n- **\\_\\_newId\\_\\_** : Chaîne d'identification générée aléatoirement \n- **\\_\\_inResponseToId\\_\\_** : ID de la demande de déconnexion reçue de l'IdP \n- **\\_\\_instant\\_\\_** : Horodatage actuel \n- **\\_\\_idpSLORedirectURL\\_\\_** : URL de déconnexion unique IDP vers laquelle effectuer la redirection. \n- **\\_\\_issuer\\_\\_** : Valeur du paramètre {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_** : Valeur du paramètre {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_** : NameID reçu de la demande de déconnexion IdP. \n- **\\_\\_sessionIndex\\_\\_** : SessionIndex reçu de la demande de déconnexion IdP.", + "SAML_LogoutResponse_Template_Description": "Les variables suivantes sont disponibles : \n- *\\_\\_newId\\_\\_* : Chaîne d'identification générée aléatoirement \n- *\\_\\_inResponseToId\\_\\_* : ID de la demande de déconnexion reçue de l'IdP \n- *\\_\\_instant\\_\\_* : Horodatage actuel \n- *\\_\\_idpSLORedirectURL\\_\\_* : URL de déconnexion unique IDP vers laquelle effectuer la redirection. \n- *\\_\\_issuer\\_\\_* : Valeur du paramètre *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_* : Valeur du paramètre *Identifier Format*. \n- *\\_\\_nameID\\_\\_* : NameID reçu de la demande de déconnexion IdP. \n- *\\_\\_sessionIndex\\_\\_* : SessionIndex reçu de la demande de déconnexion IdP.", "SAML_MetadataCertificate_Template": "Modèle de certificat de métadonnées", - "SAML_Metadata_Certificate_Template_Description": "Les variables suivantes sont disponibles : \n- **\\_\\_certificate\\_\\_** : Certificat privé pour le chiffrement des assertions.", + "SAML_Metadata_Certificate_Template_Description": "Les variables suivantes sont disponibles : \n- *\\_\\_certificate\\_\\_* : Certificat privé pour le chiffrement des assertions.", "SAML_Metadata_Template": "Modèle de métadonnées", - "SAML_Metadata_Template_Description": "Les variables suivantes sont disponibles : \n- **\\_\\_sloLocation\\_\\_** : URL de déconnexion unique Rocket.Chat. \n- **\\_\\_issuer\\_\\_** : Valeur du paramètre {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_** : Valeur du paramètre {{Identifier Format}}. \n- **\\_\\_certificateTag\\_\\_** : Si un certificat privé est configuré, {{Metadata Certificate Template}} est inclus ; sinon, il est ignoré. \n- **\\_\\_callbackUrl\\_\\_** : URL de rappel de Rocket.Chat.", + "SAML_Metadata_Template_Description": "Les variables suivantes sont disponibles : \n- *\\_\\_sloLocation\\_\\_* : URL de déconnexion unique Rocket.Chat. \n- *\\_\\_issuer\\_\\_* : Valeur du paramètre *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_* : Valeur du paramètre *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_* : Si un certificat privé est configuré, {{Metadata Certificate Template}} est inclus ; sinon, il est ignoré. \n- *\\_\\_callbackUrl\\_\\_* : URL de rappel de Rocket.Chat.", "SAML_NameIdPolicy_Template": "Modèle de politique NameID", "SAML_NameIdPolicy_Template_Description": "Vous pouvez utiliser ici n'importe quelle variable du modèle de demande d'autorisation.", "SAML_Role_Attribute_Name": "Nom d'attribut de rôle", diff --git a/packages/i18n/src/locales/hi-IN.i18n.json b/packages/i18n/src/locales/hi-IN.i18n.json index 8b48548e4dcb9..2860c1e547a8c 100644 --- a/packages/i18n/src/locales/hi-IN.i18n.json +++ b/packages/i18n/src/locales/hi-IN.i18n.json @@ -3899,13 +3899,13 @@ "SAML_Allowed_Clock_Drift": "पहचान प्रदाता से अनुमत क्लॉक ड्रिफ्ट", "SAML_Allowed_Clock_Drift_Description": "पहचान प्रदाता की घड़ी आपके सिस्टम घड़ियों से थोड़ी आगे बढ़ सकती है। आप थोड़ी मात्रा में घड़ी के बहाव की अनुमति दे सकते हैं। इसका मान कई मिलीसेकंड (एमएस) में दिया जाना चाहिए। दिया गया मान उस वर्तमान समय में जोड़ा जाता है जिस पर प्रतिक्रिया सत्यापित की जाती है।", "SAML_AuthnContext_Template": "AuthnContext टेम्पलेट", - "SAML_AuthnContext_Template_Description": "आप यहां AuthnRequest टेम्पलेट से किसी भी वेरिएबल का उपयोग कर सकते हैं।\n \n अतिरिक्त ऑथ्न संदर्भ जोड़ने के लिए, {{AuthnContextClassRef}} टैग को डुप्लिकेट करें और {{\\_\\_authnContext\\_\\}} वेरिएबल को नए संदर्भ से बदलें।", + "SAML_AuthnContext_Template_Description": "आप यहां AuthnRequest टेम्पलेट से किसी भी वेरिएबल का उपयोग कर सकते हैं।\n \n अतिरिक्त ऑथ्न संदर्भ जोड़ने के लिए, `AuthnContextClassRef` टैग को डुप्लिकेट करें और `\\_\\_authnContext\\_\\_` वेरिएबल को नए संदर्भ से बदलें।", "SAML_AuthnRequest_Template": "AuthnRequest टेम्पलेट", - "SAML_AuthnRequest_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- **\\_\\_newId\\_\\_**: यादृच्छिक रूप से उत्पन्न आईडी स्ट्रिंग\n- **\\_\\_तत्काल\\_\\_**: वर्तमान टाइमस्टैम्प\n- **\\_\\_कॉलबैकयूआरएल\\_\\_**: रॉकेट.चैट कॉलबैक यूआरएल।\n- **\\_\\_entryPoint\\_\\_**: {{Custom Entry Point}} सेटिंग का मान।\n- **\\_\\_जारीकर्ता\\_\\_**: {{Custom Issuer}} सेटिंग का मान।\n- **\\_\\_identifierFormatTag\\_\\_**: यदि वैध {{Identifier Format}} कॉन्फ़िगर किया गया है तो {{NameID Policy Template}} की सामग्री कॉन्फ़िगर की गई है।\n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} सेटिंग का मान।\n- **\\_\\_authnContextTag\\_\\_**: यदि वैध {{Custom Authn Context}} कॉन्फ़िगर किया गया है, तो {{AuthnContext Template}} की सामग्री कॉन्फ़िगर की गई है।\n- **\\_\\_authnContextComparison\\_\\_**: {{Authn Context Compare}} सेटिंग का मान।\n- **\\_\\_authnContext\\_\\_**: {{Custom Authn Context}} सेटिंग का मान.", + "SAML_AuthnRequest_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- *\\_\\_newId\\_\\_*: यादृच्छिक रूप से उत्पन्न आईडी स्ट्रिंग\n- **\\_\\_instant\\_\\_**: वर्तमान टाइमस्टैम्प\n- **\\_\\_callbackUrl\\_\\_**: रॉकेट.चैट कॉलबैक यूआरएल।\n- *\\_\\_entryPoint\\_\\_*: *Custom Entry Point* सेटिंग का मान।\n- **\\_\\_issuer\\_\\_**: *Custom Issuer* सेटिंग का मान।\n- *\\_\\_identifierFormatTag\\_\\_*: यदि वैध *Identifier Format* कॉन्फ़िगर किया गया है तो *NameID Policy Template* की सामग्री कॉन्फ़िगर की गई है।\n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* सेटिंग का मान।\n- *\\_\\_authnContextTag\\_\\_*: यदि वैध *Custom Authn Context* कॉन्फ़िगर किया गया है, तो *AuthnContext Template* की सामग्री कॉन्फ़िगर की गई है।\n- *\\_\\_authnContextComparison\\_\\_*: *Authn Context Compare* सेटिंग का मान।\n- *\\_\\_authnContext\\_\\_*: *Custom Authn Context* सेटिंग का मान.", "SAML_Connection": "संबंध", "SAML_Custom_Authn_Context": "कस्टम प्रमाणीकरण संदर्भ", "SAML_Custom_Authn_Context_Comparison": "प्रामाणिक संदर्भ तुलना", - "SAML_Custom_Authn_Context_description": "अनुरोध से प्रामाणिक संदर्भ हटाने के लिए इसे खाली छोड़ दें।\n \n एकाधिक प्रामाणिक संदर्भ जोड़ने के लिए, अतिरिक्त संदर्भों को सीधे {{AuthnContext Template}} सेटिंग में जोड़ें।", + "SAML_Custom_Authn_Context_description": "अनुरोध से प्रामाणिक संदर्भ हटाने के लिए इसे खाली छोड़ दें।\n \n एकाधिक प्रामाणिक संदर्भ जोड़ने के लिए, अतिरिक्त संदर्भों को सीधे *AuthnContext Template* सेटिंग में जोड़ें।", "SAML_Custom_Cert": "कस्टम प्रमाणपत्र", "SAML_Custom_Debug": "डिबग सक्षम करें", "SAML_Custom_EMail_Field": "ई-मेल फ़ील्ड का नाम", @@ -3949,13 +3949,13 @@ "SAML_Identifier_Format": "पहचानकर्ता प्रारूप", "SAML_Identifier_Format_Description": "अनुरोध से NameID नीति को हटाने के लिए इसे खाली छोड़ दें।", "SAML_LogoutRequest_Template": "लॉगआउट अनुरोध टेम्पलेट", - "SAML_LogoutRequest_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- **\\_\\_newId\\_\\_**: यादृच्छिक रूप से उत्पन्न आईडी स्ट्रिंग\n- **\\_\\_तत्काल\\_\\_**: वर्तमान टाइमस्टैम्प\n- **\\_\\_idpSLORedirectURL\\_\\_**: रीडायरेक्ट करने के लिए आईडीपी सिंगल लॉगआउट यूआरएल।\n- **\\_\\_जारीकर्ता\\_\\_**: {{Custom Issuer}} सेटिंग का मान।\n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} सेटिंग का मान।\n- **\\_\\_nameID\\_\\_**: उपयोगकर्ता द्वारा लॉग इन करने पर आईडीपी से प्राप्त NameID।\n- **\\_\\_sessionIndex\\_\\_**: उपयोगकर्ता द्वारा लॉग इन करने पर आईडीपी से सेशन इंडेक्स प्राप्त होता है।", + "SAML_LogoutRequest_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- *\\_\\_newId\\_\\_*: यादृच्छिक रूप से उत्पन्न आईडी स्ट्रिंग\n- **\\_\\_तत्काल\\_\\_**: वर्तमान टाइमस्टैम्प\n- *\\_\\_idpSLORedirectURL\\_\\_*: रीडायरेक्ट करने के लिए आईडीपी सिंगल लॉगआउट यूआरएल।\n- **\\_\\_जारीकर्ता\\_\\_**: *Custom Issuer* सेटिंग का मान।\n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* सेटिंग का मान।\n- *\\_\\_nameID\\_\\_*: उपयोगकर्ता द्वारा लॉग इन करने पर आईडीपी से प्राप्त NameID।\n- *\\_\\_sessionIndex\\_\\_*: उपयोगकर्ता द्वारा लॉग इन करने पर आईडीपी से सेशन इंडेक्स प्राप्त होता है।", "SAML_LogoutResponse_Template": "लॉगआउट प्रतिक्रिया टेम्पलेट", - "SAML_LogoutResponse_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- **\\_\\_newId\\_\\_**: यादृच्छिक रूप से उत्पन्न आईडी स्ट्रिंग\n- **\\_\\_inResponseToId\\_\\_**: आईडीपी से प्राप्त लॉगआउट अनुरोध की आईडी\n- **\\_\\_तत्काल\\_\\_**: वर्तमान टाइमस्टैम्प\n- **\\_\\_idpSLORedirectURL\\_\\_**: रीडायरेक्ट करने के लिए आईडीपी सिंगल लॉगआउट यूआरएल।\n- **\\_\\_जारीकर्ता\\_\\_**: {{Custom Issuer}} सेटिंग का मान।\n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} सेटिंग का मान।\n- **\\_\\_nameID\\_\\_**: IdP लॉगआउट अनुरोध से प्राप्त NameID।\n- **\\_\\_sessionIndex\\_\\_**: IdP लॉगआउट अनुरोध से प्राप्त sessionIndex।", + "SAML_LogoutResponse_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- *\\_\\_newId\\_\\_*: यादृच्छिक रूप से उत्पन्न आईडी स्ट्रिंग\n- *\\_\\_inResponseToId\\_\\_*: आईडीपी से प्राप्त लॉगआउट अनुरोध की आईडी\n- **\\_\\_तत्काल\\_\\_**: वर्तमान टाइमस्टैम्प\n- *\\_\\_idpSLORedirectURL\\_\\_*: रीडायरेक्ट करने के लिए आईडीपी सिंगल लॉगआउट यूआरएल।\n- **\\_\\_जारीकर्ता\\_\\_**: *Custom Issuer* सेटिंग का मान।\n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* सेटिंग का मान।\n- *\\_\\_nameID\\_\\_*: IdP लॉगआउट अनुरोध से प्राप्त NameID।\n- *\\_\\_sessionIndex\\_\\_*: IdP लॉगआउट अनुरोध से प्राप्त sessionIndex।", "SAML_MetadataCertificate_Template": "मेटाडेटा प्रमाणपत्र टेम्पलेट", "SAML_Metadata_Certificate_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- **\\_\\_प्रमाणपत्र\\_\\_**: दावा एन्क्रिप्शन के लिए निजी प्रमाणपत्र।", "SAML_Metadata_Template": "मेटाडेटा टेम्पलेट", - "SAML_Metadata_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- **\\_\\_sloLocation\\_\\_**: रॉकेट.चैट सिंगल लॉगआउट यूआरएल।\n- **\\_\\_जारीकर्ता\\_\\_**: {{Custom Issuer}} सेटिंग का मान।\n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} सेटिंग का मान।\n- **\\_\\_certificateTag\\_\\_**: यदि कोई निजी प्रमाणपत्र कॉन्फ़िगर किया गया है, तो इसमें {{Metadata Certificate Template}} शामिल होगा, अन्यथा इसे अनदेखा कर दिया जाएगा।\n- **\\_\\_कॉलबैकयूआरएल\\_\\_**: रॉकेट.चैट कॉलबैक यूआरएल।", + "SAML_Metadata_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- *\\_\\_sloLocation\\_\\_*: रॉकेट.चैट सिंगल लॉगआउट यूआरएल।\n- **\\_\\_जारीकर्ता\\_\\_**: *Custom Issuer* सेटिंग का मान।\n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* सेटिंग का मान।\n- *\\_\\_certificateTag\\_\\_*: यदि कोई निजी प्रमाणपत्र कॉन्फ़िगर किया गया है, तो इसमें {{Metadata Certificate Template}} शामिल होगा, अन्यथा इसे अनदेखा कर दिया जाएगा।\n- **\\_\\_कॉलबैकयूआरएल\\_\\_**: रॉकेट.चैट कॉलबैक यूआरएल।", "SAML_NameIdPolicy_Template": "NameID नीति टेम्पलेट", "SAML_NameIdPolicy_Template_Description": "आप यहां अधिकृत अनुरोध टेम्पलेट से किसी भी वेरिएबल का उपयोग कर सकते हैं।", "SAML_Role_Attribute_Name": "भूमिका विशेषता का नाम", diff --git a/packages/i18n/src/locales/hu.i18n.json b/packages/i18n/src/locales/hu.i18n.json index 5e8187509b8bf..85d1c202d0ab0 100644 --- a/packages/i18n/src/locales/hu.i18n.json +++ b/packages/i18n/src/locales/hu.i18n.json @@ -3444,13 +3444,13 @@ "SAML_Allowed_Clock_Drift": "Az identitásszolgáltatótól megengedett óraeltolódás", "SAML_Allowed_Clock_Drift_Description": "Az identitásszolgáltató órája kissé előrébb járhat, mint a rendszer órái. Engedélyezhet egy kis mértékű óraeltolódást. Az értékét ezredmásodpercben (ms) kell megadni. A megadott érték hozzáadódik az aktuális időhöz, amelynél a válasz érvényesítésre kerül.", "SAML_AuthnContext_Template": "AuthN-környezet sablon", - "SAML_AuthnContext_Template_Description": "Itt bármelyik változót használhatja az AuthN-kérés sablonjából. \n \n További authn környezetek hozzáadásához kettőzze meg az {{AuthnContextClassRef}} címkét, és cserélje ki az {{\\_\\_authnContext\\_\\}} változót az új környezetre.", + "SAML_AuthnContext_Template_Description": "Itt bármelyik változót használhatja az AuthN-kérés sablonjából. \n \n További authn környezetek hozzáadásához kettőzze meg az `AuthnContextClassRef` címkét, és cserélje ki az `\\_\\_authnContext\\_\\_` változót az új környezetre.", "SAML_AuthnRequest_Template": "AuthN-kérés sablon", - "SAML_AuthnRequest_Template_Description": "A következő változók érhetők el: \n- **\\_\\_newId\\_\\_**: véletlenszerűen előállított azonosító-karakterlánc. \n- **\\_\\_instant\\_\\_**: jelenlegi időbélyeg. \n- **\\_\\_callbackUrl\\_\\_**: a Rocket.Chat visszahívási URL-je. \n- **\\_\\_entryPoint\\_\\_**: az {{egyéni belépési pont}} beállítás értéke. \n- **\\_\\_issuer\\_\\_**: az {{egyéni kibocsátó}} beállítás értéke. \n- **\\_\\_identifierFormatTag\\_\\_**: a {{NameID házirend sablon}} tartalma, ha érvényes {{azonosítóformátum}} van beállítva. \n- **\\_\\_identifierFormat\\_\\_**: az {{azonosítóformátum}} beállítás értéke. \n- **\\_\\_authnContextTag\\_\\_**: az {{AuthN-környezet sablon}} tartalma, ha érvényes {{egyéni AuthN-környezet}} van beállítva. \n- **\\_\\_authnContextComparison\\_\\_**: az {{AuthN-környezet összehasonlítása}} beállítás értéke. \n- **\\_\\_authnContext\\_\\_**: az {{egyéni AuthN-környezet}} beállítás értéke.", + "SAML_AuthnRequest_Template_Description": "A következő változók érhetők el: \n- *\\_\\_newId\\_\\_*: véletlenszerűen előállított azonosító-karakterlánc. \n- *\\_\\_instant\\_\\_*: jelenlegi időbélyeg. \n- *\\_\\_callbackUrl\\_\\_*: a Rocket.Chat visszahívási URL-je. \n- *\\_\\_entryPoint\\_\\_*: az *egyéni belépési pont* beállítás értéke. \n- *\\_\\_issuer\\_\\_*: az *egyéni kibocsátó* beállítás értéke. \n- *\\_\\_identifierFormatTag\\_\\_*: a *NameID házirend sablon* tartalma, ha érvényes *azonosítóformátum* van beállítva. \n- *\\_\\_identifierFormat\\_\\_*: az *azonosítóformátum* beállítás értéke. \n- *\\_\\_authnContextTag\\_\\_*: az *AuthN-környezet sablon* tartalma, ha érvényes *egyéni AuthN-környezet* van beállítva. \n- *\\_\\_authnContextComparison\\_\\_*: az *AuthN-környezet összehasonlítása* beállítás értéke. \n- *\\_\\_authnContext\\_\\_*: az *egyéni AuthN-környezet* beállítás értéke.", "SAML_Connection": "Kapcsolat", "SAML_Custom_Authn_Context": "Egyéni AuthN-környezet", "SAML_Custom_Authn_Context_Comparison": "AuthN-környezet összehasonlítása", - "SAML_Custom_Authn_Context_description": "Hagyja ezt üresen az AuthN-környezetnek a kérésből való kihagyásához. \n \n Több AuthN-környezet hozzáadásához adja hozzá a továbbiakat közvetlenül az {{AuthN-környezet sablon}} beállításhoz.", + "SAML_Custom_Authn_Context_description": "Hagyja ezt üresen az AuthN-környezetnek a kérésből való kihagyásához. \n \n Több AuthN-környezet hozzáadásához adja hozzá a továbbiakat közvetlenül az *AuthN-környezet sablon* beállításhoz.", "SAML_Custom_Cert": "Egyéni tanúsítvány", "SAML_Custom_Debug": "Hibakeresés engedélyezése", "SAML_Custom_EMail_Field": "E-mail mező neve", @@ -3495,13 +3495,13 @@ "SAML_Identifier_Format": "Azonosítóformátum", "SAML_Identifier_Format_Description": "Hagyja ezt üresen a NameID házirendnek a kérésből való kihagyásához.", "SAML_LogoutRequest_Template": "Kijelentkezés kéréssablonja", - "SAML_LogoutRequest_Template_Description": "A következő változók érhetők el: \n- **\\_\\_newId\\_\\_**: véletlenszerűen előállított azonosító-karakterlánc. \n- **\\_\\_instant\\_\\_**: jelenlegi időbélyeg. \n- **\\_\\_idpSLORedirectURL\\_\\_**: az IDP önálló kijelentkezési URL-je az oda történő átirányításhoz. \n- **\\_\\_issuer\\_\\_**: az {{egyéni kibocsátó}} beállítás értéke. \n- **\\_\\_identifierFormat\\_\\_**: az {{azonosítóformátum}} beállítás értéke. \n- **\\_\\_nameID\\_\\_**: az IDP-től kapott NameID, ha a felhasználó bejelentkezett. \n- **\\_\\_sessionIndex\\_\\_**: az IDP-től kapott munkamenetindex, ha a felhasználó bejelentkezett.", + "SAML_LogoutRequest_Template_Description": "A következő változók érhetők el: \n- *\\_\\_newId\\_\\_*: véletlenszerűen előállított azonosító-karakterlánc. \n- *\\_\\_instant\\_\\_*: jelenlegi időbélyeg. \n- *\\_\\_idpSLORedirectURL\\_\\_*: az IDP önálló kijelentkezési URL-je az oda történő átirányításhoz. \n- *\\_\\_issuer\\_\\_*: az *egyéni kibocsátó* beállítás értéke. \n- *\\_\\_identifierFormat\\_\\_*: az *azonosítóformátum* beállítás értéke. \n- *\\_\\_nameID\\_\\_*: az IDP-től kapott NameID, ha a felhasználó bejelentkezett. \n- *\\_\\_sessionIndex\\_\\_*: az IDP-től kapott munkamenetindex, ha a felhasználó bejelentkezett.", "SAML_LogoutResponse_Template": "Kijelentkezés válaszsablonja", - "SAML_LogoutResponse_Template_Description": "A következő változók érhetők el: \n- **\\_\\_newId\\_\\_**: véletlenszerűen előállított azonosító-karakterlánc. \n- **\\_\\_inResponseToId\\_\\_**: az IDP-től kapott kijelentkezési kérés azonosítója. \n- **\\_\\_instant\\_\\_**: jelenlegi időbélyeg. \n- **\\_\\_idpSLORedirectURL\\_\\_**: az IDP önálló kijelentkezési URL-je az oda történő átirányításhoz. \n- **\\_\\_issuer\\_\\_**: az {{egyéni kibocsátó}} beállítás értéke. \n- **\\_\\_identifierFormat\\_\\_**: az {{azonosítóformátum}} beállítás értéke. \n- **\\_\\_nameID\\_\\_**: az IDP kijelentkezési kérésétől kapott NameID. \n- **\\_\\_sessionIndex\\_\\_**: az IDP kijelentkezési kérésétől kapott munkamenetindex.", + "SAML_LogoutResponse_Template_Description": "A következő változók érhetők el: \n- *\\_\\_newId\\_\\_*: véletlenszerűen előállított azonosító-karakterlánc. \n- *\\_\\_inResponseToId\\_\\_*: az IDP-től kapott kijelentkezési kérés azonosítója. \n- *\\_\\_instant\\_\\_*: jelenlegi időbélyeg. \n- *\\_\\_idpSLORedirectURL\\_\\_*: az IDP önálló kijelentkezési URL-je az oda történő átirányításhoz. \n- *\\_\\_issuer\\_\\_*: az *egyéni kibocsátó* beállítás értéke. \n- *\\_\\_identifierFormat\\_\\_*: az *azonosítóformátum* beállítás értéke. \n- *\\_\\_nameID\\_\\_*: az IDP kijelentkezési kérésétől kapott NameID. \n- *\\_\\_sessionIndex\\_\\_*: az IDP kijelentkezési kérésétől kapott munkamenetindex.", "SAML_MetadataCertificate_Template": "Metaadattanúsítvány-sablon", - "SAML_Metadata_Certificate_Template_Description": "A következő változók érhetők el: \n- **\\_\\_certificate\\_\\_**: a személyes tanúsítvány a helyességi feltétel titkosításához.", + "SAML_Metadata_Certificate_Template_Description": "A következő változók érhetők el: \n- *\\_\\_certificate\\_\\_*: a személyes tanúsítvány a helyességi feltétel titkosításához.", "SAML_Metadata_Template": "Metaadatsablon", - "SAML_Metadata_Template_Description": "A következő változók érhetők el: \n- **\\_\\_sloLocation\\_\\_**: a Rocket.Chat önálló kijelentkezési URL-je. \n- **\\_\\_issuer\\_\\_**: az {{egyéni kibocsátó}} beállítás értéke. \n- **\\_\\_identifierFormat\\_\\_**: az {{azonosítóformátum}} beállítás értéke. \n- **\\_\\_certificateTag\\_\\_**: ha személyes tanúsítvány van beállítva, akkor ez tartalmazni fogja a {{metaadattanúsítvány-sablont}}, egyébként mellőzve lesz. \n- **\\_\\_callbackUrl\\_\\_**: a Rocket.Chat visszahívási URL-je.", + "SAML_Metadata_Template_Description": "A következő változók érhetők el: \n- *\\_\\_sloLocation\\_\\_*: a Rocket.Chat önálló kijelentkezési URL-je. \n- *\\_\\_issuer\\_\\_*: az *egyéni kibocsátó* beállítás értéke. \n- *\\_\\_identifierFormat\\_\\_*: az *azonosítóformátum* beállítás értéke. \n- *\\_\\_certificateTag\\_\\_*: ha személyes tanúsítvány van beállítva, akkor ez tartalmazni fogja a *metaadattanúsítvány-sablont*, egyébként mellőzve lesz. \n- *\\_\\_callbackUrl\\_\\_*: a Rocket.Chat visszahívási URL-je.", "SAML_NameIdPolicy_Template": "NameID házirend sablon", "SAML_NameIdPolicy_Template_Description": "Itt bármelyik változót használhatja az engedélyezési kérés sablonjából.", "SAML_Role_Attribute_Name": "Szerep attribútum neve", diff --git a/packages/i18n/src/locales/ja.i18n.json b/packages/i18n/src/locales/ja.i18n.json index 427e6309f82a8..4b128913a3744 100644 --- a/packages/i18n/src/locales/ja.i18n.json +++ b/packages/i18n/src/locales/ja.i18n.json @@ -3151,13 +3151,13 @@ "SAML_Allowed_Clock_Drift": "IDプロバイダーからのクロックドリフトを許可しました", "SAML_Allowed_Clock_Drift_Description": "IDプロバイダーのクロックは、システムクロックよりわずかに進んでいる場合があります。少量のクロックドリフトを許容できます。その値は、ミリ秒(ms)単位で指定する必要があります。指定された値は、応答が検証される現在の時刻に追加されます。", "SAML_AuthnContext_Template": "AuthnContextテンプレート", - "SAML_AuthnContext_Template_Description": "ここでは、AuthnRequestテンプレートの任意の変数を使用できます。 \n \nauthnコンテキストをさらに追加するには、{{AuthnContextClassRef}}タグを複製し、{{\\_\\_authnContext\\_\\}}変数を新しいコンテキストに置き換えます。", + "SAML_AuthnContext_Template_Description": "ここでは、AuthnRequestテンプレートの任意の変数を使用できます。 \n \nauthnコンテキストをさらに追加するには、`AuthnContextClassRef`タグを複製し、`\\_\\_authnContext\\_\\_`変数を新しいコンテキストに置き換えます。", "SAML_AuthnRequest_Template": "AuthnRequestテンプレート", - "SAML_AuthnRequest_Template_Description": "次の変数を使用できます。 \n- **\\_\\_newId\\_\\_**:ランダムに生成されたID文字列 \n- **\\_\\_instant\\_\\_**:現在のタイムスタンプ \n- **\\_\\_callbackUrl\\_\\_**:Rocket.ChatコールバックURL \n- **\\_\\_entryPoint\\_\\_**:{{Custom Entry Point}}設定の値 \n- **\\_\\_issuer\\_\\_**:{{Custom Issuer}}設定の値 \n- **\\_\\_identifierFormatTag\\_\\_**:有効な{{Identifier Format}}が構成されている場合の{{NameID Policy Template}}の内容 \n- **\\_\\_identifierFormat\\_\\_**:{{Identifier Format}}設定の値 \n- **\\_\\_authnContextTag\\_\\_**:有効な{{Custom Authn Context}}が構成されている場合の {{AuthnContext Template}} の内容 \n- **\\_\\_authnContextComparison\\_\\_**:{{Authn Context Comparison}}設定の値 \n- **\\_\\_authnContext\\_\\_**:{{Custom Authn Context}}設定の値", + "SAML_AuthnRequest_Template_Description": "次の変数を使用できます。 \n- *\\_\\_newId\\_\\_*:ランダムに生成されたID文字列 \n- *\\_\\_instant\\_\\_*:現在のタイムスタンプ \n- *\\_\\_callbackUrl\\_\\_*:Rocket.ChatコールバックURL \n- *\\_\\_entryPoint\\_\\_*:*Custom Entry Point*設定の値 \n- *\\_\\_issuer\\_\\_*:*Custom Issuer*設定の値 \n- *\\_\\_identifierFormatTag\\_\\_*:有効な*Identifier Format*が構成されている場合の*NameID Policy Template*の内容 \n- *\\_\\_identifierFormat\\_\\_*:*Identifier Format*設定の値 \n- *\\_\\_authnContextTag\\_\\_*:有効な*Custom Authn Context*が構成されている場合の *AuthnContext Template* の内容 \n- *\\_\\_authnContextComparison\\_\\_*:*Authn Context Comparison*設定の値 \n- *\\_\\_authnContext\\_\\_*:*Custom Authn Context*設定の値", "SAML_Connection": "接続", "SAML_Custom_Authn_Context": "カスタム認証コンテキスト", "SAML_Custom_Authn_Context_Comparison": "認証コンテキストの比較", - "SAML_Custom_Authn_Context_description": "要求からauthnコンテキストを除外するには、これを空のままにします。 \n \n複数の認証コンテキストを追加するには、{{AuthnContext Template}}設定に直接追加します。", + "SAML_Custom_Authn_Context_description": "要求からauthnコンテキストを除外するには、これを空のままにします。 \n \n複数の認証コンテキストを追加するには、*AuthnContext Template*設定に直接追加します。", "SAML_Custom_Cert": "カスタム証明書", "SAML_Custom_Debug": "デバッグを有効にする", "SAML_Custom_EMail_Field": "メールのフィールド名", @@ -3201,13 +3201,13 @@ "SAML_Identifier_Format": "識別子の形式", "SAML_Identifier_Format_Description": "要求からNameIDポリシーを除外するには、これを空のままにします。", "SAML_LogoutRequest_Template": "ログアウト要求テンプレート", - "SAML_LogoutRequest_Template_Description": "次の変数を使用できます。 \n- **\\_\\_newId\\_\\_**:ランダムに生成されたID文字列 \n- **\\_\\_instant\\_\\_**:現在のタイムスタンプ \n- **\\_\\_idpSLORedirectURL\\_\\_**:リダイレクト先のIDPシングルログアウトURL \n- **\\_\\_issuer\\_\\_**:{{Custom Issuer}}設定の値 \n- **\\_\\_ identifierFormat\\_\\_**:{{Identifier Format}}設定の値 \n- **\\_\\_ nameID\\_\\_**:ユーザーがログインしたときにIdPから受け取ったNameID \n- **\\_\\_sessionIndex\\_\\_**:ユーザーがログインしたときにIdPから受け取ったsessionIndex", + "SAML_LogoutRequest_Template_Description": "次の変数を使用できます。 \n- *\\_\\_newId\\_\\_*:ランダムに生成されたID文字列 \n- *\\_\\_instant\\_\\_*:現在のタイムスタンプ \n- *\\_\\_idpSLORedirectURL\\_\\_*:リダイレクト先のIDPシングルログアウトURL \n- *\\_\\_issuer\\_\\_*:*Custom Issuer*設定の値 \n- **\\_\\_ identifierFormat\\_\\_**:*Identifier Format*設定の値 \n- **\\_\\_ nameID\\_\\_**:ユーザーがログインしたときにIdPから受け取ったNameID \n- *\\_\\_sessionIndex\\_\\_*:ユーザーがログインしたときにIdPから受け取ったsessionIndex", "SAML_LogoutResponse_Template": "ログアウト応答テンプレート", - "SAML_LogoutResponse_Template_Description": "次の変数を使用できます。 \n- **\\_\\_newId\\_\\_**:ランダムに生成されたID文字列 \n- **\\_\\_inResponseToId\\_\\_**:IdPから受信したログアウト要求のID \n- **\\_\\_instant\\_\\_**:現在のタイムスタンプ \n- **\\_\\_idpSLORedirectURL\\_\\_**:リダイレクト先のIDPシングルログアウトURL \n- **\\_\\_issuer\\_\\_**:{{Custom Issuer}}設定の値 \n- **\\_\\_identifierFormat\\_\\_**:{{Identifier Format}}設定の値 \n- **\\_\\_nameID\\_\\_**:IdPログアウト要求から受信したNameID \n- **\\_\\_sessionIndex\\_\\_**:IdPログアウト要求から受信したsessionIndex", + "SAML_LogoutResponse_Template_Description": "次の変数を使用できます。 \n- *\\_\\_newId\\_\\_*:ランダムに生成されたID文字列 \n- *\\_\\_inResponseToId\\_\\_*:IdPから受信したログアウト要求のID \n- *\\_\\_instant\\_\\_*:現在のタイムスタンプ \n- *\\_\\_idpSLORedirectURL\\_\\_*:リダイレクト先のIDPシングルログアウトURL \n- *\\_\\_issuer\\_\\_*:*Custom Issuer*設定の値 \n- *\\_\\_identifierFormat\\_\\_*:*Identifier Format*設定の値 \n- *\\_\\_nameID\\_\\_*:IdPログアウト要求から受信したNameID \n- *\\_\\_sessionIndex\\_\\_*:IdPログアウト要求から受信したsessionIndex", "SAML_MetadataCertificate_Template": "メタデータ証明書テンプレート", - "SAML_Metadata_Certificate_Template_Description": "次の変数を使用できます。 \n- **\\_\\_certificate\\_\\_**:アサーション暗号化のプライベート証明書。", + "SAML_Metadata_Certificate_Template_Description": "次の変数を使用できます。 \n- *\\_\\_certificate\\_\\_*:アサーション暗号化のプライベート証明書。", "SAML_Metadata_Template": "メタデータテンプレート", - "SAML_Metadata_Template_Description": "次の変数を使用できます。 \n- **\\_\\_sloLocation\\_\\_**:Rocket.ChatのシングルログアウトURL。 \n- **\\_\\_issuer\\_\\_**:{{Custom Issuer}}設定の値 \n- **\\_\\_identifierFormat\\_\\_**:{{Identifier Format}}設定の値 \n- **\\_\\_certificateTag\\_\\_**:プライベート証明書が設定されている場合、これには{{Metadata Certificate Template}}が含まれます。それ以外の場合は無視されます \n- **\\_\\_callbackUrl\\_\\_**:Rocket.ChatコールバックURL", + "SAML_Metadata_Template_Description": "次の変数を使用できます。 \n- *\\_\\_sloLocation\\_\\_*:Rocket.ChatのシングルログアウトURL。 \n- *\\_\\_issuer\\_\\_*:*Custom Issuer*設定の値 \n- *\\_\\_identifierFormat\\_\\_*:*Identifier Format*設定の値 \n- *\\_\\_certificateTag\\_\\_*:プライベート証明書が設定されている場合、これには{{Metadata Certificate Template}}が含まれます。それ以外の場合は無視されます \n- *\\_\\_callbackUrl\\_\\_*:Rocket.ChatコールバックURL", "SAML_NameIdPolicy_Template": "NameIDポリシーテンプレート", "SAML_NameIdPolicy_Template_Description": "ここでは、承認要求テンプレートの任意の変数を使用できます。", "SAML_Role_Attribute_Name": "ロール属性名", diff --git a/packages/i18n/src/locales/ko.i18n.json b/packages/i18n/src/locales/ko.i18n.json index c93e4b8b97d7f..01d79c5eb0582 100644 --- a/packages/i18n/src/locales/ko.i18n.json +++ b/packages/i18n/src/locales/ko.i18n.json @@ -2719,12 +2719,12 @@ "SAML_Allowed_Clock_Drift": " Identity Provider로부터 허용 된 clock drift", "SAML_Allowed_Clock_Drift_Description": "ID 공급자의 Clock은 시스템 Clock보다 약간 앞설 수 있습니다. 소량의 Clock Drift를 허용 할 수 있고, 밀리 초 (ms) 단위로 설정 할 수 있습니다. 주어진 값은 응답받은 현재 시간에 추가하여 검증됩니다.", "SAML_AuthnContext_Template": "AuthnContext 템플릿", - "SAML_AuthnContext_Template_Description": "여기에서 AuthnRequest 템플릿의 모든 변수를 사용할 수 있습니다. \n \n인증 컨텍스트를 추가하려면, {{AuthnContextClassRef}} 태그를 복제하고 {{ \\ _ \\ _ authnContext \\ _ \\ }}_ 변수를 새 컨텍스트로 바꾸십시오.", + "SAML_AuthnContext_Template_Description": "여기에서 AuthnRequest 템플릿의 모든 변수를 사용할 수 있습니다. \n \n인증 컨텍스트를 추가하려면, `AuthnContextClassRef` 태그를 복제하고 *\\_\\_authnContext\\_\\_* 변수를 새 컨텍스트로 바꾸십시오.", "SAML_AuthnRequest_Template": "AuthnRequest 템플릿", - "SAML_AuthnRequest_Template_Description": "다음 변수를 사용할 수 있습니다. : \n -**\\_\\_newId\\_\\_**: 임의로 생성 된 id 문자열 \n -**\\_\\_instant\\_\\_**: 현재 타임 스탬프 \n -**\\_\\callbackUrl\\_\\_**: Rocket.Chat 콜백 URL. \n -** \\_\\_entryPoint\\_\\_**: {{Custom Entry Point}} 설정의 값입니다. \n -**\\_\\_issuer\\_\\_**: {{Custom Issuer}} 설정의 값입니다. \n -**\\_\\_identifierFormatTag\\_\\_**: 유효한 {{Identifier Format}}이 구성된 경우 {{NameID 정책 템플릿}} 의 내용입니다. \n -**\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} 설정의 값입니다. \n -**\\_\\_authnContextTag\\_\\_**: 유효한 {{Custom Authn Context}}가 구성된 경우 {{AuthnContext Template}}의 내용입니다. \n -**\\_\\_authnContextComparison\\_\\_**: {{Authn Context Comparison}} 설정의 값입니다. \n -**\\_\\_authnContext\\_\\_**: {{Custom Authn Context}} 설정의 값입니다.", + "SAML_AuthnRequest_Template_Description": "다음 변수를 사용할 수 있습니다. : \n - *\\_\\_newId\\_\\_*: 임의로 생성 된 id 문자열 \n - *\\_\\_instant\\_\\_*: 현재 타임 스탬프 \n - *\\_\\_callbackUrl\\_\\_*: Rocket.Chat 콜백 URL. \n - *\\_\\_entryPoint\\_\\_*: *Custom Entry Point* 설정의 값입니다. \n - *\\_\\_issuer\\_\\_*: *Custom Issuer* 설정의 값입니다. \n - *\\_\\_identifierFormatTag\\_\\_*: 유효한 *Identifier Format*이 구성된 경우 *NameID 정책 템플릿* 의 내용입니다. \n - *\\_\\_identifierFormat\\_\\_*: *Identifier Format* 설정의 값입니다. \n - *\\_\\_authnContextTag\\_\\_*: 유효한 *Custom Authn Context*가 구성된 경우 *AuthnContext Template*의 내용입니다. \n - *\\_\\_authnContextComparison\\_\\_*: *Authn Context Comparison* 설정의 값입니다. \n - *\\_\\_authnContext\\_\\_*: *Custom Authn Context* 설정의 값입니다.", "SAML_Custom_Authn_Context": "사용자 정의 인증 컨텍스트", "SAML_Custom_Authn_Context_Comparison": "인증 된 컨텍스트 비교", - "SAML_Custom_Authn_Context_description": "요청에서 인증 컨텍스트를 생략하려면이 항목을 비워 두십시오. \n \n여러 인증 컨텍스트를 추가하려면 {{AuthnContext Template}} 설정에 직접 추가하십시오.", + "SAML_Custom_Authn_Context_description": "요청에서 인증 컨텍스트를 생략하려면이 항목을 비워 두십시오. \n \n여러 인증 컨텍스트를 추가하려면 *AuthnContext Template* 설정에 직접 추가하십시오.", "SAML_Custom_Cert": "사용자 정의 인증", "SAML_Custom_Debug": "디버그 사용", "SAML_Custom_EMail_Field": "이메일 필드명", @@ -2760,13 +2760,13 @@ "SAML_Identifier_Format": "식별자 형식", "SAML_Identifier_Format_Description": "요청 시, NameID 정책을 생략하려면 이 항목을 비워 두십시오.", "SAML_LogoutRequest_Template": "로그 아웃 요청 템플릿", - "SAML_LogoutRequest_Template_Description": "다음 변수를 사용할 수 있습니다.: \n -** \\ _ \\ _ newId \\ _ \\ _ ** : 임의로 생성 된 ID 문자열 \n -** \\ _ \\ _ instant \\ _ \\ _ ** : 현재 타임 스탬프 \n -** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ ** : 리디렉션 할 IDP 싱글 로그 아웃 URL. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : {{Custom Issuer}} 설정 값. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : {{Identifier Format}} 설정 값. \n -** \\ _ \\ _ nameID \\ _ \\ _ ** : 사용자가 로그인했을 때 IDP에서받은 NameID. \n -** \\ _ \\ _ sessionIndex \\ _ \\ _ ** : 사용자가 로그인했을 때 IDP에서받은 sessionIndex.", + "SAML_LogoutRequest_Template_Description": "다음 변수를 사용할 수 있습니다.: \n -** \\ _ \\ _ newId \\ _ \\ _ ** : 임의로 생성 된 ID 문자열 \n -** \\ _ \\ _ instant \\ _ \\ _ ** : 현재 타임 스탬프 \n -** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ ** : 리디렉션 할 IDP 싱글 로그 아웃 URL. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : *Custom Issuer* 설정 값. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : *Identifier Format* 설정 값. \n -** \\ _ \\ _ nameID \\ _ \\ _ ** : 사용자가 로그인했을 때 IDP에서받은 NameID. \n -** \\ _ \\ _ sessionIndex \\ _ \\ _ ** : 사용자가 로그인했을 때 IDP에서받은 sessionIndex.", "SAML_LogoutResponse_Template": "로그 아웃 응답 템플릿", - "SAML_LogoutResponse_Template_Description": "다음 변수를 사용할 수 있습니다. : \n -** \\ _ \\ _ newId \\ _ \\ _ ** : 무작위로 생성 된 ID 문자열 \n -** \\ _ \\ _ inResponseToId \\ _ \\ _ ** : IdP에서받은 로그 아웃 요청 ID \n -* * \\ _ \\ _ instant \\ _ \\ _ ** : 현재 타임 스탬프 \n -** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ ** : 리디렉션 할 IDP 싱글 로그 아웃 URL. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : {{Custom Issuer}} 설정 값. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : {{Identifier Format}} 설정 값. \n -** \\ _ \\ _ nameID \\ _ \\ _ ** : IDP에서 요청 받은 로그 아웃 NameID \n -** \\ _ \\ _ sessionIndex \\ _ \\ _ ** : IDP에서 요청 받은 로그 아웃 sessionIndex.", + "SAML_LogoutResponse_Template_Description": "다음 변수를 사용할 수 있습니다. : \n -** \\ _ \\ _ newId \\ _ \\ _ ** : 무작위로 생성 된 ID 문자열 \n -** \\ _ \\ _ inResponseToId \\ _ \\ _ ** : IdP에서받은 로그 아웃 요청 ID \n -* * \\ _ \\ _ instant \\ _ \\ _ ** : 현재 타임 스탬프 \n -** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ ** : 리디렉션 할 IDP 싱글 로그 아웃 URL. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : *Custom Issuer* 설정 값. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : *Identifier Format* 설정 값. \n -** \\ _ \\ _ nameID \\ _ \\ _ ** : IDP에서 요청 받은 로그 아웃 NameID \n -** \\ _ \\ _ sessionIndex \\ _ \\ _ ** : IDP에서 요청 받은 로그 아웃 sessionIndex.", "SAML_MetadataCertificate_Template": "메타 데이터 인증서 템플릿", "SAML_Metadata_Certificate_Template_Description": "다음 변수를 사용할 수 있습니다. : \n -** \\ _ \\ _ certificate \\ _ \\ _ ** : assertion encryption을 위한 개인 인증서.", "SAML_Metadata_Template": "메타 데이터 템플릿", - "SAML_Metadata_Template_Description": "다음 변수를 사용할 수 있습니다.: \n-** \\ _ \\ _ sloLocation \\ _ \\ _ ** : Rocket.Chat 싱글 로그 아웃 URL. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : {{Custom Issuer}} 설정의 값입니다. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : {{Identifier Format}} 설정의 값. \n -** \\ _ \\ _ certificateTag \\ _ \\ _ ** : 개인 인증서가 설정된 경우 여기에는 {{Metadata Certificate Template}}이 포함되고, 그렇지 않으면 무시됩니다. \n -** \\ _ \\ _ callbackUrl \\ _ \\ _ ** : Rocket.Chat 콜백 URL.", + "SAML_Metadata_Template_Description": "다음 변수를 사용할 수 있습니다.: \n-** \\ _ \\ _ sloLocation \\ _ \\ _ ** : Rocket.Chat 싱글 로그 아웃 URL. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : *Custom Issuer* 설정의 값입니다. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : *Identifier Format* 설정의 값. \n -** \\ _ \\ _ certificateTag \\ _ \\ _ ** : 개인 인증서가 설정된 경우 여기에는 {{Metadata Certificate Template}}이 포함되고, 그렇지 않으면 무시됩니다. \n -** \\ _ \\ _ callbackUrl \\ _ \\ _ ** : Rocket.Chat 콜백 URL.", "SAML_NameIdPolicy_Template": "NameID 정책 템플릿", "SAML_NameIdPolicy_Template_Description": "여기에서 권한 요청 템플릿의 모든 변수를 사용할 수 있습니다.", "SAML_Role_Attribute_Name": "역할 속성명", diff --git a/packages/i18n/src/locales/nb.i18n.json b/packages/i18n/src/locales/nb.i18n.json index cc6acdde06822..a465d738dc311 100644 --- a/packages/i18n/src/locales/nb.i18n.json +++ b/packages/i18n/src/locales/nb.i18n.json @@ -4464,13 +4464,13 @@ "SAML_Allowed_Clock_Drift": "Tillatt tidsavvik fra identitetsleverandøren", "SAML_Allowed_Clock_Drift_Description": "Klokken til identitetsleverandøren kan avvike litt fra systemklokkene dine. Du kan tillate et lite klokkeavvik. Verdien må angis i millisekunder (ms). Den angitte verdien legges til gjeldende tidspunkt når responsen valideres.", "SAML_AuthnContext_Template": "Mal for AuthnContext", - "SAML_AuthnContext_Template_Description": "Du kan bruke hvilken som helst variabel fra AuthnRequest-malen her. \n \n For å legge til flere authnkontekster, kopier {{AuthnContextClassRef}}-taggen og erstatt {{\\_\\_authnContext\\_\\}}-variabelen med den nye konteksten.", + "SAML_AuthnContext_Template_Description": "Du kan bruke hvilken som helst variabel fra AuthnRequest-malen her. \n \n For å legge til flere authnkontekster, kopier `AuthnContextClassRef`-taggen og erstatt `\\_\\_authnContext\\_\\_`-variabelen med den nye konteksten.", "SAML_AuthnRequest_Template": "Mal for AuthnRequest", - "SAML_AuthnRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_newId\\_\\_**: Tilfeldig generert id-streng \n- **\\_\\_instant\\_\\_**: Gjeldende tidsstempel \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chats tilbakeringings-URL. \n- **\\_\\_entryPoint\\_\\_**: Verdien for {{Custom Entry Point}}-innstillingen. \n- **\\_\\_utsteder\\_\\_**: Verdien for {{Custom Issuer}}-innstillingen. \n- **\\_\\_identifierFormatTag\\_\\_**: Innholdet i {{NameID Policy Template}} hvis en gyldig {{Identifier Format}} er konfigurert. \n- **\\_\\_identifierFormat\\_\\_**: Verdien for {{Identifier Format}}-innstillingen. \n- **\\_\\_authnContextTag\\_\\_**: Innholdet i {{AuthnContext Template}} hvis en gyldig {{Custom Authn Context}} er konfigurert. \n- **\\_\\_authnContextComparison\\_\\_**: Verdien for {{Authn Context Comparison}}-innstillingen. \n- **\\_\\_authnContext\\_\\_**: Verdien til {{Custom Authn Context}}-innstillingen.", + "SAML_AuthnRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_newId\\_\\_*: Tilfeldig generert id-streng \n- *\\_\\_instant\\_\\_*: Gjeldende tidsstempel \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chats tilbakeringings-URL. \n- *\\_\\_entryPoint\\_\\_*: Verdien for *Custom Entry Point*-innstillingen. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormatTag\\_\\_*: Innholdet i *NameID Policy Template* hvis en gyldig *Identifier Format* er konfigurert. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_authnContextTag\\_\\_*: Innholdet i *AuthnContext Template* hvis en gyldig *Custom Authn Context* er konfigurert. \n- *\\_\\_authnContextComparison\\_\\_*: Verdien for *Authn Context Comparison*-innstillingen. \n- *\\_\\_authnContext\\_\\_*: Verdien til *Custom Authn Context*-innstillingen.", "SAML_Connection": "Tilkobling", "SAML_Custom_Authn_Context": "Tilpasset Authn-kontekst", "SAML_Custom_Authn_Context_Comparison": "Authn Context-sammenligning", - "SAML_Custom_Authn_Context_description": "La dette stå tomt for å utelate authnkonteksten fra forespørselen. \n \n For å legge til flere authnkontekster, legg til de ekstra direkte i {{AuthnContext Template}}-innstillingen.", + "SAML_Custom_Authn_Context_description": "La dette stå tomt for å utelate authnkonteksten fra forespørselen. \n \n For å legge til flere authnkontekster, legg til de ekstra direkte i *AuthnContext Template*-innstillingen.", "SAML_Custom_Cert": "Egendefinert sertifikat", "SAML_Custom_Debug": "Aktiver feilsøking", "SAML_Custom_EMail_Field": "Navn på e-postfelt", @@ -4517,13 +4517,13 @@ "SAML_Identifier_Format": "Identifikatorformat", "SAML_Identifier_Format_Description": "La denne stå tom for å utelate NameID-policyen fra forespørselen.", "SAML_LogoutRequest_Template": "Mal for utloggingsforespørsel", - "SAML_LogoutRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_newId\\_\\_**: Tilfeldig generert id-streng \n- **\\_\\_instant\\_\\_**: Gjeldende tidsstempel \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for {{Custom Issuer}}-innstillingen. \n- **\\_\\_identifierFormat\\_\\_**: Verdien for {{Identifier Format}}-innstillingen. \n- **\\_\\_nameID\\_\\_**: NameID mottatt fra IdP når brukeren logget på. \n- **\\_\\_sessionIndex\\_\\_**: SessionIndex mottatt fra IdP når brukeren logget på.", + "SAML_LogoutRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_newId\\_\\_*: Tilfeldig generert id-streng \n- *\\_\\_instant\\_\\_*: Gjeldende tidsstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_nameID\\_\\_*: NameID mottatt fra IdP når brukeren logget på. \n- *\\_\\_sessionIndex\\_\\_*: SessionIndex mottatt fra IdP når brukeren logget på.", "SAML_LogoutResponse_Template": "Mal for svar ved utlogging", - "SAML_LogoutResponse_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_newId\\_\\_**: Tilfeldig generert id-streng \n- **\\_\\_inResponseToId\\_\\_**: IDen til utloggingsforespørselen mottatt fra IdP \n- **\\_\\_instant\\_\\_**: Gjeldende tidsstempel \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for {{Custom Issuer}}-innstillingen. \n- **\\_\\_identifierFormat\\_\\_**: Verdien for {{Identifier Format}}-innstillingen. \n- **\\_\\_nameID\\_\\_**: NameID mottatt fra IdP-utloggingsforespørselen. \n- **\\_\\_sessionIndex\\_\\_**: SessionIndex mottatt fra IdP utloggingsforespørselen.", + "SAML_LogoutResponse_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_newId\\_\\_*: Tilfeldig generert id-streng \n- *\\_\\_inResponseToId\\_\\_*: IDen til utloggingsforespørselen mottatt fra IdP \n- *\\_\\_instant\\_\\_*: Gjeldende tidsstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_nameID\\_\\_*: NameID mottatt fra IdP-utloggingsforespørselen. \n- *\\_\\_sessionIndex\\_\\_*: SessionIndex mottatt fra IdP utloggingsforespørselen.", "SAML_MetadataCertificate_Template": "Mal for metadatasertifikat", - "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_certificate\\_\\_**: Det private sertifikatet for påstandskryptering.", + "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_certificate\\_\\_*: Det private sertifikatet for påstandskryptering.", "SAML_Metadata_Template": "Mal for metadata", - "SAML_Metadata_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chats Single Logout URL. \n- **\\_\\_utsteder\\_\\_**: Verdien for {{Custom Issuer}}-innstillingen. \n- **\\_\\_identifierFormat\\_\\_**: Verdien for {{Identifier Format}}-innstillingen. \n- **\\_\\_certificateTag\\_\\_**: Hvis et privat sertifikat er konfigurert, vil dette inkludere {{Metadata Certificate Template}}, ellers vil det bli ignorert. \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chats tilbakeringings-URL.", + "SAML_Metadata_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chats Single Logout URL. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat sertifikat er konfigurert, vil dette inkludere {{Metadata Certificate Template}}, ellers vil det bli ignorert. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chats tilbakeringings-URL.", "SAML_NameIdPolicy_Template": "Mal for retningslinjer for NameID", "SAML_NameIdPolicy_Template_Description": "Du kan bruke en hvilken som helst variabel fra Authorize Request Template her.", "SAML_Role_Attribute_Name": "Rolle Attributt Navn", diff --git a/packages/i18n/src/locales/nl.i18n.json b/packages/i18n/src/locales/nl.i18n.json index 25a1ad267ea1e..de9a9dd86b96a 100644 --- a/packages/i18n/src/locales/nl.i18n.json +++ b/packages/i18n/src/locales/nl.i18n.json @@ -3171,13 +3171,13 @@ "SAML_Allowed_Clock_Drift": "Toegestane klokafwijking van identiteitsprovider", "SAML_Allowed_Clock_Drift_Description": "De klok van de identiteitsprovider kan iets voorlopen op uw systeemklokken. U kunt een kleine hoeveelheid klokafwijking toestaan. De waarde moet worden opgegeven in een aantal milliseconden (ms). De opgegeven waarde wordt opgeteld bij het huidige tijdstip waarop het antwoord wordt gevalideerd.", "SAML_AuthnContext_Template": "AuthnContext Template", - "SAML_AuthnContext_Template_Description": "U kunt hier elke variabele uit de AuthnRequest Template gebruiken. \n \nOm extra authn-contexten toe te voegen, dupliceert u de {{AuthnContextClassRef}}-tag en vervangt u de {{\\_\\_authnContext\\_\\}} variabele door de nieuwe context.", + "SAML_AuthnContext_Template_Description": "U kunt hier elke variabele uit de AuthnRequest Template gebruiken. \n \nOm extra authn-contexten toe te voegen, dupliceert u de `AuthnContextClassRef`-tag en vervangt u de `\\_\\_authnContext\\_\\_` variabele door de nieuwe context.", "SAML_AuthnRequest_Template": "AuthnRequest Template", - "SAML_AuthnRequest_Template_Description": "De volgende variabelen zijn beschikbaar: \n- **\\_\\_newId\\_\\_**: Willekeurig gegenegeerde id-string \n- **\\_\\_instant\\_\\_**: Huidige tijdstempel \n- **\\_\\_callbackUrl\\_\\_**: De Rocket.Chat callback URL. \n- **\\_\\_entryPoint\\_\\_**: De waarde van de {{Custom Entry Point}} instelling. \n- **\\_\\_issuer\\_\\_**: De waarde van de {{Custom Issuer}} instelling. \n- **\\_\\_identifierFormatTag\\_\\_**: De inhoud van de {{NameID Policy Template}} indien een geldige {{Identifier Format}} geconfigureerd is. \n- **\\_\\_identifierFormat\\_\\_**: De waarde van de {{Identifier Format}} instelling. \n- **\\_\\_authnContextTag\\_\\_**: De inhoud van de {{AuthnContext Template}} indien een geldige {{Custom Authn Context}} geconfigureerd is. \n- **\\_\\_authnContextComparison\\_\\_**: De waarde van de {{Authn Context Comparison}} instelling. \n- **\\_\\_authnContext\\_\\_**: De waarde van de {{Custom Authn Context}} instelling.", + "SAML_AuthnRequest_Template_Description": "De volgende variabelen zijn beschikbaar: \n- *\\_\\_newId\\_\\_*: Willekeurig gegenegeerde id-string \n- *\\_\\_instant\\_\\_*: Huidige tijdstempel \n- *\\_\\_callbackUrl\\_\\_*: De Rocket.Chat callback URL. \n- *\\_\\_entryPoint\\_\\_*: De waarde van de *Custom Entry Point* instelling. \n- *\\_\\_issuer\\_\\_*: De waarde van de *Custom Issuer* instelling. \n- *\\_\\_identifierFormatTag\\_\\_*: De inhoud van de *NameID Policy Template* indien een geldige *Identifier Format* geconfigureerd is. \n- *\\_\\_identifierFormat\\_\\_*: De waarde van de *Identifier Format* instelling. \n- *\\_\\_authnContextTag\\_\\_*: De inhoud van de *AuthnContext Template* indien een geldige *Custom Authn Context* geconfigureerd is. \n- *\\_\\_authnContextComparison\\_\\_*: De waarde van de *Authn Context Comparison* instelling. \n- *\\_\\_authnContext\\_\\_*: De waarde van de *Custom Authn Context* instelling.", "SAML_Connection": "Verbinding", "SAML_Custom_Authn_Context": "Aangepaste Authn-context", "SAML_Custom_Authn_Context_Comparison": "Authn-contextvergelijking", - "SAML_Custom_Authn_Context_description": "Laat dit leeg om de authn-context uit het verzoek weg te laten. \n \n Om meerdere authn-contexten toe te voegen, voegt u de extra contexten rechtstreeks toe aan de {{AuthnContext Template}} instelling.", + "SAML_Custom_Authn_Context_description": "Laat dit leeg om de authn-context uit het verzoek weg te laten. \n \n Om meerdere authn-contexten toe te voegen, voegt u de extra contexten rechtstreeks toe aan de *AuthnContext Template* instelling.", "SAML_Custom_Cert": "Aangepast certificaat", "SAML_Custom_Debug": "Schakel debug in", "SAML_Custom_EMail_Field": "E-mailveldnaam", @@ -3221,13 +3221,13 @@ "SAML_Identifier_Format": "Identifier-indeling", "SAML_Identifier_Format_Description": "Laat dit leeg om het NameID-beleid uit de aanvraag weg te laten.", "SAML_LogoutRequest_Template": "Sjabloon voor uitlogverzoek", - "SAML_LogoutRequest_Template_Description": "De volgende variabelen zijn beschikbaar: \n- **\\_\\_newId\\_\\_**: willekeurige gegenereerde id-string \n- **\\_\\_instant\\_\\_**: Huidige tijdstempel \n- **\\_\\_idpSLORedirectURL\\_\\_**: De IDP Single LogOut URL waarnaar moet worden doorverwezen. \n- **\\_\\_issuer\\_\\_**: De waarde van de {{Custom Issuer}} instelling. \n- **\\_\\_identifierFormat\\_\\_**: De waarde van de {{Identifier Format}} instelling. \n- **\\_\\_nameID\\_\\_**: De NameID ontvangen van de IdP-inlogverzoek. \n- **\\_\\_sessionIndex\\_\\_**: De sessionIndex die ontvangen is van de IdP wanneer de gebruiker zich heeft aangemeld.", + "SAML_LogoutRequest_Template_Description": "De volgende variabelen zijn beschikbaar: \n- *\\_\\_newId\\_\\_*: willekeurige gegenereerde id-string \n- *\\_\\_instant\\_\\_*: Huidige tijdstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: De IDP Single LogOut URL waarnaar moet worden doorverwezen. \n- *\\_\\_issuer\\_\\_*: De waarde van de *Custom Issuer* instelling. \n- *\\_\\_identifierFormat\\_\\_*: De waarde van de *Identifier Format* instelling. \n- *\\_\\_nameID\\_\\_*: De NameID ontvangen van de IdP-inlogverzoek. \n- *\\_\\_sessionIndex\\_\\_*: De sessionIndex die ontvangen is van de IdP wanneer de gebruiker zich heeft aangemeld.", "SAML_LogoutResponse_Template": "Template voor de afmeldingsreactie", - "SAML_LogoutResponse_Template_Description": "De volgende variabelen zijn beschikbaar: \n- **\\_\\_newId\\_\\_**: willekeurige gegenereerde id-string \n- **\\_\\_inResponseToId\\_\\_**: De ID van het uitlogverzoek ontvangen van de IdP \n- **\\_\\_instant\\_\\_**: Huidige tijdstempel \n- **\\_\\_idpSLORedirectURL\\_\\_**: De IDP Single LogOut URL waarnaar moet worden doorverwezen. \n- **\\_\\_issuer\\_\\_**: De waarde van de {{Custom Issuer}} instelling. \n- **\\_\\_identifierFormat\\_\\_**: De waarde van de {{Identifier Format}} instelling. \n- **\\_\\_nameID\\_\\_**: De NameID ontvangen van de IdP-uitlogverzoek. \n- **\\_\\_sessionIndex\\_\\_**: De sessionIndex die ontvangen is van het IdP-uitlogverzoek.", + "SAML_LogoutResponse_Template_Description": "De volgende variabelen zijn beschikbaar: \n- *\\_\\_newId\\_\\_*: willekeurige gegenereerde id-string \n- *\\_\\_inResponseToId\\_\\_*: De ID van het uitlogverzoek ontvangen van de IdP \n- *\\_\\_instant\\_\\_*: Huidige tijdstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: De IDP Single LogOut URL waarnaar moet worden doorverwezen. \n- *\\_\\_issuer\\_\\_*: De waarde van de *Custom Issuer* instelling. \n- *\\_\\_identifierFormat\\_\\_*: De waarde van de *Identifier Format* instelling. \n- *\\_\\_nameID\\_\\_*: De NameID ontvangen van de IdP-uitlogverzoek. \n- *\\_\\_sessionIndex\\_\\_*: De sessionIndex die ontvangen is van het IdP-uitlogverzoek.", "SAML_MetadataCertificate_Template": "Metagegevens certificaatsjabloon", - "SAML_Metadata_Certificate_Template_Description": "De volgende variabelen zijn beschikbaar: \n- **\\_\\_certificate\\_\\_**: het privécertificaat voor assertion-encryptie.", + "SAML_Metadata_Certificate_Template_Description": "De volgende variabelen zijn beschikbaar: \n- *\\_\\_certificate\\_\\_*: het privécertificaat voor assertion-encryptie.", "SAML_Metadata_Template": "Metagegevenssjabloon", - "SAML_Metadata_Template_Description": "De volgende variabelen zijn beschikbaar: \n- **\\_\\_sloLocation\\_\\_**: De Rocket.Chat Single Logout URL. \n- **\\_\\_issuer\\_\\_**: De waarde van de {{Custom Issuer}} instelling. \n- **\\_\\_identifierFormat\\_\\_**: De waarde van de {{Identifier Format}} instelling. \n- **\\_\\_certificateTag\\_\\_**: Als een privécertificaat geconfigureerd is, bevat dit de {{Metadata Certificate Template}}, anders wordt het genegeerd. \n- **\\_\\_callbackUrl\\_\\_**: De Rocket.Chat callback-URL.", + "SAML_Metadata_Template_Description": "De volgende variabelen zijn beschikbaar: \n- *\\_\\_sloLocation\\_\\_*: De Rocket.Chat Single Logout URL. \n- *\\_\\_issuer\\_\\_*: De waarde van de *Custom Issuer* instelling. \n- *\\_\\_identifierFormat\\_\\_*: De waarde van de *Identifier Format* instelling. \n- *\\_\\_certificateTag\\_\\_*: Als een privécertificaat geconfigureerd is, bevat dit de {{Metadata Certificate Template}}, anders wordt het genegeerd. \n- *\\_\\_callbackUrl\\_\\_*: De Rocket.Chat callback-URL.", "SAML_NameIdPolicy_Template": "NameID-beleidssjabloon", "SAML_NameIdPolicy_Template_Description": "U kunt hier elke variabele uit de Authorize Request Template gebruiken.", "SAML_Role_Attribute_Name": "Rolkenmerknaam", diff --git a/packages/i18n/src/locales/nn.i18n.json b/packages/i18n/src/locales/nn.i18n.json index fcb2f57e8c719..ae292b3b879be 100644 --- a/packages/i18n/src/locales/nn.i18n.json +++ b/packages/i18n/src/locales/nn.i18n.json @@ -4237,10 +4237,10 @@ "Running_Instances": "Kjører forekomster", "Runtime_Environment": "Runtime Environment", "SAML": "SAML", - "SAML_AuthnContext_Template_Description": "Du kan bruke hvilken som helst variabel fra AuthnRequest-malen her. \n \n For å legge til flere authnkontekster, kopier {{AuthnContextClassRef}}-taggen og erstatt {{\\_\\_authnContext\\_\\}}-variabelen med den nye konteksten.", - "SAML_AuthnRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_newId\\_\\_**: Tilfeldig generert id-streng \n- **\\_\\_instant\\_\\_**: Gjeldende tidsstempel \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chats tilbakeringings-URL. \n- **\\_\\_entryPoint\\_\\_**: Verdien for {{Custom Entry Point}}-innstillingen. \n- **\\_\\_utsteder\\_\\_**: Verdien for {{Custom Issuer}}-innstillingen. \n- **\\_\\_identifierFormatTag\\_\\_**: Innholdet i {{NameID Policy Template}} hvis en gyldig {{Identifier Format}} er konfigurert. \n- **\\_\\_identifierFormat\\_\\_**: Verdien for {{Identifier Format}}-innstillingen. \n- **\\_\\_authnContextTag\\_\\_**: Innholdet i {{AuthnContext Template}} hvis en gyldig {{Custom Authn Context}} er konfigurert. \n- **\\_\\_authnContextComparison\\_\\_**: Verdien for {{Authn Context Comparison}}-innstillingen. \n- **\\_\\_authnContext\\_\\_**: Verdien til {{Custom Authn Context}}-innstillingen.", + "SAML_AuthnContext_Template_Description": "Du kan bruke hvilken som helst variabel fra AuthnRequest-malen her. \n \n For å legge til flere authnkontekster, kopier `AuthnContextClassRef`-taggen og erstatt `\\_\\_authnContext\\_\\_`-variabelen med den nye konteksten.", + "SAML_AuthnRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_newId\\_\\_*: Tilfeldig generert id-streng \n- *\\_\\_instant\\_\\_*: Gjeldende tidsstempel \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chats tilbakeringings-URL. \n- *\\_\\_entryPoint\\_\\_*: Verdien for *Custom Entry Point*-innstillingen. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormatTag\\_\\_*: Innholdet i *NameID Policy Template* hvis en gyldig *Identifier Format* er konfigurert. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_authnContextTag\\_\\_*: Innholdet i *AuthnContext Template* hvis en gyldig *Custom Authn Context* er konfigurert. \n- *\\_\\_authnContextComparison\\_\\_*: Verdien for *Authn Context Comparison*-innstillingen. \n- *\\_\\_authnContext\\_\\_*: Verdien til *Custom Authn Context*-innstillingen.", "SAML_Connection": "Tilkobling", - "SAML_Custom_Authn_Context_description": "La dette stå tomt for å utelate authnkonteksten fra forespørselen. \n \n For å legge til flere authnkontekster, legg til de ekstra direkte i {{AuthnContext Template}}-innstillingen.", + "SAML_Custom_Authn_Context_description": "La dette stå tomt for å utelate authnkonteksten fra forespørselen. \n \n For å legge til flere authnkontekster, legg til de ekstra direkte i *AuthnContext Template*-innstillingen.", "SAML_Custom_Cert": "Tilpasset sertifikat", "SAML_Custom_Debug": "Aktiver feilsøking", "SAML_Custom_Entry_point": "Tilpasset oppføringspunkt", @@ -4263,10 +4263,10 @@ "SAML_Custom_user_data_fieldmap_description": "Konfigurer hvordan brukerkontofelt (som e-post) fylles ut fra en post i SAML (når den er funnet). \nSom et eksempel vil `{\"name\":\"cn\", \"email\":\"mail\"}` velge en persons lesbare navn fra cn-attributtet, og deres e-post fra mail-attributtet. \nTilgjengelige felt i Rocket.Chat: `name`, `email` og `username`, alt annet vil bli forkastet. \n`{\"email\": \"mail\",\"username\": {\"fieldName\": \"mail\",\"regex\": \"(.*)@.+$\",\"template\": \"user-regex\"}, \"name\": { \"fieldNames\": [\"firstName\", \"lastName\"], \"template\": \"{{firstName}} {{lastName}}\"}, \"{{identifier}}\": \"uid\"}`", "SAML_Enterprise": "Premium", "SAML_General": "Generell", - "SAML_LogoutRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_newId\\_\\_**: Tilfeldig generert id-streng \n- **\\_\\_instant\\_\\_**: Gjeldende tidsstempel \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for {{Custom Issuer}}-innstillingen. \n- **\\_\\_identifierFormat\\_\\_**: Verdien for {{Identifier Format}}-innstillingen. \n- **\\_\\_nameID\\_\\_**: NameID mottatt fra IdP når brukeren logget på. \n- **\\_\\_sessionIndex\\_\\_**: SessionIndex mottatt fra IdP når brukeren logget på.", - "SAML_LogoutResponse_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_newId\\_\\_**: Tilfeldig generert id-streng \n- **\\_\\_inResponseToId\\_\\_**: IDen til utloggingsforespørselen mottatt fra IdP \n- **\\_\\_instant\\_\\_**: Gjeldende tidsstempel \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for {{Custom Issuer}}-innstillingen. \n- **\\_\\_identifierFormat\\_\\_**: Verdien for {{Identifier Format}}-innstillingen. \n- **\\_\\_nameID\\_\\_**: NameID mottatt fra IdP-utloggingsforespørselen. \n- **\\_\\_sessionIndex\\_\\_**: SessionIndex mottatt fra IdP utloggingsforespørselen.", - "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_certificate\\_\\_**: Det private sertifikatet for påstandskryptering.", - "SAML_Metadata_Template_Description": "Følgende variabler er tilgjengelige: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chats Single Logout URL. \n- **\\_\\_utsteder\\_\\_**: Verdien for {{Custom Issuer}}-innstillingen. \n- **\\_\\_identifierFormat\\_\\_**: Verdien for {{Identifier Format}}-innstillingen. \n- **\\_\\_certificateTag\\_\\_**: Hvis et privat sertifikat er konfigurert, vil dette inkludere {{Metadata Certificate Template}}, ellers vil det bli ignorert. \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chats tilbakeringings-URL.", + "SAML_LogoutRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_newId\\_\\_*: Tilfeldig generert id-streng \n- *\\_\\_instant\\_\\_*: Gjeldende tidsstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_nameID\\_\\_*: NameID mottatt fra IdP når brukeren logget på. \n- *\\_\\_sessionIndex\\_\\_*: SessionIndex mottatt fra IdP når brukeren logget på.", + "SAML_LogoutResponse_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_newId\\_\\_*: Tilfeldig generert id-streng \n- *\\_\\_inResponseToId\\_\\_*: IDen til utloggingsforespørselen mottatt fra IdP \n- *\\_\\_instant\\_\\_*: Gjeldende tidsstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_nameID\\_\\_*: NameID mottatt fra IdP-utloggingsforespørselen. \n- *\\_\\_sessionIndex\\_\\_*: SessionIndex mottatt fra IdP utloggingsforespørselen.", + "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_certificate\\_\\_*: Det private sertifikatet for påstandskryptering.", + "SAML_Metadata_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chats Single Logout URL. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat sertifikat er konfigurert, vil dette inkludere {{Metadata Certificate Template}}, ellers vil det bli ignorert. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chats tilbakeringings-URL.", "SAML_Role_Attribute_Sync": "Synkroniser brukerroller", "SAML_Section_1_User_Interface": "Brukergrensesnitt", "SAML_Section_2_Certificate": "Sertifikat", diff --git a/packages/i18n/src/locales/pl.i18n.json b/packages/i18n/src/locales/pl.i18n.json index 89b7a4c595dc9..748f203885956 100644 --- a/packages/i18n/src/locales/pl.i18n.json +++ b/packages/i18n/src/locales/pl.i18n.json @@ -3452,13 +3452,13 @@ "SAML_Allowed_Clock_Drift": "Dozwolony dryft zegara od dostawcy usług tożsamości", "SAML_Allowed_Clock_Drift_Description": "Zegar dostawcy usług tożsamości może dryfować nieco przed zegarami systemu. Możesz pozwolić na niewielki dryft zegara. Jego wartość musi być podana w kilku milisekundach (ms). Podana wartość jest dodawana do aktualnego czasu, w którym odpowiedź jest zatwierdzana.", "SAML_AuthnContext_Template": "Szablon AuthnContext ", - "SAML_AuthnContext_Template_Description": "Możesz tutaj użyć dowolny zmiennych z szablonu AuthnRequest. \n \nAby dodać dodatkowe authn contexts, zduplikuj tag {{AuthnContextClassRef}} i zastąp zmienną {{\\_\\_authnContext\\_\\}} z nowym contextem.", + "SAML_AuthnContext_Template_Description": "Możesz tutaj użyć dowolny zmiennych z szablonu AuthnRequest. \n \nAby dodać dodatkowe authn contexts, zduplikuj tag `AuthnContextClassRef` i zastąp zmienną `\\_\\_authnContext\\_\\_` z nowym contextem.", "SAML_AuthnRequest_Template": "Szablon AuthnContext ", - "SAML_AuthnRequest_Template_Description": "Poniższe zmienne są dostępne: \n- **\\_\\_newId\\_\\_**: Losowo wygenerowany ciąg id \n- **\\_\\_instant\\_\\_**: Aktualny timestamp \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat callback URL. \n- **\\_\\_entryPoint\\_\\_**: Wartość opcji {{Custom Entry Point}} . \n- **\\_\\_issuer\\_\\_**: Wartość opcji {{Custom Issuer}} . \n- **\\_\\_identifierFormatTag\\_\\_**: Zawartość {{NameID Policy Template}} jeśli poprawny {{Identifier Format}} jest skonfigurowany. \n- **\\_\\_identifierFormat\\_\\_**: Wartość opcji {{Identifier Format}} . \n- **\\_\\_authnContextTag\\_\\_**: Zawartość {{AuthnContext Template}} jeśli poprawny {{Custom Authn Context}} jest skonfigurowany. \n- **\\_\\_authnContextComparison\\_\\_**: Wartość opcji {{Authn Context Comparison}} . \n- **\\_\\_authnContext\\_\\_**: Wartość opcji {{Custom Authn Context}} .", + "SAML_AuthnRequest_Template_Description": "Poniższe zmienne są dostępne: \n- *\\_\\_newId\\_\\_*: Losowo wygenerowany ciąg id \n- *\\_\\_instant\\_\\_*: Aktualny timestamp \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat callback URL. \n- *\\_\\_entryPoint\\_\\_*: Wartość opcji *Custom Entry Point* . \n- *\\_\\_issuer\\_\\_*: Wartość opcji *Custom Issuer* . \n- *\\_\\_identifierFormatTag\\_\\_*: Zawartość *NameID Policy Template* jeśli poprawny *Identifier Format* jest skonfigurowany. \n- *\\_\\_identifierFormat\\_\\_*: Wartość opcji *Identifier Format* . \n- *\\_\\_authnContextTag\\_\\_*: Zawartość *AuthnContext Template* jeśli poprawny *Custom Authn Context* jest skonfigurowany. \n- *\\_\\_authnContextComparison\\_\\_*: Wartość opcji *Authn Context Comparison* . \n- *\\_\\_authnContext\\_\\_*: Wartość opcji *Custom Authn Context* .", "SAML_Connection": "Połączenie", "SAML_Custom_Authn_Context": "Custom Authn Context", "SAML_Custom_Authn_Context_Comparison": "Authn Context Comparison", - "SAML_Custom_Authn_Context_description": "Pozostaw to puste, aby pominąć kontekst authn z request'a. \n \nBy dodawać wiele kontekstów authn, dodaj dodatkowe bezpośrednio do ustawienia {{AuthnContext Template}} setting.", + "SAML_Custom_Authn_Context_description": "Pozostaw to puste, aby pominąć kontekst authn z request'a. \n \nBy dodawać wiele kontekstów authn, dodaj dodatkowe bezpośrednio do ustawienia *AuthnContext Template* setting.", "SAML_Custom_Cert": "Własny certyfikat", "SAML_Custom_Debug": "Włącz debugowanie", "SAML_Custom_EMail_Field": "Nazwa pola e-mail", @@ -3503,13 +3503,13 @@ "SAML_Identifier_Format": "Format identyfikatora", "SAML_Identifier_Format_Description": "Zostaw to puste aby pominąć politykę NameID z wniosku.", "SAML_LogoutRequest_Template": "Szablon żądania wylogowania", - "SAML_LogoutRequest_Template_Description": "Poniższe zmienne są dostępne: \n- **\\_\\_newId\\_\\_**: Losowo wygenerowany ciąg id \n- **\\_\\_instant\\_\\_**: Aktualny timestamp \n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP Single LogOut URL do przekierowania. \n- **\\_\\_issuer\\_\\_**: Wartość opcji {{Custom Issuer}} . \n- **\\_\\_identifierFormat\\_\\_**: Wartość opcji {{Identifier Format}} . \n- **\\_\\_nameID\\_\\_**: NameID otrzymane z IdP podczas logowania użytkownika. \n- **\\_\\_sessionIndex\\_\\_**: sessionIndex otrzymane z IdP podczas logowania użytkownika.", + "SAML_LogoutRequest_Template_Description": "Poniższe zmienne są dostępne: \n- *\\_\\_newId\\_\\_*: Losowo wygenerowany ciąg id \n- *\\_\\_instant\\_\\_*: Aktualny timestamp \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP Single LogOut URL do przekierowania. \n- *\\_\\_issuer\\_\\_*: Wartość opcji *Custom Issuer* . \n- *\\_\\_identifierFormat\\_\\_*: Wartość opcji *Identifier Format* . \n- *\\_\\_nameID\\_\\_*: NameID otrzymane z IdP podczas logowania użytkownika. \n- *\\_\\_sessionIndex\\_\\_*: sessionIndex otrzymane z IdP podczas logowania użytkownika.", "SAML_LogoutResponse_Template": "Szablon odpowiedzi wylogowania", - "SAML_LogoutResponse_Template_Description": "Dostępne są następujące zmienne: \n- **\\_\\_newId\\_\\_**: losowo wygenerowany ciąg identyfikatora \n- **\\_\\_inResponseToId\\_\\_**: identyfikator żądania wylogowania otrzymanego z IdP \n- **\\_\\_instant\\_\\_**: aktualna sygnatura czasowa \n- **\\_\\_idpSLORedirectURL\\_\\_**: pojedynczy adres URL wylogowania IDP do przekierowania. \n- **\\_\\_issuer\\_\\_**: wartość ustawienia {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: wartość ustawienia {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: identyfikator NameID otrzymany z żądania wylogowania IdP. \n- **\\_\\_sessionIndex\\_\\_**: indeks sessionIndex otrzymany z żądania wylogowania IdP.", + "SAML_LogoutResponse_Template_Description": "Dostępne są następujące zmienne: \n- *\\_\\_newId\\_\\_*: losowo wygenerowany ciąg identyfikatora \n- *\\_\\_inResponseToId\\_\\_*: identyfikator żądania wylogowania otrzymanego z IdP \n- *\\_\\_instant\\_\\_*: aktualna sygnatura czasowa \n- *\\_\\_idpSLORedirectURL\\_\\_*: pojedynczy adres URL wylogowania IDP do przekierowania. \n- *\\_\\_issuer\\_\\_*: wartość ustawienia *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: wartość ustawienia *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: identyfikator NameID otrzymany z żądania wylogowania IdP. \n- *\\_\\_sessionIndex\\_\\_*: indeks sessionIndex otrzymany z żądania wylogowania IdP.", "SAML_MetadataCertificate_Template": "Wzór certyfikatu metadanych", - "SAML_Metadata_Certificate_Template_Description": "Dostępne są następujące zmienne: \n- **\\_\\_certificate\\_\\_**: Prywatny certyfikat zapewniający szyfrowanie.", + "SAML_Metadata_Certificate_Template_Description": "Dostępne są następujące zmienne: \n- *\\_\\_certificate\\_\\_*: Prywatny certyfikat zapewniający szyfrowanie.", "SAML_Metadata_Template": "Szablon metadaty", - "SAML_Metadata_Template_Description": "Dostępne są następujące zmienne: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chat Single LogOut URL. \n- **\\Wydawca: Wartość ustawienia {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Wartość ustawienia __Identifier Format_. \n- **\\_\\_certificateTag\\_\\_**: Jeśli skonfigurowany jest certyfikat prywatny, będzie on zawierał {{Metadata Certificate Template}}, w przeciwnym razie będzie on ignorowany. \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat callback URL.", + "SAML_Metadata_Template_Description": "Dostępne są następujące zmienne: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat Single LogOut URL. \n- **\\Wydawca: Wartość ustawienia *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Wartość ustawienia __Identifier Format_. \n- *\\_\\_certificateTag\\_\\_*: Jeśli skonfigurowany jest certyfikat prywatny, będzie on zawierał {{Metadata Certificate Template}}, w przeciwnym razie będzie on ignorowany. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat callback URL.", "SAML_NameIdPolicy_Template": "Szablon polityki NameID", "SAML_NameIdPolicy_Template_Description": "Możesz użyć dowolnej zmiennej z Szablonu Żądania autoryzującego.", "SAML_Role_Attribute_Name": "Nazwa atrybutu roli", diff --git a/packages/i18n/src/locales/pt-BR.i18n.json b/packages/i18n/src/locales/pt-BR.i18n.json index 863aaa2d5b43b..70444ecfacd4a 100644 --- a/packages/i18n/src/locales/pt-BR.i18n.json +++ b/packages/i18n/src/locales/pt-BR.i18n.json @@ -4389,13 +4389,13 @@ "SAML_Allowed_Clock_Drift": "Permitido desvio de relógio do Identity Provider", "SAML_Allowed_Clock_Drift_Description": "O relógio do Identity Provider pode ficar um pouco à frente dos relógios do seu sistema. Você pode permitir um pequeno desvio do relógio. Seu valor deve ser dado em milissegundos (ms). O valor dado é adicionado ao horário atual em que a resposta é validada.", "SAML_AuthnContext_Template": "Modelo AuthnContext", - "SAML_AuthnContext_Template_Description": "Você pode usar qualquer variável do modelo AuthnRequest aqui. \n \n Para adicionar quaisquer contextos authn adicionais, duplique a tag {{AuthnContextClassRef}} e substitua a variável {{\\_\\_authnContext\\_\\}} com o novo contexto.", + "SAML_AuthnContext_Template_Description": "Você pode usar qualquer variável do modelo AuthnRequest aqui. \n \n Para adicionar quaisquer contextos authn adicionais, duplique a tag `AuthnContextClassRef` e substitua a variável `\\_\\_authnContext\\_\\_` com o novo contexto.", "SAML_AuthnRequest_Template": "Modelo AuthnRequest", - "SAML_AuthnRequest_Template_Description": "As seguintes variáveis estão disponíveis: \n- **\\_\\_newId\\_\\_**: String ID gerada aleatoriamente \n- **\\_\\_instant\\_\\_**: Carimbo de hora atual \n- **\\_\\_callbackUrl\\_\\_**: O URL de callback do Rocket.Chat. \n- **\\_\\_entryPoint\\_\\_**: O valor da configuração {{Custom Entry Point}}. \n- **\\_\\_issuer\\_\\_**: O valor da configuração {{Custom Issuer}}. \n- **\\_\\_identifierFormatTag\\_\\_**: O conteúdo de {{NameID Policy Template}} se um {{Identifier Format}} válido estiver configurado. \n- **\\_\\_identifierFormat\\_\\_**: O valor da configuração {{Identifier Format}}. \n- **\\_\\_authnContextTag\\_\\_**: O conteúdo de {{AuthnContext Template}} se um {{Custom Authn Context}} válido estiver configurado. \n- **\\_\\_authnContextComparison\\_\\_**: O valor da configuração {{Authn Context Comparison}}. \n- **\\_\\_authnContext\\_\\_**: O valor da configuração {{Custom Authn Context}}.", + "SAML_AuthnRequest_Template_Description": "As seguintes variáveis estão disponíveis: \n- *\\_\\_newId\\_\\_*: String ID gerada aleatoriamente \n- *\\_\\_instant\\_\\_*: Carimbo de hora atual \n- *\\_\\_callbackUrl\\_\\_*: O URL de callback do Rocket.Chat. \n- *\\_\\_entryPoint\\_\\_*: O valor da configuração *Custom Entry Point*. \n- *\\_\\_issuer\\_\\_*: O valor da configuração *Custom Issuer*. \n- *\\_\\_identifierFormatTag\\_\\_*: O conteúdo de *NameID Policy Template* se um *Identifier Format* válido estiver configurado. \n- *\\_\\_identifierFormat\\_\\_*: O valor da configuração *Identifier Format*. \n- *\\_\\_authnContextTag\\_\\_*: O conteúdo de *AuthnContext Template* se um *Custom Authn Context* válido estiver configurado. \n- *\\_\\_authnContextComparison\\_\\_*: O valor da configuração *Authn Context Comparison*. \n- *\\_\\_authnContext\\_\\_*: O valor da configuração *Custom Authn Context*.", "SAML_Connection": "Conexão", "SAML_Custom_Authn_Context": "Authn Contex personalizado", "SAML_Custom_Authn_Context_Comparison": "Comparação de Authn Contex", - "SAML_Custom_Authn_Context_description": "Deixe vazio para omitir o authn contex da solicitação. \n \nPara adicionar vários authn contexts, inclua os adicionais diretamente à configuração {{AuthnContext Template}}.", + "SAML_Custom_Authn_Context_description": "Deixe vazio para omitir o authn contex da solicitação. \n \nPara adicionar vários authn contexts, inclua os adicionais diretamente à configuração *AuthnContext Template*.", "SAML_Custom_Cert": "Certificado personalizado", "SAML_Custom_Debug": "Ativar depuração", "SAML_Custom_EMail_Field": "Nome do campo E-Mail", @@ -4440,13 +4440,13 @@ "SAML_Identifier_Format": "Formato do identificador", "SAML_Identifier_Format_Description": "Deixe vazio para omitir a política NameID da solicitação.", "SAML_LogoutRequest_Template": "Modelo de solicitação de logout", - "SAML_LogoutRequest_Template_Description": "As seguintes variáveis estão disponíveis: \n- **\\_\\_newId\\_\\_**: ID string gerado aleatoriamente \n- **\\_\\_instant\\_\\_**: Carimbo de hora atual \n- **\\_\\_idpSLORedirectURL\\_\\_**: O URL do IDP Single LogOut para redirecionar. \n- **\\_\\_issuer\\_\\_**: O valor da configuração {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: O valor da configuração {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: O NameID recebido do IdP quando o usuário fizer login. \n- **\\_\\_sessionIndex\\_\\_**: O sessionIndex recebido do IdP quando o usuário fizer login.", + "SAML_LogoutRequest_Template_Description": "As seguintes variáveis estão disponíveis: \n- *\\_\\_newId\\_\\_*: ID string gerado aleatoriamente \n- *\\_\\_instant\\_\\_*: Carimbo de hora atual \n- *\\_\\_idpSLORedirectURL\\_\\_*: O URL do IDP Single LogOut para redirecionar. \n- *\\_\\_issuer\\_\\_*: O valor da configuração *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: O valor da configuração *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: O NameID recebido do IdP quando o usuário fizer login. \n- *\\_\\_sessionIndex\\_\\_*: O sessionIndex recebido do IdP quando o usuário fizer login.", "SAML_LogoutResponse_Template": "Modelo de resposta de logout", - "SAML_LogoutResponse_Template_Description": "As seguintes variáveis estão disponíveis: \n- **\\_\\_newId\\_\\_**: ID string gerado aleatoriamente \n- **\\_\\_inResponseToId\\_\\_**: O ID da solicitação de logout recebido do IdP \n- **\\_\\_instant\\_\\_**: Carimbo de hora atual \n- **\\_\\_idpSLORedirectURL\\_\\_**: O URL do IDP Single LogOut para redirecionar. \n- **\\_\\_issuer\\_\\_**: O valor da configuração {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: O valor da configuração {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: O NameID recebido do IdP Logout Request. \n- **\\_\\_sessionIndex\\_\\_**: O sessionIndex recebido do IdP Logout Request.", + "SAML_LogoutResponse_Template_Description": "As seguintes variáveis estão disponíveis: \n- *\\_\\_newId\\_\\_*: ID string gerado aleatoriamente \n- *\\_\\_inResponseToId\\_\\_*: O ID da solicitação de logout recebido do IdP \n- *\\_\\_instant\\_\\_*: Carimbo de hora atual \n- *\\_\\_idpSLORedirectURL\\_\\_*: O URL do IDP Single LogOut para redirecionar. \n- *\\_\\_issuer\\_\\_*: O valor da configuração *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: O valor da configuração *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: O NameID recebido do IdP Logout Request. \n- *\\_\\_sessionIndex\\_\\_*: O sessionIndex recebido do IdP Logout Request.", "SAML_MetadataCertificate_Template": "Modelo de certificados de metadados", - "SAML_Metadata_Certificate_Template_Description": "As seguintes variáveis estão disponíveis: \n- **\\_\\_certificate\\_\\_**: O certificado privado para a criptografia de afirmação", + "SAML_Metadata_Certificate_Template_Description": "As seguintes variáveis estão disponíveis: \n- *\\_\\_certificate\\_\\_*: O certificado privado para a criptografia de afirmação", "SAML_Metadata_Template": "Modelo de metadados", - "SAML_Metadata_Template_Description": "As seguintes variáveis estão disponíveis: \n- **\\_\\_sloLocation\\_\\_**: A URL do Single LogOut do Rocket.Chat. \n- **\\_\\_issuer\\_\\_**: O valor da configuração {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: O valor da configuração {{Identifier Format}}. \n- **\\_\\_certificateTag\\_\\_**: Se um certificado privado estiver configurado, isso incluirá o {{Metadata Certificate Template}}, caso contrário, será ignorado. \n- **\\_\\_callbackUrl\\_\\_**: A URL de callback do Rocket.Chat.", + "SAML_Metadata_Template_Description": "As seguintes variáveis estão disponíveis: \n- *\\_\\_sloLocation\\_\\_*: A URL do Single LogOut do Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: O valor da configuração *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: O valor da configuração *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Se um certificado privado estiver configurado, isso incluirá o {{Metadata Certificate Template}}, caso contrário, será ignorado. \n- *\\_\\_callbackUrl\\_\\_*: A URL de callback do Rocket.Chat.", "SAML_NameIdPolicy_Template": "Modelo da política NameID", "SAML_NameIdPolicy_Template_Description": "Você pode usar qualquer variável do modelo Authorize Request.", "SAML_Role_Attribute_Name": "Nome do atributo de função", diff --git a/packages/i18n/src/locales/ru.i18n.json b/packages/i18n/src/locales/ru.i18n.json index 9fc54991f3859..2b870c4291643 100644 --- a/packages/i18n/src/locales/ru.i18n.json +++ b/packages/i18n/src/locales/ru.i18n.json @@ -3313,13 +3313,13 @@ "SAML_Allowed_Clock_Drift": "Допустимое смещение часов поставщика идентификационных данных", "SAML_Allowed_Clock_Drift_Description": "Часы поставщика идентификационных данных могут немного опережать системные часы. Вы можете допустить небольшое смещение часов. Его значение должно быть указано в количестве миллисекунд (мс). Указанное значение прибавляется к текущему времени проверки ответа.", "SAML_AuthnContext_Template": "Шаблон AuthnContext", - "SAML_AuthnContext_Template_Description": "Здесь можно использовать любую переменную из шаблона AuthnRequest. \n \n Чтобы добавить дополнительные контексты authn, продублируйте тег {{AuthnContextClassRef}} и замените переменную {{\\_\\_authnContext\\_\\}} на новый контекст.", + "SAML_AuthnContext_Template_Description": "Здесь можно использовать любую переменную из шаблона AuthnRequest. \n \n Чтобы добавить дополнительные контексты authn, продублируйте тег `AuthnContextClassRef` и замените переменную `\\_\\_authnContext\\_\\_` на новый контекст.", "SAML_AuthnRequest_Template": "Шаблон AuthnRequest", - "SAML_AuthnRequest_Template_Description": "Доступны следующие переменные: \n- **\\_\\_newId\\_\\_**: Случайно сгенерированная строка идентификатора \n- **\\_\\_instant\\_\\_**: Текущая метка времени \n- **\\_\\_callbackUrl\\_\\_**: URL обратного вызова Rocket.Chat. \n- **\\_\\_entryPoint\\_\\_**: Значение параметра {{Custom Entry Point}}. \n- **\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormatTag\\_\\_**: Содержимое шаблона {{NameID Policy Template}}, если настроен действительный {{Identifier Format}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Формат_идентификатора}}. \n- **\\_\\_authnContextTag\\_\\_**: Содержимое шаблона {{Автоконтекста}}, если настроен действительный {{Настроенный Автоконтекст}}. \n- **\\_\\_authnContextComparison\\_\\_**: Значение параметра {{Сравнение контекстов}}. \n- **\\_\\_authnContext\\_\\_**: Значение параметра {{Custom Authn Context}}.", + "SAML_AuthnRequest_Template_Description": "Доступны следующие переменные: \n- *\\_\\_newId\\_\\_*: Случайно сгенерированная строка идентификатора \n- *\\_\\_instant\\_\\_*: Текущая метка времени \n- *\\_\\_callbackUrl\\_\\_*: URL обратного вызова Rocket.Chat. \n- *\\_\\_entryPoint\\_\\_*: Значение параметра *Custom Entry Point*. \n- *\\_\\_issuer\\_\\_*: Значение параметра *Custom Issuer*. \n- *\\_\\_identifierFormatTag\\_\\_*: Содержимое шаблона *NameID Policy Template*, если настроен действительный *Identifier Format*. \n- *\\_\\_identifierFormat\\_\\_*: Значение параметра *Формат идентификатора*. \n- *\\_\\_authnContextTag\\_\\_*: Содержимое шаблона *Автоконтекста*, если настроен действительный *Настроенный Автоконтекст*. \n- *\\_\\_authnContextComparison\\_\\_*: Значение параметра *Сравнение контекстов*. \n- *\\_\\_authnContext\\_\\_*: Значение параметра *Custom Authn Context*.", "SAML_Connection": "Подключение", "SAML_Custom_Authn_Context": "Пользовательский контекст Authn", "SAML_Custom_Authn_Context_Comparison": "Сравнение контекста Authn", - "SAML_Custom_Authn_Context_description": "Оставьте это значение пустым, чтобы исключить контекст authn из запроса. \n \nЧтобы добавить несколько контекстов аутентификации, добавьте дополнительные контексты непосредственно в параметр {{AuthnContext Template}}.", + "SAML_Custom_Authn_Context_description": "Оставьте это значение пустым, чтобы исключить контекст authn из запроса. \n \nЧтобы добавить несколько контекстов аутентификации, добавьте дополнительные контексты непосредственно в параметр *AuthnContext Template*.", "SAML_Custom_Cert": "Пользовательский сертификат", "SAML_Custom_Debug": "Включить режим отладки", "SAML_Custom_EMail_Field": "Имя поля электронной почты", @@ -3363,13 +3363,13 @@ "SAML_Identifier_Format": "Формат идентификатора", "SAML_Identifier_Format_Description": "Оставьте это поле пустым, чтобы исключить политику NameID из запроса.", "SAML_LogoutRequest_Template": "Шаблон запроса на выход из системы", - "SAML_LogoutRequest_Template_Description": "Доступны следующие переменные: \n- **\\_\\_newId\\_\\_**: Случайно сгенерированная строка идентификатора \n- **\\_\\_instant\\_\\_**: Текущая метка времени \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL IDP Single LogOut для перенаправления. \n- **\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Формат идентификатора}}. \n- **\\_\\_nameID\\_\\_**: Идентификатор имени, полученный от IdP, когда пользователь вошел в систему. \n- **\\_\\_sessionIndex\\_\\_**: Индекс сессии, полученный от IdP, когда пользователь вошел в систему.", + "SAML_LogoutRequest_Template_Description": "Доступны следующие переменные: \n- *\\_\\_newId\\_\\_*: Случайно сгенерированная строка идентификатора \n- *\\_\\_instant\\_\\_*: Текущая метка времени \n- *\\_\\_idpSLORedirectURL\\_\\_*: URL IDP Single LogOut для перенаправления. \n- *\\_\\_issuer\\_\\_*: Значение параметра *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Значение параметра *Формат идентификатора*. \n- *\\_\\_nameID\\_\\_*: Идентификатор имени, полученный от IdP, когда пользователь вошел в систему. \n- *\\_\\_sessionIndex\\_\\_*: Индекс сессии, полученный от IdP, когда пользователь вошел в систему.", "SAML_LogoutResponse_Template": "Шаблон выхода из системы", - "SAML_LogoutResponse_Template_Description": "Доступны следующие переменные: \n- **\\_\\_newId\\_\\_**: Случайно сгенерированная идентификационная строка \n- **\\_\\_inResponseToId\\_\\_**: Идентификатор запроса на выход из системы, полученный от IdP \n- **\\_\\_instant\\_\\_**: Текущая метка времени \n- **\\_\\_idpSLORedirectURL\\_\\_**: URL одиночного входа в систему IDP для переадресации. \n- **\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: Идентификатор имени, полученный из запроса на выход из системы IdP. \n- **\\_\\_sessionIndex\\_\\_**: СессияИндекс, полученный из запроса на выход из системы IdP.", + "SAML_LogoutResponse_Template_Description": "Доступны следующие переменные: \n- *\\_\\_newId\\_\\_*: Случайно сгенерированная идентификационная строка \n- *\\_\\_inResponseToId\\_\\_*: Идентификатор запроса на выход из системы, полученный от IdP \n- *\\_\\_instant\\_\\_*: Текущая метка времени \n- *\\_\\_idpSLORedirectURL\\_\\_*: URL одиночного входа в систему IDP для переадресации. \n- *\\_\\_issuer\\_\\_*: Значение параметра *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Значение параметра *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: Идентификатор имени, полученный из запроса на выход из системы IdP. \n- *\\_\\_sessionIndex\\_\\_*: СессияИндекс, полученный из запроса на выход из системы IdP.", "SAML_MetadataCertificate_Template": "Шаблон сертификата метаданных", - "SAML_Metadata_Certificate_Template_Description": "Доступны следующие переменные: \n- **\\_\\_certificate\\_\\_**: Частный сертификат для шифрования утверждения.", + "SAML_Metadata_Certificate_Template_Description": "Доступны следующие переменные: \n- *\\_\\_certificate\\_\\_*: Частный сертификат для шифрования утверждения.", "SAML_Metadata_Template": "Шаблон метаданных", - "SAML_Metadata_Template_Description": "Доступны следующие переменные: \n- **\\_\\_sloLocation\\_\\_**:URL одиночного входа в систему Rocket.Chat. \n- **\\_\\_issuer\\_\\_**: Значение параметра {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Значение параметра {{Identifier Format}}. \n- **\\_\\_certificateTag\\_\\_**: Если настроен личный сертификат, он будет включать {{Metadata Certificate Template}}, в противном случае он будет проигнорирован. \n- **\\_\\_callbackUrl\\_\\_**: URL обратного вызова Rocket.Chat.", + "SAML_Metadata_Template_Description": "Доступны следующие переменные: \n- *\\_\\_sloLocation\\_\\_*:URL одиночного входа в систему Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Значение параметра *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Значение параметра *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Если настроен личный сертификат, он будет включать {{Metadata Certificate Template}}, в противном случае он будет проигнорирован. \n- *\\_\\_callbackUrl\\_\\_*: URL обратного вызова Rocket.Chat.", "SAML_NameIdPolicy_Template": "Шаблон политики NameID", "SAML_NameIdPolicy_Template_Description": "Тут Вы можете использовать любую переменную из шаблона запроса авторизации.", "SAML_Role_Attribute_Name": "Имя атрибута роли", diff --git a/packages/i18n/src/locales/sv.i18n.json b/packages/i18n/src/locales/sv.i18n.json index a8e55794bd6e0..1f493c9edf4c9 100644 --- a/packages/i18n/src/locales/sv.i18n.json +++ b/packages/i18n/src/locales/sv.i18n.json @@ -4426,13 +4426,13 @@ "SAML_Allowed_Clock_Drift": "Tillåten klockavvikelse från identitetsleverantören", "SAML_Allowed_Clock_Drift_Description": "Identitetsleverantörens klocka kan vara något förskjuten från dina systemklockor. Du kan tillåta att klockan avviker något. Värdet måste anges i millisekunder (ms). Det angivna värdet läggs till den aktuella tiden då svaret valideras.", "SAML_AuthnContext_Template": "Mallen AuthnContext", - "SAML_AuthnContext_Template_Description": "Du kan använda valfri variabel från mallen AuthnRequest här. \n \n Du lägger till fler autentiseringskontexter genom att duplicera taggen {{AuthnContextClassRef}} och ersätta variabeln {{\\_\\_authnContext\\_\\}} med den nya kontexten.", + "SAML_AuthnContext_Template_Description": "Du kan använda valfri variabel från mallen AuthnRequest här. \n \n Du lägger till fler autentiseringskontexter genom att duplicera taggen `AuthnContextClassRef` och ersätta variabeln `\\_\\_authnContext\\_\\_` med den nya kontexten.", "SAML_AuthnRequest_Template": "Mallen AuthnRequest", - "SAML_AuthnRequest_Template_Description": "Följande variabler är tillgängliga: \n- **\\_\\_newId\\_\\_**: Slumpmässigt genererad id-sträng \n- **\\_\\_instant\\_\\_**: Aktuell tidsstämpel \n- **\\_\\_callbackUrl\\_\\_**: Återanrops-URL:en för Rocket.Chat. \n- **\\_\\_entryPoint\\_\\_**: Värdet för inställningen {{Custom Entry Point}}. \n- **\\_\\_issuer\\_\\_**: Värdet för inställningen {{Custom Issuer}}. \n- **\\_\\_identifierFormatTag\\_\\_**: Innehållet i {{NameID Policy Template}} om ett giltigt {{Identifier Format}} har konfigurerats. \n- **\\_\\_identifierFormat\\_\\_**: Värdet för inställningen {{Identifier Format}}. \n- **\\_\\_authnContextTag\\_\\_**: Innehållet i {{AuthnContext Template}} om en giltig {{Custom Authn Context}} is har konfigurerats. \n- **\\_\\_authnContextComparison\\_\\_**: Värdet för inställningen {{Authn Context Comparison}}. \n- **\\_\\_authnContext\\_\\_**: Värdet för inställningen {{Custom Authn Context}}.", + "SAML_AuthnRequest_Template_Description": "Följande variabler är tillgängliga: \n- *\\_\\_newId\\_\\_*: Slumpmässigt genererad id-sträng \n- *\\_\\_instant\\_\\_*: Aktuell tidsstämpel \n- *\\_\\_callbackUrl\\_\\_*: Återanrops-URL:en för Rocket.Chat. \n- *\\_\\_entryPoint\\_\\_*: Värdet för inställningen *Custom Entry Point*. \n- *\\_\\_issuer\\_\\_*: Värdet för inställningen *Custom Issuer*. \n- *\\_\\_identifierFormatTag\\_\\_*: Innehållet i *NameID Policy Template* om ett giltigt *Identifier Format* har konfigurerats. \n- *\\_\\_identifierFormat\\_\\_*: Värdet för inställningen *Identifier Format*. \n- *\\_\\_authnContextTag\\_\\_*: Innehållet i *AuthnContext Template* om en giltig *Custom Authn Context* is har konfigurerats. \n- *\\_\\_authnContextComparison\\_\\_*: Värdet för inställningen *Authn Context Comparison*. \n- *\\_\\_authnContext\\_\\_*: Värdet för inställningen *Custom Authn Context*.", "SAML_Connection": "Anslutning", "SAML_Custom_Authn_Context": "Anpassad autentiseringskontext", "SAML_Custom_Authn_Context_Comparison": "Jämförelse av autentiseringskontext", - "SAML_Custom_Authn_Context_description": "Lämna det här fältet tomt om du vill utelämna autentiseringskontexten i förfrågan. \n \n Du lägger till flera autentiseringskontexter genom att lägga till dem direkt i inställningen {{AuthnContext Template}}.", + "SAML_Custom_Authn_Context_description": "Lämna det här fältet tomt om du vill utelämna autentiseringskontexten i förfrågan. \n \n Du lägger till flera autentiseringskontexter genom att lägga till dem direkt i inställningen *AuthnContext Template*.", "SAML_Custom_Cert": "Anpassat certifikat", "SAML_Custom_Debug": "Aktivera debugläge", "SAML_Custom_EMail_Field": "Namn på e-postfält", @@ -4479,13 +4479,13 @@ "SAML_Identifier_Format": "Id-format", "SAML_Identifier_Format_Description": "Lämna tomt för att utlämna policyn för NameID i förfrågan.", "SAML_LogoutRequest_Template": "Mall för utloggningsförfrågning", - "SAML_LogoutRequest_Template_Description": "Följande variabler är tillgängliga: \n- **\\_\\_newId\\_\\_**: Slumpmässigt genererad id-sträng \n- **\\_\\_instant\\_\\_**: Aktuell tidsstämpel \n- **\\_\\_idpSLORedirectURL\\_\\_**: identitetsintygarens URL för enkel utloggning som omdirigering ska göras till. \n- **\\_\\_issuer\\_\\_**: Värdet för inställningen {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Värdet för inställningen {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: Värdet för NameID som mottogs från identitetsintygaren när användaren loggade in. \n- **\\_\\_sessionIndex\\_\\_**: Värdet för sessionIndex som mottogs från identitetsintygaren när användaren loggade in.", + "SAML_LogoutRequest_Template_Description": "Följande variabler är tillgängliga: \n- *\\_\\_newId\\_\\_*: Slumpmässigt genererad id-sträng \n- *\\_\\_instant\\_\\_*: Aktuell tidsstämpel \n- *\\_\\_idpSLORedirectURL\\_\\_*: identitetsintygarens URL för enkel utloggning som omdirigering ska göras till. \n- *\\_\\_issuer\\_\\_*: Värdet för inställningen *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Värdet för inställningen *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: Värdet för NameID som mottogs från identitetsintygaren när användaren loggade in. \n- *\\_\\_sessionIndex\\_\\_*: Värdet för sessionIndex som mottogs från identitetsintygaren när användaren loggade in.", "SAML_LogoutResponse_Template": "Mall för utloggningssvar", - "SAML_LogoutResponse_Template_Description": "Följande variabler är tillgängliga: \n- **\\_\\_newId\\_\\_**: Slumpmässigt genererad id-sträng \n- **\\_\\_inResponseToId\\_\\_**: Id:t för utloggningsförfrågningen som mottagits från idP \n- **\\_\\_instant\\_\\_**: Aktuell tidsstämpel \n- **\\_\\_idpSLORedirectURL\\_\\_**: IdP URL för Single LogOut som omdirigering ska göras till. \n- **\\_\\_issuer\\_\\_**: Värdet för inställningen {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Värdet för inställningen {{Identifier Format}}. \n- **\\_\\_nameID\\_\\_**: NameID som mottas från idP Logout Request. \n- **\\_\\_sessionIndex\\_\\_**: sessionsIndex som mottas från idP Logout Request", + "SAML_LogoutResponse_Template_Description": "Följande variabler är tillgängliga: \n- *\\_\\_newId\\_\\_*: Slumpmässigt genererad id-sträng \n- *\\_\\_inResponseToId\\_\\_*: Id:t för utloggningsförfrågningen som mottagits från idP \n- *\\_\\_instant\\_\\_*: Aktuell tidsstämpel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IdP URL för Single LogOut som omdirigering ska göras till. \n- *\\_\\_issuer\\_\\_*: Värdet för inställningen *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Värdet för inställningen *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: NameID som mottas från idP Logout Request. \n- *\\_\\_sessionIndex\\_\\_*: sessionsIndex som mottas från idP Logout Request", "SAML_MetadataCertificate_Template": "Mall för metadatacertifikat", - "SAML_Metadata_Certificate_Template_Description": "Följande variabler är tillgängliga: \n- **\\_\\_certificate\\_\\_**: Det privata certifikatet för verifieringskryptering.", + "SAML_Metadata_Certificate_Template_Description": "Följande variabler är tillgängliga: \n- *\\_\\_certificate\\_\\_*: Det privata certifikatet för verifieringskryptering.", "SAML_Metadata_Template": "Metadatamall", - "SAML_Metadata_Template_Description": "Följande variabler är tillgängliga: \n- **\\_\\_sloLocation\\_\\_**: URL för enkel utloggning för Rocket.Chat. \n- **\\_\\_issuer\\_\\_**: Värdet för inställningen {{Custom Issuer}}. \n- **\\_\\_identifierFormat\\_\\_**: Värdet för inställningen {{Identifier Format}}. \n- **\\_\\_certificateTag\\_\\_**: Om ett privat certifikat har konfigurerats ska det innehålla {{Metadata Certificate Template}}, annars ignoreras det. \n- **\\_\\_callbackUrl\\_\\_**: Återanrops-URL för Rocket.Chat.", + "SAML_Metadata_Template_Description": "Följande variabler är tillgängliga: \n- *\\_\\_sloLocation\\_\\_*: URL för enkel utloggning för Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Värdet för inställningen *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Värdet för inställningen *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Om ett privat certifikat har konfigurerats ska det innehålla {{Metadata Certificate Template}}, annars ignoreras det. \n- *\\_\\_callbackUrl\\_\\_*: Återanrops-URL för Rocket.Chat.", "SAML_NameIdPolicy_Template": "Policymall för NameID", "SAML_NameIdPolicy_Template_Description": "Du kan använda valfria variabler från mallen för godkännande av förfrågan", "SAML_Role_Attribute_Name": "Attribut för rollnamn", diff --git a/packages/i18n/src/locales/zh-TW.i18n.json b/packages/i18n/src/locales/zh-TW.i18n.json index b8cd28dc36a53..ec500fde615f4 100644 --- a/packages/i18n/src/locales/zh-TW.i18n.json +++ b/packages/i18n/src/locales/zh-TW.i18n.json @@ -1366,7 +1366,7 @@ "E2E_enable": "E2E 已啟用", "E2E_key_reset_email": "E2E 金鑰重設通知", "E2E_password_request_text": "存取您的加密私人群組和直接訊息,輸入您的加密密碼。
您需要輸入這個密碼來加密/解密您的訊息在每個您使用的客戶端,金鑰不會儲存在伺服器上。", - "E2E_password_reveal_text": "您現在可以建立加密私人群組和直接訊息。您可能也可以變更已存在的私人群組或直接訊息來加密。

這是點對點的加密,所以金鑰是用來加密/解密,您的訊息也不會儲存到伺服器上。為了這個原因您必須安全存放您的密碼。您會希望使用 E2E 加密輸入到其他裝置。 點擊這裡了解更多!

您的密碼是: {{randomPassword}}

這是自動產生的密碼,在任何時間從任何瀏覽器您可以設定新的密碼給您的加密金鑰您可以輸入已存在的密碼。
這個密碼只能存在這個瀏覽器,直到您儲存密碼和關閉這個訊息。", + "E2E_password_reveal_text": "建立具有端到端加密的安全私人聊天室和直接訊息。此密碼不會儲存在伺服器上。您可以在所有裝置上使用它。", "ECDH_Enabled": "為資料傳輸啟用第二層加密", "Edit": "編輯", "Edit_Business_Hour": "編輯營業時間", @@ -3077,12 +3077,12 @@ "SAML_Allowed_Clock_Drift": "允許來自身份提供者的時間差", "SAML_Allowed_Clock_Drift_Description": "身份提供者的時間可能會比您的系統時間快一些。您可以允許少量的時間差。它的值必須以毫秒為單位。提供的數值將增加到驗證回應的目前時間。", "SAML_AuthnContext_Template": "AuthnContext 範本", - "SAML_AuthnContext_Template_Description": "您可以在此處使用AuthnRequest範本中的任何變數。 \n \n要增加其他身份驗證上下文,請複製{{AuthnContextClassRef}} 標誌然後取代成 {{\\_\\_authnContext\\_\\}} 變數替換為新的上下文。", + "SAML_AuthnContext_Template_Description": "您可以在此處使用AuthnRequest範本中的任何變數。 \n \n要增加其他身份驗證上下文,請複製`AuthnContextClassRef` 標誌然後取代成 `\\_\\_authnContext\\_\\_` 變數替換為新的上下文。", "SAML_AuthnRequest_Template": "AuthnRequest 範本", - "SAML_AuthnRequest_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**:隨機產生的ID字串 \n- **\\_\\_instant\\_\\_**:目前時間戳記 \n- **\\_\\_callbackUrl\\_\\_**:Rocket.Chat 回應網址。 \n- **\\_\\_entryPoint\\_\\_**: {{Custom Entry Point}}設定的值。 \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} 設定的值。 \n- **\\_\\_identifierFormatTag\\_\\_**: 如果設定了有效的{{Identifier Format}},則{{NameID原則範本}}的內容。 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}}設定的值。 \n- **\\_\\_authnContextTag\\_\\_**:如果設定了有效的{{Custom Authn Context}},則{{AuthnContext Template}}的內容。 \n- **\\_\\_authnContextComparison\\_\\_**: {{Authn上下文比較}}設定的值。 \n- **\\_\\_authnContext\\_\\_**: {{Custom Authn Context}}設定的值。", + "SAML_AuthnRequest_Template_Description": "可以使用以下變數: \n- *\\_\\_newId\\_\\_*:隨機產生的ID字串 \n- *\\_\\_instant\\_\\_*:目前時間戳記 \n- *\\_\\_callbackUrl\\_\\_*:Rocket.Chat 回應網址。 \n- *\\_\\_entryPoint\\_\\_*: *Custom Entry Point*設定的值。 \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* 設定的值。 \n- *\\_\\_identifierFormatTag\\_\\_*: 如果設定了有效的*Identifier Format*,則*NameID原則範本*的內容。 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format*設定的值。 \n- *\\_\\_authnContextTag\\_\\_*:如果設定了有效的*Custom Authn Context*,則*AuthnContext Template*的內容。 \n- *\\_\\_authnContextComparison\\_\\_*: *Authn上下文比較*設定的值。 \n- *\\_\\_authnContext\\_\\_*: *Custom Authn Context*設定的值。", "SAML_Custom_Authn_Context": "自定義授權內文", "SAML_Custom_Authn_Context_Comparison": "內容驗證比對", - "SAML_Custom_Authn_Context_description": "將此保留為空可忽略請求中的authn上下文。要增加多個身份驗證上下文,請將其他上下文直接增加到 {{AuthnContext Template}} 設定中。", + "SAML_Custom_Authn_Context_description": "將此保留為空可忽略請求中的authn上下文。要增加多個身份驗證上下文,請將其他上下文直接增加到 *AuthnContext Template* 設定中。", "SAML_Custom_Cert": "自訂憑證", "SAML_Custom_Debug": "啟用除錯", "SAML_Custom_EMail_Field": "電子郵件欄位名稱", @@ -3119,13 +3119,13 @@ "SAML_Identifier_Format": "標識符格式", "SAML_Identifier_Format_Description": "將此保留為空可忽略請求中的 NameID 政策。", "SAML_LogoutRequest_Template": "登出請求範本", - "SAML_LogoutRequest_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**: 隨機產生的ID字串 \n- **\\_\\_instant\\_\\_**:目前時間戳記 \n- **\\_\\_idpSLORedirectURL\\_\\_**:重定向到的IDP單一登出網址。 \n- **\\_\\_issuer\\_\\_**:{{Custom Issuer}}設定的值。 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}}設定的值。 \n- **\\_\\_nameID\\_\\_**:使用者登入時從IdP接收到的NameID。 \n- **\\_\\_sessionIndex\\_\\_**:使用者登出要求時從IdP接收到的sessionIndex。", + "SAML_LogoutRequest_Template_Description": "可以使用以下變數: \n- *\\_\\_newId\\_\\_*: 隨機產生的ID字串 \n- *\\_\\_instant\\_\\_*:目前時間戳記 \n- *\\_\\_idpSLORedirectURL\\_\\_*:重定向到的IDP單一登出網址。 \n- *\\_\\_issuer\\_\\_*:*Custom Issuer*設定的值。 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format*設定的值。 \n- *\\_\\_nameID\\_\\_*:使用者登入時從IdP接收到的NameID。 \n- *\\_\\_sessionIndex\\_\\_*:使用者登出要求時從IdP接收到的sessionIndex。", "SAML_LogoutResponse_Template": "登出回應範本", - "SAML_LogoutResponse_Template_Description": "可以使用以下變數: \n- **\\_\\_newId\\_\\_**: 隨機產生的ID字串 \n- **\\_\\_inResponseToId\\_\\_**: 從Idp接收到登出要求的ID \n- **\\_\\_instant\\_\\_**:目前時間戳記 \n- **\\_\\_idpSLORedirectURL\\_\\_**:重定向到的IDP單一登出網址。 \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}}設定的值。 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}}設定的值。 \n- **\\_\\_nameID\\_\\_**:使用者登入時從IdP接收到的NameID。 \n- **\\_\\_sessionIndex\\_\\_**:使用者登出要求時從IdP接收到的sessionIndex。", + "SAML_LogoutResponse_Template_Description": "可以使用以下變數: \n- *\\_\\_newId\\_\\_*: 隨機產生的ID字串 \n- *\\_\\_inResponseToId\\_\\_*: 從Idp接收到登出要求的ID \n- *\\_\\_instant\\_\\_*:目前時間戳記 \n- *\\_\\_idpSLORedirectURL\\_\\_*:重定向到的IDP單一登出網址。 \n- *\\_\\_issuer\\_\\_*: *Custom Issuer*設定的值。 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format*設定的值。 \n- *\\_\\_nameID\\_\\_*:使用者登入時從IdP接收到的NameID。 \n- *\\_\\_sessionIndex\\_\\_*:使用者登出要求時從IdP接收到的sessionIndex。", "SAML_MetadataCertificate_Template": "Metadata 憑證範本", - "SAML_Metadata_Certificate_Template_Description": "可以使用以下變數: \n- **\\_\\_certificate\\_\\_**:用於主要加密的專用憑證。", + "SAML_Metadata_Certificate_Template_Description": "可以使用以下變數: \n- *\\_\\_certificate\\_\\_*:用於主要加密的專用憑證。", "SAML_Metadata_Template": "Metadata 範本", - "SAML_Metadata_Template_Description": "可以使用以下變數: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chat 單一登出網址。 \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}}設定的值。 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}}設定的值。 \n- **\\_\\_certificateTag\\_\\_**: 如果設置了私人憑證,則將包括{{Metadata Certificate Template}},否則將被忽略。 \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat 回應網址。", + "SAML_Metadata_Template_Description": "可以使用以下變數: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat 單一登出網址。 \n- *\\_\\_issuer\\_\\_*: *Custom Issuer*設定的值。 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format*設定的值。 \n- *\\_\\_certificateTag\\_\\_*: 如果設置了私人憑證,則將包括{{Metadata Certificate Template}},否則將被忽略。 \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat 回應網址。", "SAML_NameIdPolicy_Template": "NameID 政策範本", "SAML_NameIdPolicy_Template_Description": "您可以在此處使用授權請求範本中的任何變數。", "SAML_Role_Attribute_Name": "角色屬性名稱", diff --git a/packages/i18n/src/locales/zh.i18n.json b/packages/i18n/src/locales/zh.i18n.json index 3e62415061942..eb482cb656991 100644 --- a/packages/i18n/src/locales/zh.i18n.json +++ b/packages/i18n/src/locales/zh.i18n.json @@ -1233,7 +1233,7 @@ "E2E_enable": "启用端到端加密", "E2E_key_reset_email": "端到端加密重置通知", "E2E_password_request_text": "要访问加密的私人组和私聊,请输入密码。
您需要在使用的每个客户端上输入此密码来对消息进行编码/解码,因为密钥未存储在服务器上。", - "E2E_password_reveal_text": "您现在可以创建加密的组和私聊。您也可以将现有的私有组和私聊转为加密的。

这是端到端加密,因此编码/解码邮件的密钥不会保存在服务器上。所以您需要将此密码存储在安全的地方。您需要在希望使用端到端加密的其他设备上输入它。 点击这里了解更多

您的密码是: {{randomPassword}}

这是系统自动生成的密码,您可以为您的密钥设置一个新密码(您可以随时从任何浏览器输入现有密码)。
此浏览器仅存储此密码到您存储密码并关闭此消息前。", + "E2E_password_reveal_text": "创建具有端到端加密的安全私人聊天室和私聊消息。此密码不会存储在服务器上。您可以在所有设备上使用它。", "Edit": "编辑", "Edit_Business_Hour": "编辑营业时间", "Edit_Canned_Responses": "编辑自动回复", @@ -2780,12 +2780,12 @@ "SAML_Allowed_Clock_Drift": "允许来自标识符提供者的时间偏移", "SAML_Allowed_Clock_Drift_Description": "标识符提供者的时间可能相对您的系统时间向前偏移。您可以允许少量的时间偏移。值必须以毫秒数提供。值将加到相应验证时的当前时间。", "SAML_AuthnContext_Template": "AuthnContext 模版", - "SAML_AuthnContext_Template_Description": "你可以在这里使用 AuthnRequest 模板中的任何变量。 \n \n 要添加额外的 authn 上下文,复制 {{AuthnContextClassRef}} 标签,并用新的上下文替换 {{\\_\\_authnContext\\_\\}} 变量。", + "SAML_AuthnContext_Template_Description": "你可以在这里使用 AuthnRequest 模板中的任何变量。 \n \n 要添加额外的 authn 上下文,复制 `AuthnContextClassRef` 标签,并用新的上下文替换 `\\_\\_authnContext\\_\\_` 变量。", "SAML_AuthnRequest_Template": "AuthnRequest 模板", - "SAML_AuthnRequest_Template_Description": "下列变量可用: \n- **\\_\\_newId\\_\\_**: 随机生成的字符串 ID \n- **\\_\\_instant\\_\\_**: 当前时间戳 \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat 回调 URL \n- **\\_\\_entryPoint\\_\\_**: {{Custom Entry Point}} 设置值. \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} 设置值 \n- **\\_\\_identifierFormatTag\\_\\_**: 配置了合法 {{Identifier Format}} 时的 {{NameID Policy Template}} 内容 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} 设置值. \n- **\\_\\_authnContextTag\\_\\_**: 配置了合法 {{Custom Authn Context}} 时的 {{AuthnContext Template}} 内容 \n- **\\_\\_authnContextComparison\\_\\_**: {{Authn Context Comparison}} 设置值 \n- **\\_\\_authnContext\\_\\_**: {{Custom Authn Context}} 设置值", + "SAML_AuthnRequest_Template_Description": "下列变量可用: \n- *\\_\\_newId\\_\\_*: 随机生成的字符串 ID \n- *\\_\\_instant\\_\\_*: 当前时间戳 \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat 回调 URL \n- *\\_\\_entryPoint\\_\\_*: *Custom Entry Point* 设置值. \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* 设置值 \n- *\\_\\_identifierFormatTag\\_\\_*: 配置了合法 *Identifier Format* 时的 *NameID Policy Template* 内容 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* 设置值. \n- *\\_\\_authnContextTag\\_\\_*: 配置了合法 *Custom Authn Context* 时的 *AuthnContext Template* 内容 \n- *\\_\\_authnContextComparison\\_\\_*: *Authn Context Comparison* 设置值 \n- *\\_\\_authnContext\\_\\_*: *Custom Authn Context* 设置值", "SAML_Custom_Authn_Context": "自定义授权上下文", "SAML_Custom_Authn_Context_Comparison": "Authn Context 对比", - "SAML_Custom_Authn_Context_description": "留空以省略请求中的 authn上下文。 \n \n要添加多个 authn 上下文,添加额外的上下文到 {{AuthnContext Template}} 设置。", + "SAML_Custom_Authn_Context_description": "留空以省略请求中的 authn上下文。 \n \n要添加多个 authn 上下文,添加额外的上下文到 *AuthnContext Template* 设置。", "SAML_Custom_Cert": "自定义凭证", "SAML_Custom_Debug": "使能调试", "SAML_Custom_EMail_Field": "电子邮件字段名称", @@ -2825,13 +2825,13 @@ "SAML_Identifier_Format": "标识符格式", "SAML_Identifier_Format_Description": "将此留空以忽略请求的 NameID 策略", "SAML_LogoutRequest_Template": "登出请求模版", - "SAML_LogoutRequest_Template_Description": "下列变量可用: \n- **\\_\\_newId\\_\\_**: 随机生成的 ID 字符串 \n- **\\_\\_instant\\_\\_**: 当前时间戳 \n- **\\_\\_idpSLORedirectURL\\_\\_**: 要重定向至的 IDP 单点登出 URL \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} 设置值 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} 设置值 \n- **\\_\\_nameID\\_\\_**: 当用户登录时从 Idp 获取的 NameID \n- **\\_\\_sessionIndex\\_\\_**: 当用户登录时从 Idp 获取的 sessionIndex", + "SAML_LogoutRequest_Template_Description": "下列变量可用: \n- *\\_\\_newId\\_\\_*: 随机生成的 ID 字符串 \n- *\\_\\_instant\\_\\_*: 当前时间戳 \n- *\\_\\_idpSLORedirectURL\\_\\_*: 要重定向至的 IDP 单点登出 URL \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* 设置值 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* 设置值 \n- *\\_\\_nameID\\_\\_*: 当用户登录时从 Idp 获取的 NameID \n- *\\_\\_sessionIndex\\_\\_*: 当用户登录时从 Idp 获取的 sessionIndex", "SAML_LogoutResponse_Template": "登出响应模版", - "SAML_LogoutResponse_Template_Description": "下列变量可用: \n- **\\_\\_newId\\_\\_**: 随机生成的 ID 字符串 \n- **\\_\\_inResponseToId\\_\\_**: 从 Idp 从获取到的登出请求 ID \n- **\\_\\_instant\\_\\_**: 当前时间戳 \n- **\\_\\_idpSLORedirectURL\\_\\_**: 要重定向至的 IDP 单点登出 URL \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} 设置值 \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} 设置值 \n- **\\_\\_nameID\\_\\_**: 当用户登录时从 Idp 获取的 NameID \n- **\\_\\_sessionIndex\\_\\_**: 当用户登录时从 Idp 获取的 sessionIndex", + "SAML_LogoutResponse_Template_Description": "下列变量可用: \n- *\\_\\_newId\\_\\_*: 随机生成的 ID 字符串 \n- *\\_\\_inResponseToId\\_\\_*: 从 Idp 从获取到的登出请求 ID \n- *\\_\\_instant\\_\\_*: 当前时间戳 \n- *\\_\\_idpSLORedirectURL\\_\\_*: 要重定向至的 IDP 单点登出 URL \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* 设置值 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* 设置值 \n- *\\_\\_nameID\\_\\_*: 当用户登录时从 Idp 获取的 NameID \n- *\\_\\_sessionIndex\\_\\_*: 当用户登录时从 Idp 获取的 sessionIndex", "SAML_MetadataCertificate_Template": "元数据证书模版", - "SAML_Metadata_Certificate_Template_Description": "下列变量可用: \n- **\\_\\_certificate\\_\\_**: 用于断言加密的私有证书", + "SAML_Metadata_Certificate_Template_Description": "下列变量可用: \n- *\\_\\_certificate\\_\\_*: 用于断言加密的私有证书", "SAML_Metadata_Template": "元数据模版", - "SAML_Metadata_Template_Description": "下列变量可用: \n- **\\_\\_sloLocation\\_\\_**: Rocket.Chat 单点登出 URL \n- **\\_\\_issuer\\_\\_**: {{Custom Issuer}} 设置值. \n- **\\_\\_identifierFormat\\_\\_**: {{Identifier Format}} 设置值. \n- **\\_\\_certificateTag\\_\\_**: 当配置了私有证书时,将包含 {{Metadata Certificate Template}}, 否则将被忽略 \n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat 回调 URL.", + "SAML_Metadata_Template_Description": "下列变量可用: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat 单点登出 URL \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* 设置值. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* 设置值. \n- *\\_\\_certificateTag\\_\\_*: 当配置了私有证书时,将包含 {{Metadata Certificate Template}}, 否则将被忽略 \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat 回调 URL.", "SAML_NameIdPolicy_Template": "NameID 策略模版", "SAML_NameIdPolicy_Template_Description": "您可以在授权请求模版中使用这里的任何变量。", "SAML_Role_Attribute_Name": "身份属性名", From 1e775ef2590c606943460b763bc95e68596d940b Mon Sep 17 00:00:00 2001 From: Tasso Date: Thu, 25 Sep 2025 15:05:55 -0300 Subject: [PATCH 15/20] Manage ummatched placeholders --- packages/i18n/src/locales/ar.i18n.json | 8 +-- packages/i18n/src/locales/az.i18n.json | 1 - packages/i18n/src/locales/bn-BD.i18n.json | 4 +- packages/i18n/src/locales/ca.i18n.json | 6 --- packages/i18n/src/locales/cs.i18n.json | 5 +- packages/i18n/src/locales/da.i18n.json | 5 +- packages/i18n/src/locales/de-AT.i18n.json | 4 -- packages/i18n/src/locales/de-IN.i18n.json | 10 +--- packages/i18n/src/locales/de.i18n.json | 12 ++--- packages/i18n/src/locales/el.i18n.json | 5 -- packages/i18n/src/locales/en.i18n.json | 8 +-- packages/i18n/src/locales/eo.i18n.json | 3 -- packages/i18n/src/locales/es.i18n.json | 10 ++-- packages/i18n/src/locales/fa.i18n.json | 6 --- packages/i18n/src/locales/fi.i18n.json | 9 +--- packages/i18n/src/locales/fr.i18n.json | 8 +-- packages/i18n/src/locales/he.i18n.json | 4 -- packages/i18n/src/locales/hi-IN.i18n.json | 36 +++++-------- packages/i18n/src/locales/hr.i18n.json | 5 -- packages/i18n/src/locales/hu.i18n.json | 4 -- packages/i18n/src/locales/id.i18n.json | 5 -- packages/i18n/src/locales/it.i18n.json | 8 +-- packages/i18n/src/locales/ja.i18n.json | 8 +-- packages/i18n/src/locales/ka-GE.i18n.json | 9 ++-- packages/i18n/src/locales/km.i18n.json | 5 -- packages/i18n/src/locales/ko.i18n.json | 5 +- packages/i18n/src/locales/ku.i18n.json | 4 -- packages/i18n/src/locales/lo.i18n.json | 5 -- packages/i18n/src/locales/lt.i18n.json | 3 -- packages/i18n/src/locales/lv.i18n.json | 35 +++++-------- packages/i18n/src/locales/mn.i18n.json | 5 +- packages/i18n/src/locales/ms-MY.i18n.json | 7 +-- packages/i18n/src/locales/nb.i18n.json | 6 +-- packages/i18n/src/locales/nl.i18n.json | 8 +-- packages/i18n/src/locales/nn.i18n.json | 4 +- packages/i18n/src/locales/pl.i18n.json | 6 +-- packages/i18n/src/locales/pt-BR.i18n.json | 7 ++- packages/i18n/src/locales/pt.i18n.json | 2 - packages/i18n/src/locales/ro.i18n.json | 10 ---- packages/i18n/src/locales/ru.i18n.json | 8 +-- packages/i18n/src/locales/sk-SK.i18n.json | 2 - packages/i18n/src/locales/sl-SI.i18n.json | 2 - packages/i18n/src/locales/sq.i18n.json | 2 - packages/i18n/src/locales/sr.i18n.json | 4 -- packages/i18n/src/locales/sv.i18n.json | 8 ++- packages/i18n/src/locales/ta-IN.i18n.json | 9 +--- packages/i18n/src/locales/th-TH.i18n.json | 2 - packages/i18n/src/locales/tr.i18n.json | 4 -- packages/i18n/src/locales/ug.i18n.json | 5 -- packages/i18n/src/locales/uk.i18n.json | 5 -- packages/i18n/src/locales/vi-VN.i18n.json | 1 - packages/i18n/src/locales/zh-HK.i18n.json | 20 +++----- packages/i18n/src/locales/zh-TW.i18n.json | 7 +-- packages/i18n/src/locales/zh.i18n.json | 4 +- packages/i18n/src/scripts/check.mts | 62 +++++++++++++++++------ 55 files changed, 134 insertions(+), 306 deletions(-) diff --git a/packages/i18n/src/locales/ar.i18n.json b/packages/i18n/src/locales/ar.i18n.json index 9596ed9f7f5f6..49ae21147e108 100644 --- a/packages/i18n/src/locales/ar.i18n.json +++ b/packages/i18n/src/locales/ar.i18n.json @@ -1251,7 +1251,6 @@ "Delete": "حذف", "Delete_File_Warning": "سيترتب على حذف الملف حذفه إلى الأبد. لا يمكن التراجع عن هذا الإجراء.", "Delete_Role_Warning": "سيترتب على حذف الدور حذفه إلى الأبد. لا يمكن التراجع عن هذا الإجراء.", - "Delete_Room_Warning": "سيترتب على حذف الغرفة حذف جميع الرسائل المنشورة. لا يمكن التراجع عن هذا الإجراء.", "Delete_User_Warning": "سيترتب على حذف المستخدم حذف جميع الرسائل الواردة من هذا المستخدم كذلك. لا يمكن التراجع عن هذا الإجراء.", "Delete_User_Warning_Delete": "سيترتب على حذف المستخدم حذف جميع الرسائل الواردة من هذا المستخدم كذلك. لا يمكن التراجع عن هذا الإجراء.", "Delete_User_Warning_Keep": "سيتم حذف المستخدم، ولكن ستبقى رسائله مرئية. لا يمكن التراجع عن هذا الإجراء.", @@ -1259,7 +1258,6 @@ "Delete_all_closed_chats": "حذف كل الدردشات المغلقة", "Delete_message": "حذف رسالة", "Delete_my_account": "حذف حسابي", - "Delete_roomType_description": "سيترتب على حذف الغرفة حذف جميع الرسائل المنشورة. لا يمكن التراجع عن هذا الإجراء.", "Deleted": "تم الحذف!", "Deleted__roomName__": "تم حذف #{{roomName}}", "Deleting": "يتم الحذف", @@ -1381,7 +1379,6 @@ "E2E_key_reset_email": "إشعار إعادة تعيين مفتاح التشفير بين الطرفيات", "E2E_message_encrypted_placeholder": "هذه الرسالة مشفرة من طرف إلى طرف. لعرضه ، يجب عليك إدخال مفتاح التشفير في إعدادات حسابك.", "E2E_password_request_text": "للوصول إلى مجموعاتك الخاصة المشفرة والرسائل المباشرة، أدخل كلمة مرور التشفير.
سيلزمك إدخال كلمة المرور هذه لتشفير/فك تشفير رسائلك على كل عميل تستخدمه، نظرًا إلى أن المفتاح غير مخزن على الخادم.", - "E2E_password_reveal_text": "يمكنك الآن إنشاء مجموعات خاصة مشفرة ورسائل مباشرة. يمكنك أيضًا تغيير المجموعات الخاصة الموجودة أو الرسائل المباشرة إلى مشفرة.

هذا تشفير بين الطرفيات حتى لا يتم حفظ مفتاح تشفير/فك تشفير رسائلك على الخادم. لهذا السبب سيلزمك تخزين كلمة المرور هذه في مكان آمن. سيُطلب منك إدخالها على الأجهزة الأخرى التي ترغب في استخدام التشفير بين الطرفيات عليها. تعرف على المزيد هنا!

كلمة المرور الخاصة بك هي: ‎{{randomPassword}}‎

هذه كلمة مرور تم إنشاؤها تلقائيًا، يمكنك إعداد كلمة مرور جديدة لمفتاح التشفير الخاص بك في أي وقت من أي متصفح قمت بإدخال كلمة المرور الحالية فيه.
يتم تخزين كلمة المرور هذه على هذا المستعرض فقط حتى تقوم بتخزين كلمة المرور ورفض هذه الرسالة.", "ECDH_Enabled": "تمكين تشفير الطبقة الثانية لنقل البيانات", "Edit": "تحرير", "Edit_Business_Hour": "تحرير ساعة العمل", @@ -1444,7 +1441,6 @@ "Encrypted": "مشفر", "Encrypted_channel_Description": "القناة المشفرة بين النهايات. لن يعمل البحث مع الفِرَق المشفرة وقد لا تعرض الإشعارات محتوى الرسائل.", "Encrypted_message": "رسالة مشفرة", - "Encrypted_not_available": "غير متاح لـ Channel العامة", "Encrypted_setting_changed_successfully": "تم تغيير الإعداد المشفر بنجاح!", "Encryption_key_saved_successfully": "تم حفظ مفتاح التشفير الخاص بك بنجاح.", "End": "إنهاء", @@ -3237,7 +3233,7 @@ "SAML_MetadataCertificate_Template": "قالب شهادة بيانات التعريف", "SAML_Metadata_Certificate_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_certificate\\_\\_*: الشهادة الخاصة لتشفير التأكيد.", "SAML_Metadata_Template": "قالب بيانات التعريف", - "SAML_Metadata_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_sloLocation\\_\\_*: عنوان URL لتسجيل الخروج الأحادي Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: إذا تم تكوين شهادة خاصة، فسيتضمن ذلك {{Metadata Certificate Template}}، وإلا فسيتم تجاهلها. \n- *\\_\\_callbackUrl\\_\\_*: عنوان URL لرد الاتصال Rocket.Chat.", + "SAML_Metadata_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_sloLocation\\_\\_*: عنوان URL لتسجيل الخروج الأحادي Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: إذا تم تكوين شهادة خاصة، فسيتضمن ذلك *Metadata Certificate Template*، وإلا فسيتم تجاهلها. \n- *\\_\\_callbackUrl\\_\\_*: عنوان URL لرد الاتصال Rocket.Chat.", "SAML_NameIdPolicy_Template": "قالب سياسة NameID", "SAML_NameIdPolicy_Template_Description": "يمكنك استخدام أي متغير من قالب طلب التفويض هنا.", "SAML_Role_Attribute_Name": "اسم سمة الدور", @@ -3252,7 +3248,7 @@ "SAML_Section_6_Advanced": "متقدم", "SMS": "رسالة قصيرة", "SMS_Default_Omnichannel_Department": "قسم القناة متعددة الاتجاهات (افتراضي)", - "SMS_Default_Omnichannel_Department_Description": "سيتم توجيه كل الدردشات الواردة الجديدة التي بدأها هذا التكامل، إذا تم تعيينها، إلى هذا القسم. \nيمكن الكتابة فوق هذا الإعداد عن طريق تمرير معلمة استعلام القسم في الطلب. \nعلى سبيل المثال، `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nملحوظة: إذا كنت تستخدم اسم القسم، فيجب أن يكون عنوان URL آمنًا.", + "SMS_Default_Omnichannel_Department_Description": "سيتم توجيه كل الدردشات الواردة الجديدة التي بدأها هذا التكامل، إذا تم تعيينها، إلى هذا القسم. \nيمكن الكتابة فوق هذا الإعداد عن طريق تمرير معلمة استعلام القسم في الطلب. \nعلى سبيل المثال، `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nملحوظة: إذا كنت تستخدم اسم القسم، فيجب أن يكون عنوان URL آمنًا.", "SMS_Enabled": "تم تمكين الرسائل القصيرة", "SMTP": "SMTP", "SMTP_Host": "مضيف SMTP", diff --git a/packages/i18n/src/locales/az.i18n.json b/packages/i18n/src/locales/az.i18n.json index 12668f4620f3e..c353e60fc8ad6 100644 --- a/packages/i18n/src/locales/az.i18n.json +++ b/packages/i18n/src/locales/az.i18n.json @@ -2214,7 +2214,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Məlumat faylınız artıq yaradılıb. Yükləmə bağlantısı üçün e-poçt hesabınızı yoxlayın.", "UserDataDownload_EmailBody": "Məlumat faylınız artıq yüklənməyə hazırdır. Yükləmək üçün buradavurun.", "UserDataDownload_EmailSubject": "Sizin Data Faylınız Yükləməyə Hazırdır", - "UserDataDownload_RequestExisted_Text": "Məlumat faylınız artıq yaradılıb. Hazır olduğunuzda onu yükləmək üçün bir link e-poçt ünvanınıza göndəriləcək.", "UserDataDownload_Requested": "İstənilən faylı yükləyin", "UserData_EnableDownload": "İstifadəçi məlumatlarını yükləyin", "UserData_FileSystemPath": "Sistem Yolu (İxrac edilmiş Dosyalar)", diff --git a/packages/i18n/src/locales/bn-BD.i18n.json b/packages/i18n/src/locales/bn-BD.i18n.json index c22f08a474609..2f2843d04a30e 100644 --- a/packages/i18n/src/locales/bn-BD.i18n.json +++ b/packages/i18n/src/locales/bn-BD.i18n.json @@ -33,7 +33,5 @@ "Login_Logs_UserAgent": "ব্যর্থ লগইন প্রচেষ্টা লগগুলিতে ব্যবহারকারীর এজেন্ট প্রদর্শন করুন", "Looked_for": "অনুসন্ধান করা", "access-mailer": "মেইলারের স্ক্রিন এক্সেস করুন", - "access-mailer_description": "সমস্ত ব্যবহারকারীর কাছে গণ ইমেল প্রেরণের অনুমতি", - "__count__empty_rooms_will_be_removed_automatically": "_কাউন্ট_শূন্যস্থানসমূহ স্বয়ংক্রিয়ভাবে সরানো হবে।", - "__count__empty_rooms_will_be_removed_automatically__rooms__": "_কাউন্ট_শূন্যস্থানসমূহ স্বয়ংক্রিয়ভাবে সরানো হবে:
_স্থান_" + "access-mailer_description": "সমস্ত ব্যবহারকারীর কাছে গণ ইমেল প্রেরণের অনুমতি" } \ No newline at end of file diff --git a/packages/i18n/src/locales/ca.i18n.json b/packages/i18n/src/locales/ca.i18n.json index 4fd1add5a4f59..f0df244879983 100644 --- a/packages/i18n/src/locales/ca.i18n.json +++ b/packages/i18n/src/locales/ca.i18n.json @@ -1244,7 +1244,6 @@ "Delete": "Elimina", "Delete_File_Warning": "Suprimir un arxiu el eliminarà per sempre. Això no es pot desfer.", "Delete_Role_Warning": "Eliminar un rol l'eliminarà per sempre. Això no es pot desfer.", - "Delete_Room_Warning": "Eliminar una sala de xat esborra tots els missatges que conté. Aquesta acció no es pot desfer.", "Delete_User_Warning": "Eliminar un usuari també esborra tots els missatges que ha enviat. Aquesta acció no es pot desfer.", "Delete_User_Warning_Delete": "Eliminar un usuari causarà l'eliminació de tots els missatges creats per aquest usuari. Aquesta acció no es pot desfer.", "Delete_User_Warning_Keep": "L'usuari serà eliminat, però els vostres missatges romandran visibles. Això no es pot desfer.", @@ -1252,7 +1251,6 @@ "Delete_all_closed_chats": "Eliminar tots els xats tancats", "Delete_message": "Esborra missatge", "Delete_my_account": "Esborra el meu compte", - "Delete_roomType_description": "Eliminar una sala de xat esborra tots els missatges que conté. Aquesta acció no es pot desfer.", "Deleted": "Eliminat!", "Deleted__roomName__": "suprimit #{{roomName}}", "Deleting": "Eliminant", @@ -1372,7 +1370,6 @@ "E2E_enable": "Habilitar E2E", "E2E_key_reset_email": "Notificació de reinici de clau E2E", "E2E_password_request_text": "Per accedir als seus grups privats xifrats i als missatges directes, introdueixi la contrasenya de xifrat.
Necessites introduir aquesta contrasenya per xifrar / desxifrar els teus missatges en cada client que utilitzis, ja que la clau no s'emmagatzema en el servidor.", - "E2E_password_reveal_text": "Ara podeu crear grups privats xifrats i missatges directes. També podeu canviar els grups privats o DM existents a xifrats.

Aquest és un xifratge d'extrem a extrem, de manera que la clau per codificar / descodificar els seus missatges no es desarà al servidor. Per això, heu de desar aquesta contrasenya en un lloc segur. Se us demanarà que l'introduïu en altres dispositius on vulgueu utilitzar el xifratge e2e. Obtingueu més informació aquí!

La vostra contrasenya és:{{randomPassword}}

Aquesta és una contrasenya generada automàticament, podeu configurar una nova contrasenya per a la vostra clau de xifrat en qualsevol moment des de qualsevol navegador que hagi introduït la contrasenya existent.
Aquesta contrasenya només s'emmagatzema en aquest navegador fins que la deseu i descarteu aquest missatge.", "ECDH_Enabled": "Habiliteu el xifrat de segona capa per al transport de dades", "Edit": "Edita", "Edit_Business_Hour": "Edita l'horari d'oficina ", @@ -1435,7 +1432,6 @@ "Encrypted": "Xifrat", "Encrypted_channel_Description": "Canal xifrat d'extrem a extrem. La cerca no funcionarà amb canals xifrats i és possible que les notificacions no mostrin el contingut dels missatges.", "Encrypted_message": "Missatge xifrat", - "Encrypted_not_available": "No disponible per a Channels públics", "Encrypted_setting_changed_successfully": "La configuració encriptada es va canviar correctament", "Encryption_key_saved_successfully": "la vostra clau de xifrat es va guardar correctament.", "End": "Fi", @@ -2704,11 +2700,9 @@ "Office_hours_enabled": "Hores d'oficina habilitades", "Office_hours_updated": "Horari actualitzat", "Offline": "Fora de línia", - "Offline_DM_Email": "{{user}} us ha enviat un missatge directe", "Offline_Email_Subject_Description": "Podeu utilitzar els marcadors següents: \n - `[Site_Name]`, [Lloc_URL], `[User]` i `[Room]` per al nom de l'aplicació, l'URL, el nom d'usuari i el nom de la sala respectivament. ", "Offline_Link_Message": "VÉS AL MISSATGE", "Offline_Mention_All_Email": "Esmenteu tot l'assumpte de l'correu electrònic", - "Offline_Mention_Email": "{{user}} us ha mencionat a la sala #{{room}}", "Offline_Message": "Missatge fora de línia", "Offline_Message_Use_DeepLink": "Utilitzeu el format d’URL d’enllaç profund", "Offline_form": "formulari en línia", diff --git a/packages/i18n/src/locales/cs.i18n.json b/packages/i18n/src/locales/cs.i18n.json index 27335b595c251..1b010b4cf6811 100644 --- a/packages/i18n/src/locales/cs.i18n.json +++ b/packages/i18n/src/locales/cs.i18n.json @@ -1053,7 +1053,6 @@ "Default": "Výchozí", "Default_value": "Výchozí hodnota", "Delete": "Smazat", - "Delete_Room_Warning": "Odstranění místnosti smaže všechny zprávy poslané v rámci místnosti. Tuto akci nelze vzít zpět!", "Delete_User_Warning": "Odstranění uživatele smaže také všechny jeho zprávy. Tuto akci nelze vzít zpět!", "Delete_User_Warning_Delete": "Odstranění uživatele smaže také všechny jeho zprávy. Tuto akci nelze vzít zpět!", "Delete_User_Warning_Keep": "Uživatel bude smazán, ale jeho zprávy zůstanou viditelné. Tato akce je nevratná.", @@ -1061,7 +1060,6 @@ "Delete_all_closed_chats": "Smazat všechny ukončené chaty", "Delete_message": "Smazat zprávu", "Delete_my_account": "Smazat můj účet", - "Delete_roomType_description": "Odstranění místnosti smaže všechny zprávy poslané v rámci místnosti. Tuto akci nelze vzít zpět!", "Deleted": "Smazáno!", "Department": "Oddělení", "Department_not_found": "Oddělení nenalezeno", @@ -1165,7 +1163,6 @@ "E2E_Encryption_Password_Explanation": "Nyní můžete vytvářet šifrované soukromé skupiny a přímé zprávy. Existující soukromé skupiny nebo DM můžete také změnit na šifrované.

Toto je end-to-end šifrování, takže klíč pro šifrování/dešifrování vašich zpráv nebude uložen na serveru. Z tohoto důvodu musíte své heslo uložit na bezpečné místo. Budete vyzváni k jeho zadání na jiných zařízeních, na kterých chcete používat šifrování E2E.", "E2E_Reset_Other_Key_Warning": "Odstraněním E2E klíče současně odhlásíte uživatele. Poté co se znovu přihlásí Rocket.Chat vygeneruje nový klíč a obnoví přístup do šifrovaných místností kde je alespoň jeden uživatel připoje. Vzhledem k povaze koncového šifrování, Rocket.Chat nelze obnovit přístup do místnosti kde není ani jeden uživatel právě připojen", "E2E_password_request_text": "Chcete-li získat přístup k šifrovaným soukromým skupinám a přímým zprávám, zadejte své šifrovací heslo.
Toto heslo musíte zadat, abyste mohli šifrovat/dešifrovat zprávy u každého klienta, který používáte, protože klíč není uložen na serveru.", - "E2E_password_reveal_text": "Nyní můžete vytvářet šifrované soukromé skupiny a přímé zprávy. Existující soukromé skupiny nebo DM můžete také změnit na šifrované.

Toto je end-to-end šifrování, takže klíč pro kódování / dekódování vašich zpráv nebude uložen na serveru. Z tohoto důvodu musíte toto heslo uložit někde v bezpečí. Budete vyzváni k jeho zadání na jiných zařízeních, na kterých chcete používat šifrování E2E. Více informací zde

Vaše heslo je: {{randomPassword}}

Jedná se o automaticky generované heslo. Nové heslo pro šifrovací klíč můžete nastavit kdykoli z jakéhokoli prohlížeče, do kterého jste zadali existující heslo.
Toto heslo je uloženo pouze v tomto prohlížeči dokud heslo neuložíte a nepotvrdíte tuto zprávu.", "Edit": "Editovat", "Edit_Business_Hour": "Upravit otevírací dobu", "Edit_Custom_Field": "Upravit vlastní pole", @@ -2707,7 +2704,7 @@ "SAML_MetadataCertificate_Template": "Šablona certifikátu metadat", "SAML_Metadata_Certificate_Template_Description": "Dostupné tyto proměnné: \n- *\\_\\_certificate\\_\\_*: Privátní certifikát pro nastavení šifrování", "SAML_Metadata_Template": "Šablona metadat", - "SAML_Metadata_Template_Description": "Dostupné tyto proměnné: \n- *\\_\\_sloLocation\\_\\_*: URL Single LogOut. \n- *\\_\\_issuer\\_\\_*: Hodnota nastavení *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Hodnota nastavení *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Pokud je nastaven privátní certifikát, bude obsahovat {{Metadata Certificate Template}}, jinak ignorováno. \n- *\\_\\_callbackUrl\\_\\_*: URL Rocket.Chat callback", + "SAML_Metadata_Template_Description": "Dostupné tyto proměnné: \n- *\\_\\_sloLocation\\_\\_*: URL Single LogOut. \n- *\\_\\_issuer\\_\\_*: Hodnota nastavení *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Hodnota nastavení *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Pokud je nastaven privátní certifikát, bude obsahovat *Metadata Certificate Template*, jinak ignorováno. \n- *\\_\\_callbackUrl\\_\\_*: URL Rocket.Chat callback", "SAML_NameIdPolicy_Template": "Šablona NameID Policy", "SAML_NameIdPolicy_Template_Description": "Lze použít jakoukoliv proměnnou z Autorizačního požadavku.", "SAML_Role_Attribute_Name": "Název atributu role", diff --git a/packages/i18n/src/locales/da.i18n.json b/packages/i18n/src/locales/da.i18n.json index 88dbb19f9f81a..1d835d7d20262 100644 --- a/packages/i18n/src/locales/da.i18n.json +++ b/packages/i18n/src/locales/da.i18n.json @@ -1120,7 +1120,6 @@ "Default": "Standard", "Default_value": "Standardværdi", "Delete": "Slet", - "Delete_Room_Warning": "Hvis du sletter et rum, slettes alle meddelelser der er opslået i rummet. Dette kan ikke fortrydes.", "Delete_User_Warning": "Hvis du sletter en bruger, slettes også alle meddelelser fra den pågældende bruger. Dette kan ikke fortrydes.", "Delete_User_Warning_Delete": "Hvis du sletter en bruger, slettes også alle meddelelser fra den pågældende bruger. Dette kan ikke fortrydes.", "Delete_User_Warning_Keep": "Brugeren slettes, men deres meddelelser forbliver synlige. Dette kan ikke fortrydes.", @@ -1130,7 +1129,6 @@ "Delete_all_closed_chats": "Slet alle lukkede chats", "Delete_message": "Slet besked", "Delete_my_account": "Slet min konto", - "Delete_roomType_description": "Hvis du sletter et rum, slettes alle meddelelser der er opslået i rummet. Dette kan ikke fortrydes.", "Deleted": "Slettet!", "Department": "Afdeling", "Department_not_found": "Afdelingen blev ikke fundet", @@ -1240,7 +1238,6 @@ "E2E_Reset_Other_Key_Warning": "Nulstilling af den aktuelle E2E-nøgle logge brugeren ud. Når brugeren logger på igen, vil Rocket.Chat generere en ny nøgle og gendanne brugeradgangen til alle krypterede rum, der har et eller flere medlemmer online. På grund af E2E-krypteringens, er Rocket.Chat ikke i stand til at gendanne adgang til noget krypteret rum, der ikke har noget medlem online.", "E2E_key_reset_email": "E2E Key nulstilning notifikation", "E2E_password_request_text": "For at få adgang til dine krypterede private grupper og direkte beskeder, skal du indtaste dit krypteringsadgangskode.
Du skal indtaste denne adgangskode for at kryptere/dekryptere dine meddelelser på hver klient du bruger, da nøglen ikke er gemt på serveren.", - "E2E_password_reveal_text": "Du kan nu oprette krypterede private grupper og direkte beskeder. Du kan også ændre eksisterende private grupper eller direkte beskeder til at være krypteret.

Dette er end-to-end-kryptering, så nøglen til at kryptere/dekryptere dine beskeder gemmes ikke på serveren. Derfor skal du gemme denne kode et sikkert sted. Du bliver bedt om at indtaste det på andre enheder du vil bruge end-to-end-kryptering på. Lær mere her!

Dit kodeord er: {{randomPassword}}

Dette er en automatisk genereret kode. Du kan angive en ny kode til din krypteringsnøgle når som helst fra en hvilken som helst browser, hvor du har indtastet den eksisterende kode.
Dette kodeord gemmes kun i denne browser indtil du gemmer koden og afslutter denne meddelelse.", "Edit": "Rediger", "Edit_Business_Hour": "Redigér kontortid", "Edit_Custom_Field": "Redigér brugerdefineret felt", @@ -2796,7 +2793,7 @@ "SAML_MetadataCertificate_Template": "Certifikat-skabelon for metadata", "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgængelige: \n- *\\_\\_certificate\\_\\_*: Det private certifikat til erklærings-kryptering.", "SAML_Metadata_Template": "Skabelon for metadata", - "SAML_Metadata_Template_Description": "Følgende variabler er tilgængelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat-log-ud-URL. \n- *\\_\\_issuer\\_\\_*: Værdien af indstillingen *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Værdien af indstillingen *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat certifikat er konfigureret, vil dette indeholde {{Metadata Certificate Template}}, ellers ignoreres det. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat callback-URL.", + "SAML_Metadata_Template_Description": "Følgende variabler er tilgængelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat-log-ud-URL. \n- *\\_\\_issuer\\_\\_*: Værdien af indstillingen *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Værdien af indstillingen *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat certifikat er konfigureret, vil dette indeholde *Metadata Certificate Template*, ellers ignoreres det. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat callback-URL.", "SAML_NameIdPolicy_Template": "NameID-politik-skabelon", "SAML_NameIdPolicy_Template_Description": "Du kan bruge en hvilken som helst variabel fra skabelonen Authorize Request her.", "SAML_Role_Attribute_Name": "Rolleattributs navn", diff --git a/packages/i18n/src/locales/de-AT.i18n.json b/packages/i18n/src/locales/de-AT.i18n.json index a76f316083222..fff6a9bd6e72b 100644 --- a/packages/i18n/src/locales/de-AT.i18n.json +++ b/packages/i18n/src/locales/de-AT.i18n.json @@ -750,14 +750,12 @@ "Decline": "Ablehnen", "Default": "Voreinstellung", "Delete": "Löschen", - "Delete_Room_Warning": "Beim Löschen eines Raums werden alle Nachrichten in diesem Raum unwiderruflich gelöscht.", "Delete_User_Warning": "Beim Löschen eines Benutzers werden alle Nachrichten des Benutzers unwiderruflich gelöscht.", "Delete_User_Warning_Delete": "Beim Löschen eines Benutzers werden alle Nachrichten des Benutzers unwiderruflich gelöscht.", "Delete_User_Warning_Keep": "Der Benutzer wird gelöscht, aber seine Nachrichten bleiben sichtbar. Das kann nicht rückgängig gemacht werden.", "Delete_User_Warning_Unlink": "Durch das Löschen eines Benutzers wird der Benutzername aus allen Nachrichten gelöscht. Das kann nicht rückgängig gemacht werden.", "Delete_message": "Nachricht löschen", "Delete_my_account": "Mein Konto löschen", - "Delete_roomType_description": "Beim Löschen eines Raums werden alle Nachrichten in diesem Raum unwiderruflich gelöscht.", "Deleted": "Gelöscht!", "Department": "Abteilung", "Department_not_found": "Abteilung konnte nicht gefunden werden.", @@ -1600,11 +1598,9 @@ "Office_hours_enabled": "Bürozeiten aktiviert", "Office_hours_updated": "Bürozeiten aktualisiert", "Offline": "Offline", - "Offline_DM_Email": "Private Nachricht von {{user}} erhalten.", "Offline_Email_Subject_Description": "Sie können die folgenden Platzhalter verwenden: \n - `[Site_Name]`, `[Site_URL]`, [Benutzer] & [Raum] für den Anwendungsnamen, die URL, den Benutzernamen und den Raumnamen. ", "Offline_Link_Message": "Gehe zur Nachricht", "Offline_Mention_All_Email": "Erwähnen Sie alle E-Mail Betreff", - "Offline_Mention_Email": "Erwähnung durch {{user}} in #{{room}}.", "Offline_form": "Offline-Formular", "Offline_form_unavailable_message": "Nachricht, dass Offline Formular ungültig", "Offline_message": "Offline-Nachricht", diff --git a/packages/i18n/src/locales/de-IN.i18n.json b/packages/i18n/src/locales/de-IN.i18n.json index 6e1de035c31e5..c4d5c4b058dd3 100644 --- a/packages/i18n/src/locales/de-IN.i18n.json +++ b/packages/i18n/src/locales/de-IN.i18n.json @@ -865,7 +865,6 @@ "Decline": "ablehnen", "Default": "Voreinstellung", "Delete": "Löschen", - "Delete_Room_Warning": "Beim Löschen eines Raums werden alle Nachrichten in diesem Raum unwiderruflich gelöscht.", "Delete_User_Warning": "Beim Löschen eines Benutzers werden alle Nachrichten des Benutzers unwiderruflich gelöscht.", "Delete_User_Warning_Delete": "Beim Löschen eines Benutzers werden alle Nachrichten des Benutzers unwiderruflich gelöscht.", "Delete_User_Warning_Keep": "Der Benutzer wird gelöscht, aber seine Nachrichten bleiben sichtbar. Das kann nicht rückgängig gemacht werden.", @@ -957,7 +956,6 @@ "E2E_Enabled": "E2E aktiviert", "E2E_Encryption_Password_Explanation": "Du kannst jetzt verschlüsselte private Gruppen und Direktnachrichten erstellen. Du kannst auch vorhandene private Gruppen oder Direktnachrichten verschlüsseln.

Bitte bewahre Dein Passwort an einem sicheren Ort auf - Du musst ihn auf anderen Geräten eingeben, auf denen Du die Ende-zu-Ende-Verschlüsselung verwenden möchtest.", "E2E_password_request_text": "Gib Dein Verschlüsselungskennwort ein, um auf Deine verschlüsselten privaten Gruppen und Direktnachrichten zuzugreifen.
Du musst dieses Kennwort eingeben, da der Schlüssel nirgends gespeichert ist.", - "E2E_password_reveal_text": "Du kannst jetzt verschlüsselte private Gruppen und Direktnachrichten erstellen. Du kannst auch vorhandene private Gruppen oder Direktnachrichten verschlüsseln.

Da dies eine Ende-zu-Ende-Verschlüsselung ist, werden die Schlüssel auf keinem Server gespeichert. Daher musst Du den Schlüssel an einem sicheren Ort aufbewahren - Du musst ihn auf anderen Geräten eingeben, auf denen Due die Ende-zu-Ende-Verschlüsselung verwenden möchtest.Erfahre hier mehr!

Dein Passwort lautet: {{randomPassword}}

Es handelt sich um ein generiertes Passwort. Du kannst jederzeit unter Angabe des existierenden Passworts ein neues Passwort vergeben.
Das Passwort wird in Deinem Browser nur so lange zwischengespeichert, bis Du ein neues Passwort vergeben und diese Nachricht bestätigt hast.", "Edit": "Bearbeiten", "Edit_Custom_Field": "Benutzerdefinierte Felder bearbeiten", "Edit_Department": "Abteilung bearbeiten", @@ -1036,8 +1034,6 @@ "FEDERATION_Domain": "Domain", "FEDERATION_Domain_Alert": "Nach dem Aktivieren dieser Funktion darf dieser Wert nicht geändert werden. Änderungen an der Domain können wir noch nicht verarbeiten.", "FEDERATION_Domain_Description": "Füge die Domäne hinzu, mit der dieser Server verlinkt werden soll - zum Beispiel: @ rocket.chat.", - "FEDERATION_Enabled": "Versuche, den Federation-Support zu integrieren. Um diesen Wert zu ändern, muss Rocket.Chat neu gestartet werden. ", - "FEDERATION_Enabled_Alert": "Federation-Support ist in Arbeit. Die Verwendung auf einem Produktionssystem wird derzeit nicht empfohlen.", "FEDERATION_Public_Key": "Öffentlicher Schüssel", "FEDERATION_Public_Key_Description": "Dies ist der Schlüssel, der mit den Peers geteilt werden muss.", "FEDERATION_Status": "Status", @@ -1820,11 +1816,9 @@ "Office_hours_enabled": "Bürozeiten aktiviert", "Office_hours_updated": "Bürozeiten aktualisiert", "Offline": "Offline", - "Offline_DM_Email": "Du hast eine private Nachricht von {{user}} erhalten.", "Offline_Email_Subject_Description": "Du kannst folgenden Platzhalter verwenden: \n - `[Site_Name]`, `[Site_URL]`, `[User]` & `[Room]` für den Anwendungsnamen, URL, Benutzernamen und Raumnamen. ", "Offline_Link_Message": "Zur Nachricht", "Offline_Mention_All_Email": "E-Mail-Betreff für \"Alle Erwähnen\"", - "Offline_Mention_Email": "Du wurdest von {{user}} in #{{room}} erwähnt", "Offline_form": "Offline-Formular", "Offline_form_unavailable_message": "Nachricht, dass das Offline-Kontaktformular nicht verfügbar ist", "Offline_message": "Offline-Nachricht", @@ -2510,7 +2504,6 @@ "User__username__removed_from__room_name__leaders": "Benutzer {{username}} wurde als Diskussionsleiter in {{room_name}} entfernt", "User__username__removed_from__room_name__moderators": "Der Benutzer {{username}} wurde von einem Moderator aus {{room_name}} entfernt", "User__username__removed_from__room_name__owners": "Benutzer {{username}} ist nicht mehr Besitzer von {{room_name}}", - "User_added": "Der Benutzer {{user_added}} wurde hinzugefügt", "User_added_by": "Der Benutzer {{user_added}} wurde von {{user_by}} hinzugefügt", "User_added_successfully": "Benutzer erfolgreich hinzugefügt", "User_and_group_mentions_only": "Nur Benutzer- und Gruppenerwähnungen", @@ -2530,7 +2523,6 @@ "User_is_unblocked": "Benutzer ist nicht mehr geblockt", "User_joined_channel": "Ist dem Kanal beigetreten", "User_joined_conversation": "Ist der Unterhaltung beigetreten", - "User_left": "Benutzer {{user_left}} hat den Kanal verlassen", "User_logged_out": "Benutzer wurde abgemeldet", "User_management": "Benutzerverwaltung", "User_mentions_only": "Nur Benutzererwähnungen", @@ -3060,4 +3052,4 @@ "your_message_optional": "Deine optionale Nachricht", "__username__is_no_longer__role__defined_by__user_by_": "{{username}} ist nicht länger {{role}}, geändert durch {{user_by}}", "__username__was_set__role__by__user_by_": "{{username}} ist jetzt {{role}}, geändert durch {{user_by}}" -} +} \ No newline at end of file diff --git a/packages/i18n/src/locales/de.i18n.json b/packages/i18n/src/locales/de.i18n.json index 6c8fa0a28c345..d8eaf735aa04e 100644 --- a/packages/i18n/src/locales/de.i18n.json +++ b/packages/i18n/src/locales/de.i18n.json @@ -1356,7 +1356,6 @@ "Delete_Department?": "Abteilung löschen?", "Delete_File_Warning": "Wenn Sie eine Datei löschen, wird diese für immer gelöscht. Dies kann nicht rückgängig gemacht werden.", "Delete_Role_Warning": "Wenn Sie eine Rolle löschen, wird sie für immer gelöscht. Dies kann nicht rückgängig gemacht werden.", - "Delete_Room_Warning": "Beim Löschen eines Raumes werden alle Nachrichten in diesem Raum unwiderruflich gelöscht.", "Delete_User_Warning": "Beim Löschen eines Benutzers werden alle Nachrichten des Benutzers unwiderruflich gelöscht.", "Delete_User_Warning_Delete": "Beim Löschen eines Benutzers werden alle Nachrichten des Benutzers unwiderruflich gelöscht.", "Delete_User_Warning_Keep": "Der Benutzer wird gelöscht, aber seine Nachrichten bleiben sichtbar. Das kann nicht rückgängig gemacht werden.", @@ -1366,7 +1365,6 @@ "Delete_all_closed_chats": "Alle geschlossenen Chats löschen", "Delete_message": "Nachricht löschen", "Delete_my_account": "Mein Konto löschen", - "Delete_roomType_description": "Beim Löschen eines Raumes werden alle Nachrichten in diesem Raum unwiderruflich gelöscht.", "Deleted": "Gelöscht!", "Deleted__roomName__": "#{{roomName}} gelöscht", "Deleted__roomName__room": "#{{roomName}} gelöscht", @@ -1523,7 +1521,6 @@ "E2E_key_reset_email": "E2E-Schlüssel-Reset-Benachrichtigung", "E2E_message_encrypted_placeholder": "Diese Nachricht ist Ende-zu-Ende verschlüsselt. Um sie anzusehen, müssen Sie Ihren Verschlüsselungscode in Ihren Kontoeinstellungen eingeben.", "E2E_password_request_text": "Geben Sie Ihr Verschlüsselungskennwort ein, um auf Ihre verschlüsselten privaten Gruppen und Direktnachrichten zuzugreifen.
Sie müssen dieses Kennwort eingeben, da der Schlüssel nicht auf dem Server gespeichert ist.", - "E2E_password_reveal_text": "Sie können jetzt verschlüsselte private Gruppen und Direktnachrichten erstellen. Sie können auch bereits vorhandene private Gruppen oder Direktnachrichten verschlüsseln.

Da dies eine Ende-zu-Ende-Verschlüsselung ist, werden die Schlüssel auf keinem Server gespeichert. Daher müssen Sie den Schlüssel an einem sicheren Ort aufbewahren - Sie müssen ihn auf anderen Geräten eingeben, auf denen Sie die Ende-zu-Ende-Verschlüsselung verwenden möchten.Erfahren Sie mehr hier!

Ihr Passwort lautet: {{randomPassword}}

Es handelt sich um ein automatisch erzeugtes Passwort. Sie können jederzeit unter Angabe des existierenden Passworts ein neues Passwort vergeben.
Das Passwort wird in Ihrem Browser nur so lange zwischengespeichert, bis Sie dies speichern und diese Nachricht bestätigen.", "ECDH_Enabled": "Zusätzliche Verschlüsselungsschicht für den Datentransfer aktivieren", "Edit": "Bearbeiten", "Edit_Business_Hour": "Teil der Geschäftszeiten bearbeiten", @@ -1594,7 +1591,6 @@ "Encrypted": "Verschlüsselt", "Encrypted_channel_Description": "Ende-zu-Ende verschlüsselter Kanal. Die Suche funktioniert nicht mit verschlüsselten Channels. In Benachrichtigungen wird der Inhalt der Nachricht möglicherweise nicht angezeigt.", "Encrypted_message": "Verschlüsselte Nachricht", - "Encrypted_not_available": "Für öffentliche Kanäle nicht verfügbar", "Encrypted_setting_changed_successfully": "Die Verschlüsselungseinstellungen wurden gespeichert ", "Encryption_key_saved_successfully": "Ihr Verschlüsselungsschlüssel wurde erfolgreich gespeichert.", "End": "Ende", @@ -3044,11 +3040,9 @@ "Office_hours_enabled": "Bürozeiten aktiviert", "Office_hours_updated": "Bürozeiten aktualisiert", "Offline": "Offline", - "Offline_DM_Email": "Sie haben eine private Nachricht von {{user}} erhalten.", "Offline_Email_Subject_Description": "Sie können die folgenden Platzhalter verwenden: \n - `[Site_Name]`, `[Site_URL]`, `[User]` & `[Room]` für den Anwendungsnamen, URL, Benutzernamen und Raumnamen. ", "Offline_Link_Message": "Zur Nachricht", "Offline_Mention_All_Email": "E-Mail-Betreff für \"Alle erwähnen\"", - "Offline_Mention_Email": "Sie wurden von {{user}} in #{{room}} erwähnt", "Offline_Message": "Offline-Nachricht", "Offline_Message_Use_DeepLink": "Deep-Link-URL-Format verwenden", "Offline_form": "Offline-Formular", @@ -3589,7 +3583,7 @@ "SAML_MetadataCertificate_Template": "Vorlage Metadatenzertifikat", "SAML_Metadata_Certificate_Template_Description": "Die folgenden Variablen sind verfügbar: \n- *\\_\\_certificate\\_\\_*: Das private Zertifikat für die Assertionverschlüsselung.", "SAML_Metadata_Template": "Metadatenvorlage", - "SAML_Metadata_Template_Description": "Die folgenden Variablen sind verfügbar: \n- *\\_\\_sloLocation\\_\\_*: Die Single LogOut URL von Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Der Wert der Einstellung *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Der Wert der Einstellung *Identifier Format* \n- *\\_\\_certificateTag\\_\\_*: Wenn ein privates Zertifikat konfiguriert wird, enthält diese die {{Metadata Certificate Template}}, andernfalls wird es ignoriert. \n- *\\_\\_callbackUrl\\_\\_*: Die Rückruf-URL von Rocket.Chat.", + "SAML_Metadata_Template_Description": "Die folgenden Variablen sind verfügbar: \n- *\\_\\_sloLocation\\_\\_*: Die Single LogOut URL von Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Der Wert der Einstellung *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Der Wert der Einstellung *Identifier Format* \n- *\\_\\_certificateTag\\_\\_*: Wenn ein privates Zertifikat konfiguriert wird, enthält diese die *Metadata Certificate Template*, andernfalls wird es ignoriert. \n- *\\_\\_callbackUrl\\_\\_*: Die Rückruf-URL von Rocket.Chat.", "SAML_NameIdPolicy_Template": "Vorlage NameID-Richtlinie", "SAML_NameIdPolicy_Template_Description": "Sie können hier jede beliebige Variable der Vorlage Autorisierungsanforderung verwenden.", "SAML_Role_Attribute_Name": "Rollenattributname", @@ -3604,7 +3598,7 @@ "SAML_Section_6_Advanced": "Erweitert", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "Omnichannel-Abteilung (Standard)", - "SMS_Default_Omnichannel_Department_Description": "Wenn diese Einstellung aktiv ist, werden alle neuen eingehenden Chats, die von dieser Integration initiiert wurden, an diese Abteilung weitergeleitet. \nDiese Einstellung kann überschrieben werden, indem Sie den Parameter für die Abteilungsabfrage in der Anforderung weitergeben. \nz.B. `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nHinweis: wenn Sie den Abteilungsnamen verwenden, muss dieser URL-sicher sein.", + "SMS_Default_Omnichannel_Department_Description": "Wenn diese Einstellung aktiv ist, werden alle neuen eingehenden Chats, die von dieser Integration initiiert wurden, an diese Abteilung weitergeleitet. \nDiese Einstellung kann überschrieben werden, indem Sie den Parameter für die Abteilungsabfrage in der Anforderung weitergeben. \nz.B. `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nHinweis: wenn Sie den Abteilungsnamen verwenden, muss dieser URL-sicher sein.", "SMS_Description": "Aktivieren und konfigurieren Sie SMS-Gateways in Ihrem Arbeitsbereich.", "SMS_Enabled": "SMS aktiviert", "SMTP": "SMTP", @@ -4491,7 +4485,7 @@ "Voip_call_ended": "Anruf beendet um", "Voip_call_ended_unexpectedly": "Anruf unerwartet beendet: {{reason}}", "Voip_call_on_hold": "Anruf in Warteschleife gestellt um", - "Voip_call_started": "Anruf gestartet am {{at}}", + "Voip_call_started": "Anruf gestartet am", "Voip_call_unhold": "Anrufwiederaufnahme um", "Voip_call_wrapup": "Abschließende Notizen zum Anruf hinzugefügt: {{comment}}", "Voip_is_disabled": "VoIP ist deaktiviert", diff --git a/packages/i18n/src/locales/el.i18n.json b/packages/i18n/src/locales/el.i18n.json index 1ad8027be4fd4..8e5859ac0aaca 100644 --- a/packages/i18n/src/locales/el.i18n.json +++ b/packages/i18n/src/locales/el.i18n.json @@ -755,14 +755,12 @@ "Decline": "Απόρριψη", "Default": "Προεπιλεγμένο", "Delete": "Διαγραφή", - "Delete_Room_Warning": "Η διαγραφή ενός δωματίου θα διαγράψει όλα τα μηνύματα που έχουν δημοσιοποιηθεί μέσα στο δωμάτιο. Αυτό δεν μπορεί να αναιρεθεί.", "Delete_User_Warning": "Η διαγραφή ενός χρήστη θα διαγράψει επίσης και όλα τα μηνύματα αυτού του χρήστη. Αυτό δεν μπορεί να αναιρεθεί.", "Delete_User_Warning_Delete": "Η διαγραφή ενός χρήστη θα διαγράψει επίσης και όλα τα μηνύματα αυτού του χρήστη. Αυτό δεν μπορεί να αναιρεθεί.", "Delete_User_Warning_Keep": "Ο χρήστης θα διαγραφεί, αλλά τα μηνύματά του θα παραμείνουν ορατά. Αυτό δεν μπορεί να αναιρεθεί.", "Delete_User_Warning_Unlink": "Η διαγραφή ενός χρήστη θα καταργήσει το όνομα χρήστη από όλα τα μηνύματά του. Αυτό δεν μπορεί να αναιρεθεί.", "Delete_message": "Διαγραφή μηνύματος", "Delete_my_account": "Διαγραφή του λογαριασμού μου", - "Delete_roomType_description": "Η διαγραφή ενός δωματίου θα διαγράψει όλα τα μηνύματα που έχουν δημοσιοποιηθεί μέσα στο δωμάτιο. Αυτό δεν μπορεί να αναιρεθεί.", "Deleted": "Διαγράφηκε!", "Department": "Τμήμα", "Department_not_found": "Το τμήμα δεν βρέθηκε", @@ -1604,11 +1602,9 @@ "Office_hours_enabled": "Ώρες γραφείου είναι ενεργοποιημένες", "Office_hours_updated": "Οι ώρες λειτουργίας του γραφείου ενημερώνονται", "Offline": "offline", - "Offline_DM_Email": "Σας έχουν άμεση ειδοποιήται από {{user}}", "Offline_Email_Subject_Description": "Μπορείτε να χρησιμοποιήσετε τις ακόλουθες αντικαταστάσεις: \n - `[Site_Name]`, `[Site_URL]`, `[User]` & `[Room]` για το Όνομα της Εφαρμογής, το URL, το όνομα χρήστη και το όνομα του δωματίου αντίστοιχα ", "Offline_Link_Message": "ΠΗΓΑΙΝΕΤΕ ΜΗΝΥΜΑ", "Offline_Mention_All_Email": "Αναφέρετε όλα τα θέματα ηλεκτρονικού ταχυδρομείου", - "Offline_Mention_Email": "Έχετε αναφερθεί από {{user}} στην #{{room}}", "Offline_form": "offline μορφή", "Offline_form_unavailable_message": "Offline μορφή διαθέσιμη μήνυμα", "Offline_message": "offline μήνυμα", @@ -2219,7 +2215,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Το αρχείο δεδομένων σας δημιουργήθηκε ήδη. Ελέγξτε το λογαριασμό ηλεκτρονικού ταχυδρομείου σας για τη σύνδεση λήψης.", "UserDataDownload_EmailBody": "Το αρχείο δεδομένων σας είναι τώρα έτοιμο για λήψη. Κάντε κλικ στο στοιχείο εδώγια να το κατεβάσετε.", "UserDataDownload_EmailSubject": "Το αρχείο δεδομένων σας είναι έτοιμο για λήψη", - "UserDataDownload_RequestExisted_Text": "Το αρχείο δεδομένων σας δημιουργείται ήδη. Ένας σύνδεσμος για τη λήψη του θα σταλεί στην ηλεκτρονική σας διεύθυνση όταν είναι έτοιμος.", "UserDataDownload_Requested": "Λήψη αρχείου που ζητήθηκε", "UserData_EnableDownload": "Ενεργοποίηση λήψης δεδομένων χρήστη", "UserData_FileSystemPath": "Διαδρομή συστήματος (Εξαγόμενα αρχεία)", diff --git a/packages/i18n/src/locales/en.i18n.json b/packages/i18n/src/locales/en.i18n.json index 6b77354140f39..08215768279f8 100644 --- a/packages/i18n/src/locales/en.i18n.json +++ b/packages/i18n/src/locales/en.i18n.json @@ -4566,7 +4566,7 @@ "SAML_MetadataCertificate_Template": "Metadata Certificate Template", "SAML_Metadata_Certificate_Template_Description": "The following variables are available: \n- *\\_\\_certificate\\_\\_*: The private certificate for assertion encryption.", "SAML_Metadata_Template": "Metadata Template", - "SAML_Metadata_Template_Description": "The following variables are available: \n- *\\_\\_sloLocation\\_\\_*: The Rocket.Chat Single LogOut URL. \n- *\\_\\_issuer\\_\\_*: The value of the *Custom Issuer* setting. \n- *\\_\\_identifierFormat\\_\\_*: The value of the *Identifier Format* setting. \n- *\\_\\_certificateTag\\_\\_*: If a private certificate is configured, this will include the {{Metadata Certificate Template}}, otherwise it will be ignored. \n- *\\_\\_callbackUrl\\_\\_*: The Rocket.Chat callback URL.", + "SAML_Metadata_Template_Description": "The following variables are available: \n- *\\_\\_sloLocation\\_\\_*: The Rocket.Chat Single LogOut URL. \n- *\\_\\_issuer\\_\\_*: The value of the *Custom Issuer* setting. \n- *\\_\\_identifierFormat\\_\\_*: The value of the *Identifier Format* setting. \n- *\\_\\_certificateTag\\_\\_*: If a private certificate is configured, this will include the *Metadata Certificate Template*, otherwise it will be ignored. \n- *\\_\\_callbackUrl\\_\\_*: The Rocket.Chat callback URL.", "SAML_NameIdPolicy_Template": "NameID Policy Template", "SAML_NameIdPolicy_Template_Description": "You can use any variable from the Authorize Request Template here.", "SAML_Role_Attribute_Name": "Role Attribute Name", @@ -4584,7 +4584,7 @@ "SLA_removed": "SLA removed", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "Omnichannel Department (Default)", - "SMS_Default_Omnichannel_Department_Description": "If set, all new incoming chats initiated by this integration will be routed to this department. \nThis setting can be overwritten by passing department query param in the request. \ne.g. `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nNote: if you're using Department Name, then it should be URL safe.", + "SMS_Default_Omnichannel_Department_Description": "If set, all new incoming chats initiated by this integration will be routed to this department. \nThis setting can be overwritten by passing department query param in the request. \ne.g. `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nNote: if you're using Department Name, then it should be URL safe.", "SMS_Description": "Enable and configure SMS gateways on your workspace.", "SMS_Enabled": "SMS Enabled", "SMS_Twilio_InvalidCredentials": "Twilio SMS credentials are invalid, cannot send messages", @@ -6495,7 +6495,7 @@ "meteor_status_failed": "Connection attempt failed", "meteor_status_offline": "You’re offline", "meteor_status_reconnect_in": { - "one": "Trying to reconnect in {{count}} second", + "one": "Trying to reconnect in one second", "other": "Trying to reconnect in {{count}} seconds" }, "meteor_status_try_again_later": "Please try again later or ask your workspace admin for assistance", @@ -7061,4 +7061,4 @@ "UNVERIFIED": "User is unverified", "UNABLE_TO_VERIFY": "Unable to verify user", "Users_invited": "The users have been invited" -} +} \ No newline at end of file diff --git a/packages/i18n/src/locales/eo.i18n.json b/packages/i18n/src/locales/eo.i18n.json index c0cc032fc1684..804959f42a4aa 100644 --- a/packages/i18n/src/locales/eo.i18n.json +++ b/packages/i18n/src/locales/eo.i18n.json @@ -749,14 +749,12 @@ "Decline": "Malkresko", "Default": "Defaŭlta", "Delete": "Forigi", - "Delete_Room_Warning": "Forigi ĉambron forigos ĉiujn mesaĝojn afiŝitajn ene de la ĉambro. Ĉi tio ne povas malŝpari.", "Delete_User_Warning": "Forigi uzanton ankaŭ forigos ĉiujn mesaĝojn de tiu uzanto. Ĉi tio ne povas malŝpari.", "Delete_User_Warning_Delete": "Forigi uzanton ankaŭ forigos ĉiujn mesaĝojn de tiu uzanto. Ĉi tio ne povas malŝpari.", "Delete_User_Warning_Keep": "La uzanto estos forigita, sed iliaj mesaĝoj restos videblaj. Ĉi tio ne povas malŝpari.", "Delete_User_Warning_Unlink": "Forigi uzanton forigos la uzantnomon de ĉiuj siaj mesaĝoj. Ĉi tio ne povas malŝpari.", "Delete_message": "Forigi mesaĝon", "Delete_my_account": "Forigu mian konton", - "Delete_roomType_description": "Forigi ĉambron forigos ĉiujn mesaĝojn afiŝitajn ene de la ĉambro. Ĉi tio ne povas malŝpari.", "Deleted": "Forigita!", "Department": "Fako", "Department_not_found": "Fako ne trovita", @@ -2212,7 +2210,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Via datumosiero jam estis generita. Kontrolu vian retpoŝtan konton por la elŝuta ligilo.", "UserDataDownload_EmailBody": "Via datuma dosiero nun estas preta por elŝuti. Alklaku ĉi tiepor elŝuti ĝin.", "UserDataDownload_EmailSubject": "Via datuma dosiero estas preta por elŝuti", - "UserDataDownload_RequestExisted_Text": "Via datuma dosiero jam estas generita. Ligo por elŝuti ĝin estos sendita al via retpoŝta adreso kiam preta.", "UserDataDownload_Requested": "Elŝuta dosiero Petita", "UserData_EnableDownload": "Ebligu Uzan Datuman Elŝuton", "UserData_FileSystemPath": "Sistema Vojo (Eksportitaj Dosieroj)", diff --git a/packages/i18n/src/locales/es.i18n.json b/packages/i18n/src/locales/es.i18n.json index 49ac6a5c13929..044bab5be3091 100644 --- a/packages/i18n/src/locales/es.i18n.json +++ b/packages/i18n/src/locales/es.i18n.json @@ -699,9 +699,9 @@ "Caller_Id": "ID de llamador", "Calling": "Llamando", "Calls_in_queue": { - "one": "{{calls}} llamada en cola", - "many": "{{calls}} llamadas en cola", - "other": "{{calls}} llamadas en cola" + "one": "{{count}} llamada en cola", + "many": "{{count}} llamadas en cola", + "other": "{{count}} llamadas en cola" }, "Cancel": "Cancelar", "Cancel_message_input": "Cancelar", @@ -3314,7 +3314,7 @@ "SAML_MetadataCertificate_Template": "Plantilla de certificado de metadatos", "SAML_Metadata_Certificate_Template_Description": "Las siguientes variables están disponibles: \n- *\\_\\_certificate\\_\\_*: Certificado privado para cifrado de aserción", "SAML_Metadata_Template": "Plantilla de metadatos", - "SAML_Metadata_Template_Description": "Las siguientes variables están disponibles: \n- *\\_\\_sloLocation\\_\\_*: URL de cierre de sesión única de Rocket.Chat \n- *\\_\\_issuer\\_\\_*: Valor del ajuste *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: Valor del ajuste *Identifier Format* \n- *\\_\\_certificateTag\\_\\_*: Si un certificado privado está configurado, esto incluirá el {{Metadata Certificate Template}}, de lo contrario se ignorará \n- *\\_\\_callbackUrl\\_\\_*: URL de respaldo de Rocket.Chat", + "SAML_Metadata_Template_Description": "Las siguientes variables están disponibles: \n- *\\_\\_sloLocation\\_\\_*: URL de cierre de sesión única de Rocket.Chat \n- *\\_\\_issuer\\_\\_*: Valor del ajuste *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: Valor del ajuste *Identifier Format* \n- *\\_\\_certificateTag\\_\\_*: Si un certificado privado está configurado, esto incluirá el *Metadata Certificate Template*, de lo contrario se ignorará \n- *\\_\\_callbackUrl\\_\\_*: URL de respaldo de Rocket.Chat", "SAML_NameIdPolicy_Template": "Plantilla de política de NameID", "SAML_NameIdPolicy_Template_Description": "Puedes usar cualquier variable de la plantilla de solicitud de autorización aquí.", "SAML_Role_Attribute_Name": "Nombre de atributo de rol", @@ -3329,7 +3329,7 @@ "SAML_Section_6_Advanced": "Avanzado", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "Departamento de Omnichannel (por defecto)", - "SMS_Default_Omnichannel_Department_Description": "Si se establece esta opción, todos los nuevos chats entrantes iniciados por esta integración se enrutarán a este departamento. \nEste ajuste se puede sobrescribir pasando el parámetro de consulta del departamento en la solicitud. \nPor ejemplo, `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nNota: Si estás usando el nombre del departamento, debería poder usarse en la URL.", + "SMS_Default_Omnichannel_Department_Description": "Si se establece esta opción, todos los nuevos chats entrantes iniciados por esta integración se enrutarán a este departamento. \nEste ajuste se puede sobrescribir pasando el parámetro de consulta del departamento en la solicitud. \nPor ejemplo, `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nNota: Si estás usando el nombre del departamento, debería poder usarse en la URL.", "SMS_Enabled": "SMS habilitados", "SMTP": "SMTP", "SMTP_Host": "Host SMTP", diff --git a/packages/i18n/src/locales/fa.i18n.json b/packages/i18n/src/locales/fa.i18n.json index f8e0e855b1d25..4503fa0a70b19 100644 --- a/packages/i18n/src/locales/fa.i18n.json +++ b/packages/i18n/src/locales/fa.i18n.json @@ -487,7 +487,6 @@ "CAS_Sync_User_Data_Enabled": "همیشه اطلاعات کاربر همگام سازی شود", "CAS_Sync_User_Data_Enabled_Description": "همیشه اطلاعات خارجی کاربر CAS را در زمان ورود به صفات موجود همگام سازی کنید. توجه: ویژگی ها همیشه در زمان ایجاد حساب ایجاد شده است.", "CAS_Sync_User_Data_FieldMap": "نقشه مشخص", - "CAS_Sync_User_Data_FieldMap_Description": "از این ورودی JSON برای ساخت ویژگی های داخلی (کلید) از ویژگی های خارجی (ارزش) استفاده کنید. نام ویژگی های خارجی با محتویات '٪' در رشته های ارزش درج خواهد شد. \nبه عنوان مثال، {{ایمیل}:٪٪ email٪، نام:٪ firstname٪،٪ lastname٪}} \n \nنقشه ویژگی همیشه تعبیه شده است. در CAS 1.0 تنها ویژگی `username` در دسترس است. ویژگی های داخلی موجود عبارتند از: نام کاربری، نام، ایمیل، اتاق؛ اتاق ها لیستی از اتاق های جدا شده با کاما هستند که برای ایجاد پیوستن به کاربر ایجاد می شوند e.g:: \"\" اتاق \":\"٪ team٪،٪ department٪ \"} به کاربران CAS در ایجاد کانال های تیم و کانال خود می پیوندند.", "CAS_autoclose": "خودکار پنجره ورود به سیستم", "CAS_base_url": "URL پایه SSO", "CAS_base_url_Description": "آدرس پایه سرویس SSO خارجی شما به عنوان مثال: https: //sso.example.undef/sso/", @@ -949,7 +948,6 @@ "Default": "پیش فرض", "Default_value": "مقدار پیش فرض", "Delete": "حذف کردن", - "Delete_Room_Warning": "حذف یک اتاق تمام پیغام های ارسال شده در داخل اتاق را حذف می کند. این کار قابل بازگشت نیست.", "Delete_User_Warning": "حذف یک کاربر تمام پیام های ارسال شده آن کاربر را حذف می کند. این کار قابل بازگشت نیست.", "Delete_User_Warning_Delete": "حذف یک کاربر تمام پیام های ارسال شده آن کاربر را حذف می کند. این کار قابل بازگشت نیست.", "Delete_User_Warning_Keep": "کاربر حذف خواهد شد، اما پیام های آنها قابل مشاهده خواهد بود. این قابل بازگشت نیست.", @@ -957,7 +955,6 @@ "Delete_all_closed_chats": "تمام گپ های بسته را حذف کنید", "Delete_message": "حذف پیام", "Delete_my_account": "حذف حساب کاربری من", - "Delete_roomType_description": "حذف یک اتاق تمام پیغام های ارسال شده در داخل اتاق را حذف می کند. این کار قابل بازگشت نیست.", "Deleted": "حذف شد!", "Department": "گروه", "Department_not_found": "بخش یافت نشد", @@ -1858,11 +1855,9 @@ "Office_hours_enabled": "ساعت اداری فعال شده است", "Office_hours_updated": "ساعت اداری به روز شد", "Offline": "برون‌خط", - "Offline_DM_Email": "شما مستقیم توسط {{user}} پیام ارسال شده است", "Offline_Email_Subject_Description": "می‌توانید از مکان نماهای زیر استفاده کنید: \n - `[Site_Name]` و `[Site_URL]` به ترتیب برای نام و آدرس برنامه. ", "Offline_Link_Message": "برو به پیام", "Offline_Mention_All_Email": "ذکر همه موضوع ایمیل", - "Offline_Mention_Email": "شما توسط {{user}} در #{{room}} ذکر شده است", "Offline_Message": "پیام برون‌خط", "Offline_form": "فرم برون‌خط", "Offline_form_unavailable_message": "پیام عدم دسترسی فرم برون‌خط", @@ -2501,7 +2496,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "فایل داده شما قبلا تولید شده است حساب ایمیل خود را برای لینک دانلود بررسی کنید.", "UserDataDownload_EmailBody": "فایل داده شما اکنون آماده دانلود است. روی اینجاکلیک کنید تا آن را دانلود کنید.", "UserDataDownload_EmailSubject": "فایل داده شما آماده دانلود است", - "UserDataDownload_RequestExisted_Text": "فایل داده شما تولید شده است. لینک دانلود آت زمان آماده شدن به ایمیل شما ارسال خواهد شد. صف عملیات های درحال انتظارقبل از درخواست شما وجود دارد.", "UserDataDownload_Requested": "دانلود فایل درخواست شده", "UserData_EnableDownload": "فعال کردن بارگیری داده کاربر", "UserData_FileSystemPath": "مسیر سیستم (فایل های صادر شده)", diff --git a/packages/i18n/src/locales/fi.i18n.json b/packages/i18n/src/locales/fi.i18n.json index 640cd4aa58123..b6c6803bba81a 100644 --- a/packages/i18n/src/locales/fi.i18n.json +++ b/packages/i18n/src/locales/fi.i18n.json @@ -442,7 +442,6 @@ "App_support_url": "tuen url-osoite", "App_user_not_allowed_to_login": "Sovelluskäyttäjät eivät saa kirjautua suoraan sisään.", "App_version_incompatible_tooltip": "Sovellus ei ole yhteensopiva Rocket.Chat-version kanssa", - "App_will_lose_grandfathered_status": "**Tämä {{context}}sovellus menettää aikaisemmin käytetössä olleen sovelluksen tilansa.** \n \nYhteisöversion työtiloissa voi olla käytössä enintään {{limit}} {{context}} sovellusta. aikaisemmin Aikaisemmin käytössä olleet sovellukset lasketaan mukaan rajoitukseen, mutta rajoitusta ei sovelleta niihin.", "Appearance": "Ulkoasu", "Application_Name": "Sovelluksen nimi", "Application_added": "Sovellus lisätty", @@ -1387,7 +1386,6 @@ "Delete_Department?": "Poistetaanko osasto?", "Delete_File_Warning": "Tiedoston poisto poistaa sen lopullisesti. Tätä ei voi kumota.", "Delete_Role_Warning": "Roolin poisto poistaa sen lopullisesti. Tätä ei voi kumota.", - "Delete_Room_Warning": "Huoneen poisto poistaa kaikki huoneessa olevat viestit. Tätä ei voi kumota.", "Delete_User_Warning": "Käyttäjän poisto poistaa myös kaikki käyttäjän lähettämät viestit. Tätä ei voi kumota.", "Delete_User_Warning_Delete": "Käyttäjän poisto poistaa myös kaikki käyttäjän lähettämät viestit. Tätä ei voi kumota.", "Delete_User_Warning_Keep": "Käyttäjä poistetaan, mutta hänen lähettämänsä viestit pysyvät näkyvissä. Tätä ei voi kumota.", @@ -1395,7 +1393,6 @@ "Delete_all_closed_chats": "Poista kaikki suljetut keskustelut", "Delete_message": "Poista viesti", "Delete_my_account": "Poista tilini", - "Delete_roomType_description": "Huoneen poisto poistaa kaikki huoneessa olevat viestit. Tätä ei voi kumota.", "Deleted": "Poistettu!", "Deleted__roomName__": "poisti huoneen #{{roomName}}", "Deleted__roomName__room": "poisti huoneen #{{roomName}}", @@ -1556,7 +1553,6 @@ "E2E_key_reset_email": "E2E-avaimen nollausilmoitus", "E2E_message_encrypted_placeholder": "Tämä viesti on täysin salattu. Jos haluat tarkastella sitä, sinun on annettava salausavain tilisi asetuksissa.", "E2E_password_request_text": "Jos haluat käyttää salattuja yksityisiä ryhmiäsi ja suoria viestejäsi, anna salauksen salasana.
Sinun on annettava tämä salasana, jos haluat koodata tai purkaa viestejäsi jokaisella käyttämälläsi sovelluksella, koska avainta ei tallenneta palvelimeen.", - "E2E_password_reveal_text": "Nyt voit luoda salattuja yksityisiä ryhmiä ja suoria viestejä. Voit myös muuttaa olemassa olevia yksityisiä ryhmiä tai suoria viestejä salatuiksi.

Tämä on täysi salaus, joten viestien koodaus- ja purkuavainta ei tallenneta palvelimeen. Säilytä siksi salasanaa turvallisessa paikassa. Sinun on annettava se muissa laitteissa, joissa haluat käyttää e2e-salausta. Lue lisää täältä!

Salasanasi on: {{randomPassword}}

Tämä on automaattisesti luotu salasana, voit asettaa uuden salasanan salausavaimellesi milloin tahansa missä tahansa selaimessa, johon olet antanut nykyisen salasanan.
Tämä salasana tallennetaan vain tähän selaimeen, kunnes tallennat salasanan ja kuittaat tämän ilmoituksen.", "E2E_unavailable_for_federation": "E2E ei ole käytettävissä liittoutuneissa huoneissa", "ECDH_Enabled": "Ota käyttöön toinen salaustaso tiedonsiirtoa varten", "Edit": "Muokkaa", @@ -1631,7 +1627,6 @@ "Encrypted": "Salattu", "Encrypted_channel_Description": "Täysin salattu kanava. Haku ei toimi salatuilla kanavilla, ja ilmoituksissa ei välttämättä näy viestien sisältöä.", "Encrypted_message": "Salattu viesti", - "Encrypted_not_available": "Ei saatavilla ylesellä kanavalla Channel", "Encrypted_setting_changed_successfully": "Salausasetus on muutettu", "Encryption_key_saved_successfully": "Salausavaimesi on tallennettu.", "End": "Lopeta", @@ -3713,7 +3708,7 @@ "SAML_MetadataCertificate_Template": "Metadatan varmenteen malli", "SAML_Metadata_Certificate_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- *\\_\\_certificate\\_\\_*: Yksityinen varmenne väitteen salausta varten.", "SAML_Metadata_Template": "Metadatan tietomalli", - "SAML_Metadata_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat Single LogOut URL-osoite. \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* -asetuksen arvo. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* -asetuksen arvo. \n- *\\_\\_certificateTag\\_\\_*: Jos yksityinen varmenne on määritetty, tämä sisältää {{Metadata Certificate Template}} -varmenteen mallin__, muutoin sitä ei oteta huomioon. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chatin takaisinkutsun URL-osoite.", + "SAML_Metadata_Template_Description": "Seuraavat muuttujat ovat käytettävissä: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat Single LogOut URL-osoite. \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* -asetuksen arvo. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* -asetuksen arvo. \n- *\\_\\_certificateTag\\_\\_*: Jos yksityinen varmenne on määritetty, tämä sisältää *Metadata Certificate Template* -varmenteen mallin__, muutoin sitä ei oteta huomioon. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chatin takaisinkutsun URL-osoite.", "SAML_NameIdPolicy_Template": "NameID Policy malli", "SAML_NameIdPolicy_Template_Description": "Voit käyttää mitä tahansa muuttujaa Authorize Request Template -mallista.", "SAML_Role_Attribute_Name": "Rooli Attribuutin nimi", @@ -3731,7 +3726,7 @@ "SLA_removed": "Palvelutasosopimus poistettu", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "Omnichannel-osasto (oletus)", - "SMS_Default_Omnichannel_Department_Description": "Jos tämä asetus on asetettu, kaikki tämän integraation käynnistämät uudet saapuvat keskustelut ohjataan tälle osastolle. \nTämä asetus voidaan korvata siirtämällä pyyntöön parametrina osaston kyselyparametri. \nesim. `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nHuomautus: jos käytät osaston nimeä, sen pitäisi olla URL-turvallinen.", + "SMS_Default_Omnichannel_Department_Description": "Jos tämä asetus on asetettu, kaikki tämän integraation käynnistämät uudet saapuvat keskustelut ohjataan tälle osastolle. \nTämä asetus voidaan korvata siirtämällä pyyntöön parametrina osaston kyselyparametri. \nesim. `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nHuomautus: jos käytät osaston nimeä, sen pitäisi olla URL-turvallinen.", "SMS_Description": "Ota käyttöön ja määritä tekstiviestiyhdyskäytävät työtilassa.", "SMS_Enabled": "Tekstiviestit käytössä", "SMTP": "SMTP", diff --git a/packages/i18n/src/locales/fr.i18n.json b/packages/i18n/src/locales/fr.i18n.json index 2d163c10b4fda..85236b73ca56f 100644 --- a/packages/i18n/src/locales/fr.i18n.json +++ b/packages/i18n/src/locales/fr.i18n.json @@ -1254,7 +1254,6 @@ "Delete": "Supprimer", "Delete_File_Warning": "La suppression d'un fichier est définitive et peut pas être annulée.", "Delete_Role_Warning": "La suppression d'un rôle est définitive. Elle ne peut pas être annulée.", - "Delete_Room_Warning": "Supprimer un salon supprime également tous les messages publiés dans le salon. Cette action est irréversible.", "Delete_User_Warning": "Supprimer un utilisateur supprime également tous les messages de celui-ci. Cette action est irréversible.", "Delete_User_Warning_Delete": "Supprimer un utilisateur supprime également tous les messages de celui-ci. Cette action est irréversible.", "Delete_User_Warning_Keep": "L'utilisateur sera supprimé, mais ses messages resteront visibles. Cette action ne peut pas être annulée.", @@ -1262,7 +1261,6 @@ "Delete_all_closed_chats": "Supprimer tous les chats fermés", "Delete_message": "Suppression de messages", "Delete_my_account": "Supprimer mon compte", - "Delete_roomType_description": "Supprimer un salon supprime également tous les messages publiés dans le salon. Cette action est irréversible.", "Deleted": "Supprimé !", "Deleted__roomName__": "a supprimé #{{roomName}}", "Deleting": "Suppression", @@ -1385,7 +1383,6 @@ "E2E_enable": "Activer E2E", "E2E_key_reset_email": "Notification de réinitialisation de clé E2E", "E2E_password_request_text": "Pour accéder à vos groupes privés et à vos messages directs chiffrés, entrez votre mot de passe de chiffrement.
Vous devez entrer ce mot de passe pour encoder/décoder vos messages sur chaque client que vous utilisez, car la clé n'est pas stockée sur le serveur.", - "E2E_password_reveal_text": "Vous pouvez désormais créer des groupes privés et des messages directs chiffrés. Vous pouvez également modifier les groupes privés ou les messages directs existants pour les chiffrer.

Il s'agit d'un chiffrement de bout en bout de sorte que la clé pour encoder/décoder vos messages ne sera pas enregistrée sur le serveur. Pour cette raison, vous devez stocker votre mot de passe dans un endroit sûr. Vous devrez le saisir sur les autres appareils sur lesquels vous souhaitez utiliser le chiffrement E2E. En savoir plus ici !

Votre mot de passe est : {{randomPassword}}

Ceci est un mot de passe généré automatiquement, vous pouvez configurer un nouveau de mot de passe pour votre clé de chiffrement à tout moment depuis n'importe quel navigateur où vous avez entré le mot de passe existant.
Ce mot de passe n'est stocké que dans ce navigateur jusqu'à ce que vous l'enregistriez et que vous fermiez ce message.", "ECDH_Enabled": "Activer le chiffrement de deuxième niveau pour le transport de données", "Edit": "Modifier", "Edit_Business_Hour": "Modifier l'heure d'ouverture", @@ -1448,7 +1445,6 @@ "Encrypted": "Chiffré", "Encrypted_channel_Description": "Canal chiffré de bout en bout. La recherche ne fonctionne pas avec les canaux chiffrés et les notifications peuvent ne pas afficher le contenu des messages.", "Encrypted_message": "Message chiffré", - "Encrypted_not_available": "Non disponible pour les canaux publics", "Encrypted_setting_changed_successfully": "Le paramètre chiffré a été modifié", "Encryption_key_saved_successfully": "Votre clé de chiffrement a été enregistrée avec succès.", "End": "Fin", @@ -3234,7 +3230,7 @@ "SAML_MetadataCertificate_Template": "Modèle de certificat de métadonnées", "SAML_Metadata_Certificate_Template_Description": "Les variables suivantes sont disponibles : \n- *\\_\\_certificate\\_\\_* : Certificat privé pour le chiffrement des assertions.", "SAML_Metadata_Template": "Modèle de métadonnées", - "SAML_Metadata_Template_Description": "Les variables suivantes sont disponibles : \n- *\\_\\_sloLocation\\_\\_* : URL de déconnexion unique Rocket.Chat. \n- *\\_\\_issuer\\_\\_* : Valeur du paramètre *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_* : Valeur du paramètre *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_* : Si un certificat privé est configuré, {{Metadata Certificate Template}} est inclus ; sinon, il est ignoré. \n- *\\_\\_callbackUrl\\_\\_* : URL de rappel de Rocket.Chat.", + "SAML_Metadata_Template_Description": "Les variables suivantes sont disponibles : \n- *\\_\\_sloLocation\\_\\_* : URL de déconnexion unique Rocket.Chat. \n- *\\_\\_issuer\\_\\_* : Valeur du paramètre *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_* : Valeur du paramètre *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_* : Si un certificat privé est configuré, *Metadata Certificate Template* est inclus ; sinon, il est ignoré. \n- *\\_\\_callbackUrl\\_\\_* : URL de rappel de Rocket.Chat.", "SAML_NameIdPolicy_Template": "Modèle de politique NameID", "SAML_NameIdPolicy_Template_Description": "Vous pouvez utiliser ici n'importe quelle variable du modèle de demande d'autorisation.", "SAML_Role_Attribute_Name": "Nom d'attribut de rôle", @@ -3249,7 +3245,7 @@ "SAML_Section_6_Advanced": "Avancé", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "Département omnicanal (par défaut)", - "SMS_Default_Omnichannel_Department_Description": "S'il est défini, tous les nouveaux chats entrants initiés par cette intégration seront acheminés vers ce département. \nCe paramètre peut être remplacé en transmettant le paramètre de requête department dans la demande. \nExemple : `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nNote : si vous utilisez le nom du département, l'URL doit être sécurisée.", + "SMS_Default_Omnichannel_Department_Description": "S'il est défini, tous les nouveaux chats entrants initiés par cette intégration seront acheminés vers ce département. \nCe paramètre peut être remplacé en transmettant le paramètre de requête department dans la demande. \nExemple : `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nNote : si vous utilisez le nom du département, l'URL doit être sécurisée.", "SMS_Enabled": "SMS activés", "SMTP": "SMTP", "SMTP_Host": "Hôte SMTP", diff --git a/packages/i18n/src/locales/he.i18n.json b/packages/i18n/src/locales/he.i18n.json index 664b1a839aa16..2ebc596905aad 100644 --- a/packages/i18n/src/locales/he.i18n.json +++ b/packages/i18n/src/locales/he.i18n.json @@ -356,12 +356,10 @@ "Default": "ברירת מחדל", "Default_value": "ערך ברירת מחדל", "Delete": "מחיקה", - "Delete_Room_Warning": "מחיקת חדר יגרום למחיקת כל ההודעות שפורסמו בחדר. פעולה זו בלתי הפיכה.", "Delete_User_Warning": "מחיקת משתמש תמחק את כל הודעותיו. פעולה זו בלתי הפיכה.", "Delete_User_Warning_Delete": "מחיקת משתמש תמחק את כל הודעותיו. פעולה זו בלתי הפיכה.", "Delete_message": "מחיקת הודעה", "Delete_my_account": "מחק את חשבוני", - "Delete_roomType_description": "מחיקת חדר יגרום למחיקת כל ההודעות שפורסמו בחדר. פעולה זו בלתי הפיכה.", "Deleted": "נמחק", "Department_not_found": "המחלקה לא נמצאה", "Department_removed": "המחלקה הוסרה", @@ -876,8 +874,6 @@ "Off_the_record_conversation": "שיחה לא לציטוט", "Off_the_record_conversation_is_not_available_for_your_browser_or_device": "שיחה לא לציטוט אינה זמינה בדפדפן או במכשיר שלך.", "Offline": "מנותק", - "Offline_DM_Email": "קבלת הודעות במשך ישיר על ידי {{user}}", - "Offline_Mention_Email": "אתה הוזכרת על ידי {{user}} ב #{{room}}", "Offline_form": "טופס מנותק", "Offline_form_unavailable_message": "טופס מנותק הודעה זמינה", "Offline_message": "הודעה מנותקת", diff --git a/packages/i18n/src/locales/hi-IN.i18n.json b/packages/i18n/src/locales/hi-IN.i18n.json index 2860c1e547a8c..c337bbd12a271 100644 --- a/packages/i18n/src/locales/hi-IN.i18n.json +++ b/packages/i18n/src/locales/hi-IN.i18n.json @@ -462,7 +462,6 @@ "App_support_url": "यूआरएल का समर्थन करें", "App_user_not_allowed_to_login": "ऐप उपयोगकर्ताओं को सीधे लॉग इन करने की अनुमति नहीं है।", "App_version_incompatible_tooltip": "ऐप Rocket.Chat संस्करण के साथ असंगत है", - "App_will_lose_grandfathered_status": "**यह {{context}} ऐप अपना दादा दर्जा खो देगा।**\n \nसमुदाय पर कार्यस्थानों में अधिकतम {{limit}} {{context}} ऐप्स सक्षम हो सकते हैं। दादाजी ऐप्स को सीमा में गिना जाता है लेकिन सीमा उन पर लागू नहीं होती है।", "Appearance": "दिखावट", "Application_Name": "आवेदन का नाम", "Application_added": "एप्लिकेशन जोड़ा गया", @@ -472,7 +471,6 @@ "Apply_and_refresh_all_clients": "सभी ग्राहकों को लागू करें और ताज़ा करें", "Apps": "ऐप्स", "Apps_Count_Enabled_tooltip": "सामुदायिक कार्यस्थान अधिकतम {{number}} {{context}} ऐप्स सक्षम कर सकते हैं", - "Apps_Currently_Enabled": "{{limit}} {{context}} में से {{limit}} ऐप्स वर्तमान में सक्षम हैं", "Apps_Engine_Version": "ऐप्स इंजन संस्करण", "Apps_Error_private_app_install_disabled": "इस कार्यक्षेत्र में निजी ऐप इंस्टॉलेशन और अपडेट अक्षम हैं", "Apps_Essential_Alert": "यह ऐप निम्नलिखित घटनाओं के लिए आवश्यक है:", @@ -826,8 +824,8 @@ "Calling": "कॉलिंग", "Calls": "कॉल", "Calls_in_queue": { - "one": "कतार में {{calls}} कॉल करें", - "other": "{{calls}} कतार में कॉल करें" + "one": "कतार में {{count}} कॉल करें", + "other": "{{count}} कतार में कॉल करें" }, "Cam_off": "कैम बंद", "Cam_on": "कैम ऑन", @@ -1407,7 +1405,7 @@ "Customer_without_registered_email": "ग्राहक के पास पंजीकृत ईमेल पता नहीं है", "Customize": "अनुकूलित करें", "Customize_Content": "सामग्री को अनुकूलित करें", - "DAU_value": "डीएयू {{price}}", + "DAU_value": "डीएयू {{value}}", "DB_Migration": "डेटाबेस माइग्रेशन", "DB_Migration_Date": "डेटाबेस माइग्रेशन तिथि", "DDP_Rate_Limit_Connection_By_Method_Enabled": "प्रति विधि कनेक्शन द्वारा सीमा: सक्षम", @@ -1451,7 +1449,6 @@ "Delete_Department?": "विभाग हटाएं?", "Delete_File_Warning": "किसी फ़ाइल को हटाने से वह हमेशा के लिए हट जाएगी. इसे असंपादित नहीं किया जा सकता है।", "Delete_Role_Warning": "इसे असंपादित नहीं किया जा सकता है", - "Delete_Room_Warning": "किसी रूम को हटाने से रूम के भीतर पोस्ट किए गए सभी संदेश हट जाएंगे। इसे असंपादित नहीं किया जा सकता है।", "Delete_User_Warning": "किसी उपयोगकर्ता को हटाने से उस उपयोगकर्ता के सभी संदेश भी हट जाएंगे। इसे असंपादित नहीं किया जा सकता है।", "Delete_User_Warning_Delete": "किसी उपयोगकर्ता को हटाने से उस उपयोगकर्ता के सभी संदेश भी हट जाएंगे। इसे असंपादित नहीं किया जा सकता है।", "Delete_User_Warning_Keep": "उपयोगकर्ता को हटा दिया जाएगा, लेकिन उनके संदेश दृश्यमान रहेंगे. इसे असंपादित नहीं किया जा सकता है।", @@ -1461,7 +1458,6 @@ "Delete_all_closed_chats": "सभी बंद चैट हटाएं", "Delete_message": "संदेश को हटाएं", "Delete_my_account": "मेरा एकाउंट हटा दो", - "Delete_roomType_description": "किसी रूम को हटाने से रूम के भीतर पोस्ट किए गए सभी संदेश हट जाएंगे। इसे असंपादित नहीं किया जा सकता है।", "Deleted": "हटा दिया गया!", "Deleted__roomName__": "#{{roomName}} हटा दिया गया", "Deleted__roomName__room": "#{{roomName}} हटा दिया गया", @@ -1625,7 +1621,6 @@ "E2E_key_reset_email": "E2E कुंजी रीसेट अधिसूचना", "E2E_message_encrypted_placeholder": "यह संदेश एंड-टू-एंड एन्क्रिप्टेड है. इसे देखने के लिए, आपको अपनी खाता सेटिंग में अपनी एन्क्रिप्शन कुंजी दर्ज करनी होगी।", "E2E_password_request_text": "अपने एन्क्रिप्टेड निजी समूहों और सीधे संदेशों तक पहुंचने के लिए, अपना एन्क्रिप्शन पासवर्ड दर्ज करें।
आपके द्वारा उपयोग किए जाने वाले प्रत्येक क्लाइंट पर अपने संदेशों को एनकोड/डीकोड करने के लिए आपको यह पासवर्ड दर्ज करना होगा, क्योंकि कुंजी सर्वर पर संग्रहीत नहीं है।", - "E2E_password_reveal_text": "एंड-टू-एंड एन्क्रिप्शन के साथ सुरक्षित निजी कमरे और सीधे संदेश बनाएं।

अपना पासवर्ड सुरक्षित रूप से सहेजें, क्योंकि आपके संदेशों को एन्कोड/डीकोड करने की कुंजी सर्वर पर सहेजी नहीं जाएगी। e2e एन्क्रिप्शन का उपयोग करने के लिए आपको इसे अन्य डिवाइस पर दर्ज करना होगा। और अधिक जानें

अपना पासवर्ड किसी भी ब्राउज़र से, जिस पर आपने दर्ज किया है, कभी भी बदलें। इस संदेश को ख़ारिज करने से पहले अपना पासवर्ड संग्रहीत करना याद रखें।

आपका पासवर्ड है: {{randomPassword}}", "E2E_unavailable_for_federation": "E2E फ़ेडरेटेड कमरों के लिए उपलब्ध नहीं है", "ECDH_Enabled": "डेटा परिवहन के लिए दूसरी परत एन्क्रिप्शन सक्षम करें", "Edit": "संपादन करना", @@ -1691,8 +1686,6 @@ "Enable_Password_History_Description": "सक्षम होने पर, उपयोगकर्ता अपने पासवर्ड को अपने हाल ही में उपयोग किए गए कुछ पासवर्डों में अपडेट नहीं कर पाएंगे।", "Enable_Svg_Favicon": "एसवीजी फ़ेविकॉन सक्षम करें", "Enable_inquiry_fetch_by_stream": "स्ट्रीम का उपयोग करके सर्वर से पूछताछ डेटा लाने में सक्षम करें", - "Enable_of_limit_apps_currently_enabled": "** वर्तमान में {{limit}} {{context}} ऐप्स में से {{limit}} सक्षम हैं।**\n \nसमुदाय पर कार्यस्थानों में अधिकतम {{limit}} {{context}} ऐप्स सक्षम हो सकते हैं।\n \n**{{appName}} डिफ़ॉल्ट रूप से अक्षम कर दिया जाएगा।** इस ऐप को सक्षम करने के लिए किसी अन्य {{context}} ऐप को अक्षम करें या प्रीमियम में अपग्रेड करें।", - "Enable_of_limit_apps_currently_enabled_exceeded": "** वर्तमान में {{limit}} {{context}} ऐप्स में से {{limit}} सक्षम हैं।**\n \nसामुदायिक ऐप की सीमा पार हो गई है.\n \nसमुदाय पर कार्यस्थानों में अधिकतम {{limit}} {{context}} ऐप्स सक्षम हो सकते हैं।\n \n**{{appName}} डिफ़ॉल्ट रूप से अक्षम कर दिया जाएगा।** इस ऐप को सक्षम करने के लिए आपको कम से कम {{exceed}} अन्य {{context}} ऐप्स को अक्षम करना होगा या प्रीमियम प्लान में अपग्रेड करना होगा।", "Enable_omnichannel_auto_close_abandoned_rooms": "आगंतुक द्वारा छोड़े गए कमरों को स्वचालित रूप से बंद करने में सक्षम करें", "Enable_two-factor_authentication": "TOTP के माध्यम से दो-कारक प्रमाणीकरण सक्षम करें", "Enable_unlimited_apps": "असीमित ऐप्स सक्षम करें", @@ -1701,7 +1694,6 @@ "Encrypted": "कूट रूप दिया गया", "Encrypted_channel_Description": "एंड-टू-एंड एन्क्रिप्टेड चैनल। खोज एन्क्रिप्टेड चैनलों के साथ काम नहीं करेगी और सूचनाएं संदेश सामग्री नहीं दिखा सकती हैं।", "Encrypted_message": "एन्क्रिप्टेड संदेश", - "Encrypted_not_available": "सार्वजनिक चैनलों के लिए उपलब्ध नहीं है", "Encrypted_setting_changed_successfully": "एन्क्रिप्टेड सेटिंग सफलतापूर्वक बदल दी गई", "Encryption_key_saved_successfully": "आपकी एन्क्रिप्शन कुंजी सफलतापूर्वक सहेजी गई थी.", "End": "अंत", @@ -2701,13 +2693,11 @@ "Livechat_transcript_sent": "ओमनीचैनल प्रतिलेख भेजा गया", "Livechat_transfer_failed_fallback": "मूल विभाग ({{from}} ) में ऑनलाइन एजेंट नहीं हैं। चैट सफलतापूर्वक {{to}} में स्थानांतरित हो गई", "Livechat_transfer_return_to_the_queue": "{{from}} ने चैट को कतार में लौटा दिया", - "Livechat_transfer_return_to_the_queue_auto_transfer_unanswered_chat": "{{from}} ने चैट को कतार में वापस कर दिया क्योंकि यह {{period}} सेकंड तक अनुत्तरित थी", + "Livechat_transfer_return_to_the_queue_auto_transfer_unanswered_chat": "{{from}} ने चैट को कतार में वापस कर दिया क्योंकि यह {{duration}} सेकंड तक अनुत्तरित थी", "Livechat_transfer_return_to_the_queue_with_a_comment": "{{from}} ने एक टिप्पणी के साथ चैट को कतार में लौटा दिया: {{comment}}", "Livechat_transfer_to_agent": "{{from}} ने चैट को {{to}} में स्थानांतरित कर दिया", - "Livechat_transfer_to_agent_auto_transfer_unanswered_chat": "{{from}} ने चैट को {{to}} में स्थानांतरित कर दिया क्योंकि यह {{period}} सेकंड तक अनुत्तरित थी", + "Livechat_transfer_to_agent_auto_transfer_unanswered_chat": "{{from}} ने चैट को {{to}} में स्थानांतरित कर दिया क्योंकि यह {{duration}} सेकंड तक अनुत्तरित थी", "Livechat_transfer_to_agent_with_a_comment": "{{from}} ने एक टिप्पणी के साथ चैट को {{to}} में स्थानांतरित कर दिया: {{comment}}", - "Livechat_transfer_to_department": "{{to}} ने चैट को विभाग में स्थानांतरित कर दिया {{to}}", - "Livechat_transfer_to_department_with_a_comment": "{{to}} ने एक टिप्पणी के साथ चैट को विभाग में स्थानांतरित कर दिया।", "Livechat_user_sent_chat_transcript_to_visitor": "{{agent}} ने चैट ट्रांसक्रिप्ट को {{guest}} को भेजा", "Livechat_visitor_email_and_transcript_email_do_not_match": "विज़िटर का ईमेल और प्रतिलेख ईमेल मेल नहीं खाते", "Livechat_visitor_transcript_request": "{{guest}} ने चैट प्रतिलेख का अनुरोध किया", @@ -2778,7 +2768,7 @@ "Low": "कम", "Lowest": "निम्नतम", "MAC_InfoText": "(मैक) बिलिंग माह के दौरान जुड़े अद्वितीय सर्वचैनल संपर्कों की संख्या।", - "MAU_value": "हमेशा {{price}}", + "MAU_value": "हमेशा {{value}}", "Mail_Message_Invalid_emails": "आपने एक या अधिक अमान्य ईमेल प्रदान किए हैं: %s", "Mail_Message_Missing_subject": "आपको एक ईमेल विषय प्रदान करना होगा.", "Mail_Message_Missing_to": "आपको एक या अधिक उपयोगकर्ताओं का चयन करना होगा या अल्पविराम से अलग करके एक या अधिक ईमेल पते प्रदान करने होंगे।", @@ -3955,7 +3945,7 @@ "SAML_MetadataCertificate_Template": "मेटाडेटा प्रमाणपत्र टेम्पलेट", "SAML_Metadata_Certificate_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- **\\_\\_प्रमाणपत्र\\_\\_**: दावा एन्क्रिप्शन के लिए निजी प्रमाणपत्र।", "SAML_Metadata_Template": "मेटाडेटा टेम्पलेट", - "SAML_Metadata_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- *\\_\\_sloLocation\\_\\_*: रॉकेट.चैट सिंगल लॉगआउट यूआरएल।\n- **\\_\\_जारीकर्ता\\_\\_**: *Custom Issuer* सेटिंग का मान।\n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* सेटिंग का मान।\n- *\\_\\_certificateTag\\_\\_*: यदि कोई निजी प्रमाणपत्र कॉन्फ़िगर किया गया है, तो इसमें {{Metadata Certificate Template}} शामिल होगा, अन्यथा इसे अनदेखा कर दिया जाएगा।\n- **\\_\\_कॉलबैकयूआरएल\\_\\_**: रॉकेट.चैट कॉलबैक यूआरएल।", + "SAML_Metadata_Template_Description": "निम्नलिखित चर उपलब्ध हैं:\n- *\\_\\_sloLocation\\_\\_*: रॉकेट.चैट सिंगल लॉगआउट यूआरएल।\n- **\\_\\_जारीकर्ता\\_\\_**: *Custom Issuer* सेटिंग का मान।\n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* सेटिंग का मान।\n- *\\_\\_certificateTag\\_\\_*: यदि कोई निजी प्रमाणपत्र कॉन्फ़िगर किया गया है, तो इसमें *Metadata Certificate Template* शामिल होगा, अन्यथा इसे अनदेखा कर दिया जाएगा।\n- **\\_\\_कॉलबैकयूआरएल\\_\\_**: रॉकेट.चैट कॉलबैक यूआरएल।", "SAML_NameIdPolicy_Template": "NameID नीति टेम्पलेट", "SAML_NameIdPolicy_Template_Description": "आप यहां अधिकृत अनुरोध टेम्पलेट से किसी भी वेरिएबल का उपयोग कर सकते हैं।", "SAML_Role_Attribute_Name": "भूमिका विशेषता का नाम", @@ -3973,7 +3963,7 @@ "SLA_removed": "एसएलए हटा दिया गया", "SMS": "एसएमएस", "SMS_Default_Omnichannel_Department": "ओमनीचैनल विभाग (डिफ़ॉल्ट)", - "SMS_Default_Omnichannel_Department_Description": "यदि सेट किया गया है, तो इस एकीकरण द्वारा शुरू की गई सभी नई आने वाली चैट इस विभाग में भेज दी जाएंगी।\nअनुरोध में विभाग क्वेरी पैरामीटर पास करके इस सेटिंग को ओवरराइट किया जा सकता है।\nजैसे `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`।\nनोट: यदि आप विभाग नाम का उपयोग कर रहे हैं, तो यह यूआरएल सुरक्षित होना चाहिए।", + "SMS_Default_Omnichannel_Department_Description": "यदि सेट किया गया है, तो इस एकीकरण द्वारा शुरू की गई सभी नई आने वाली चैट इस विभाग में भेज दी जाएंगी।\nअनुरोध में विभाग क्वेरी पैरामीटर पास करके इस सेटिंग को ओवरराइट किया जा सकता है।\nजैसे `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`।\nनोट: यदि आप विभाग नाम का उपयोग कर रहे हैं, तो यह यूआरएल सुरक्षित होना चाहिए।", "SMS_Description": "अपने कार्यक्षेत्र पर एसएमएस गेटवे सक्षम और कॉन्फ़िगर करें।", "SMS_Enabled": "एसएमएस सक्षम", "SMS_Twilio_InvalidCredentials": "ट्विलियो एसएमएस क्रेडेंशियल अमान्य हैं, संदेश नहीं भेज सकते", @@ -4880,7 +4870,7 @@ "Users_Connected": "उपयोगकर्ता जुड़े", "Users_TOTP_has_been_reset": "उपयोगकर्ता का TOTP रीसेट कर दिया गया है", "Users_added": "उपयोगकर्ताओं को जोड़ दिया गया है", - "Users_and_more_reacted_with": "{{user}} और {{counter}} और अधिक लोगों ने {{emoji}} के साथ प्रतिक्रिया व्यक्त की", + "Users_and_more_reacted_with": "{{users}} और {{counter}} और अधिक लोगों ने {{emoji}} के साथ प्रतिक्रिया व्यक्त की", "Users_and_rooms": "उपयोगकर्ता और कमरे", "Users_by_time_of_day": "दिन के समय के अनुसार उपयोगकर्ता", "Users_in_role": "भूमिका में उपयोगकर्ता", @@ -4892,8 +4882,8 @@ "Utilities": "उपयोगिताओं", "Validate_email_address": "ई - मेल पता की पुष्टि करें", "Validation": "मान्यकरण", - "Value_messages": "{{price}} संदेश", - "Value_users": "{{price}} उपयोगकर्ता", + "Value_messages": "{{value}} संदेश", + "Value_users": "{{value}} उपयोगकर्ता", "Verification": "सत्यापन", "Verification_Description": "आप निम्नलिखित प्लेसहोल्डर्स का उपयोग कर सकते हैं:\n - सत्यापन URL के लिए `[Verification_Url]`।\n - `[नाम]`, `[fname]`, `[lname]` क्रमशः उपयोगकर्ता के पूर्ण नाम, प्रथम नाम या अंतिम नाम के लिए।\n - `[ईमेल]` उपयोगकर्ता के ईमेल के लिए।\n - एप्लिकेशन नाम और यूआरएल के लिए क्रमशः `[Site_Name]` और `[Site_URL]`।", "Verification_Email": "अपना ईमेल पता सत्यापित करने के लिए यहां क्लिक करें।", @@ -4977,7 +4967,7 @@ "Voice_Call": "आवाज कॉल", "Voip_Server_Configuration": "तारांकन वेबसॉकेट सर्वर", "Voip_call_declined": "एजेंट द्वारा फोन काट दिया गया", - "Voip_call_duration": "कॉल {{period}} तक चली", + "Voip_call_duration": "कॉल {{duration}} तक चली", "Voip_call_ended": "कॉल समाप्त हो गई", "Voip_call_ended_unexpectedly": "कॉल अप्रत्याशित रूप से समाप्त हुई: {{reason}}", "Voip_call_on_hold": "कॉल को होल्ड पर रखा गया", @@ -5115,7 +5105,7 @@ "You_should_inform_one_url_at_least": "आपको कम से कम एक यूआरएल परिभाषित करना चाहिए.", "You_should_name_it_to_easily_manage_your_integrations": "अपने एकीकरणों को आसानी से प्रबंधित करने के लिए आपको इसे नाम देना चाहिए।", "You_unfollowed_this_message": "आपने इस संदेश को अनफ़ॉलो कर दिया है.", - "You_users_and_more_Reacted_with": "आपने, {{user}} और {{counter}} ने {{emoji}} के साथ प्रतिक्रिया व्यक्त की", + "You_users_and_more_Reacted_with": "आपने, {{users}} और {{counter}} ने {{emoji}} के साथ प्रतिक्रिया व्यक्त की", "You_will_be_asked_for_permissions": "आपसे अनुमतियां मांगी जाएंगी", "You_will_not_be_able_to_recover": "आप इस संदेश को पुनर्प्राप्त नहीं कर पाएंगे!", "You_will_not_be_able_to_recover_email_inbox": "आप इस ईमेल इनबॉक्स को पुनर्प्राप्त नहीं कर पाएंगे", diff --git a/packages/i18n/src/locales/hr.i18n.json b/packages/i18n/src/locales/hr.i18n.json index 73b2f25de08d4..7d0a2f8df8714 100644 --- a/packages/i18n/src/locales/hr.i18n.json +++ b/packages/i18n/src/locales/hr.i18n.json @@ -849,14 +849,12 @@ "Decline": "Odbij", "Default": "Zadano", "Delete": "Obriši", - "Delete_Room_Warning": "Brisanje sobe će obrisati sve poruke u toj sobi. Ovo se ne može poništiti.", "Delete_User_Warning": "Brisanje korisnika će izbrisati i sve poruke od tog korisnika. Ovo se ne može poništiti.", "Delete_User_Warning_Delete": "Brisanje korisnika će izbrisati i sve poruke od tog korisnika. Ovo se ne može poništiti.", "Delete_User_Warning_Keep": "Korisnik će biti izbrisan, ali će njihove poruke ostati vidljive. To se ne može poništiti.", "Delete_User_Warning_Unlink": "Brisanje korisnika uklonit će korisničko ime iz svih svojih poruka. To se ne može poništiti.", "Delete_message": "Obriši poruku", "Delete_my_account": "Izbriši moj račun", - "Delete_roomType_description": "Brisanje sobe će obrisati sve poruke u toj sobi. Ovo se ne može poništiti.", "Deleted": "Obrisano!", "Department": "Odjel", "Department_not_found": "Odjel nije pronađen", @@ -1715,11 +1713,9 @@ "Office_hours_enabled": "Uredovni Sati omogućeno", "Office_hours_updated": "Ažurirani sati", "Offline": "Offline", - "Offline_DM_Email": "{{user}} vas je izravno kontaktirao", "Offline_Email_Subject_Description": "Možete upotrijebiti sljedeće oznake mjesta: \n - `[Site_Name]`, `[Site_URL]`, `[User]` i `[Room]` za naziv aplikacije, URL, ime i naziv prostorije. ", "Offline_Link_Message": "IDI NA PORUKU", "Offline_Mention_All_Email": "Spomenuti sav predmet e-pošte", - "Offline_Mention_Email": "{{user}} vas je spomenuo u #{{room}}", "Offline_form": "Izvanmrežni obrazac", "Offline_form_unavailable_message": "Poruka nedostupnosti za izvanmrežni obrazac", "Offline_message": "Izvanmrežna poruka", @@ -2334,7 +2330,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Vaša datoteka podataka već je generirana. Provjerite svoj račun e-pošte za vezu za preuzimanje.", "UserDataDownload_EmailBody": "Datoteka podataka sada je spremna za preuzimanje. Kliknite ovdjeda biste je preuzeli.", "UserDataDownload_EmailSubject": "Vaša datoteka podataka je spremna za preuzimanje", - "UserDataDownload_RequestExisted_Text": "Vaša datoteka podataka već se generira. Veza za preuzimanje bit će poslana na vašu e-adresu kada bude spremna.", "UserDataDownload_Requested": "Traženje tražene datoteke", "UserData_EnableDownload": "Omogući preuzimanje korisničkih podataka", "UserData_FileSystemPath": "Put sustava (izvezene datoteke)", diff --git a/packages/i18n/src/locales/hu.i18n.json b/packages/i18n/src/locales/hu.i18n.json index 85d1c202d0ab0..36fab0b9a3d29 100644 --- a/packages/i18n/src/locales/hu.i18n.json +++ b/packages/i18n/src/locales/hu.i18n.json @@ -1333,7 +1333,6 @@ "Delete": "Törlés", "Delete_File_Warning": "Egy fájl törlése örökre törli azt. Ez nem vonható vissza.", "Delete_Role_Warning": "Egy szerep törlése örökre törli azt. Ez nem vonható vissza.", - "Delete_Room_Warning": "Egy szoba törlése törli a szobán belül elküldött összes üzenetet is. Ez nem vonható vissza.", "Delete_User_Warning": "Egy felhasználó törlése törli a felhasználótól érkezett összes üzenetet is. Ez nem vonható vissza.", "Delete_User_Warning_Delete": "Egy felhasználó törlése törli a felhasználótól érkezett összes üzenetet is. Ez nem vonható vissza.", "Delete_User_Warning_Keep": "A felhasználó törölve lesz, de az üzenetei továbbra is láthatóak maradnak. Ez nem vonható vissza.", @@ -1341,7 +1340,6 @@ "Delete_all_closed_chats": "Az összes lezárt csevegés törlése", "Delete_message": "Üzenet törlése", "Delete_my_account": "A fiókom törlése", - "Delete_roomType_description": "Egy szoba törlése törli a szobán belül elküldött összes üzenetet is. Ez nem vonható vissza.", "Deleted": "Törölve!", "Deleted__roomName__": "törölt #{{roomName}}", "Deleted__roomName__room": "törölt #{{roomName}}", @@ -1495,7 +1493,6 @@ "E2E_key_reset_email": "Végpontok közötti titkosítási kulcs visszaállításának értesítése", "E2E_message_encrypted_placeholder": "Ez az üzenet végpontok között titkosított. A megtekintéséhez meg kell adnia a titkosítási kulcsot a fiók beállításaiban.", "E2E_password_request_text": "A titkosított személyes csoportok és közvetlen üzenetek eléréséhez adja meg a titkosítási jelszót.
Ezt a jelszót kell megadnia az üzenetek kódolásához vagy dekódolásához minden egyes használt ügyfélprogramban, mivel a kulcs nincs eltárolva a kiszolgálón.", - "E2E_password_reveal_text": "Mostantól létrehozhat titkosított személyes csoportokat és közvetlen üzeneteket. A meglévő személyes csoportokat vagy közvetlen üzeneteket is megváltoztathatja titkosítottra.

Ez végpontok közötti titkosítás, így az üzenetek kódolásához vagy dekódolásához szükséges kulcs nem kerül mentésre a kiszolgálón. Emiatt a jelszavát valamilyen biztonságos helyen kell tárolnia. Meg kell tudni adni a többi eszközön is, amelyen a végpontok közötti titkosítást használni szeretné. Tudjon meg többet itt!

A jelszava: {{randomPassword}}

Ez egy automatikusan előállított jelszó, bármikor beállíthat egy új jelszót a titkosítási kulcsához bármelyik böngészőből, ahová a meglévő jelszót beírta.
Ez a jelszó csak addig tárolódik ebben a böngészőben, amíg el nem tárolja a jelszót, és el nem utasítja ezt az üzenetet.", "ECDH_Enabled": "Második rétegű titkosítás engedélyezése az adatátvitelhez", "Edit": "Szerkesztés", "Edit_Business_Hour": "Munkaidő szerkesztése", @@ -1565,7 +1562,6 @@ "Encrypted": "Titkosítva", "Encrypted_channel_Description": "Végpontok között titkosított csatorna. A keresés nem fog működni a titkosított csatornákkal, és az értesítések esetleg nem jelenítik meg az üzenetek tartalmát.", "Encrypted_message": "Titkosított üzenet", - "Encrypted_not_available": "Nem érhető el nyilvános csatornáknál", "Encrypted_setting_changed_successfully": "A titkosított beállítás sikeresen megváltoztatva", "Encryption_key_saved_successfully": "A titkosítási kulcsa sikeresen el lett mentve.", "End": "Befejezés", diff --git a/packages/i18n/src/locales/id.i18n.json b/packages/i18n/src/locales/id.i18n.json index 0424cc3b2dc9c..336f850527680 100644 --- a/packages/i18n/src/locales/id.i18n.json +++ b/packages/i18n/src/locales/id.i18n.json @@ -750,14 +750,12 @@ "Decline": "Menurun", "Default": "kegagalan", "Delete": "Hapus", - "Delete_Room_Warning": "Pesan yang berada di dalam room akan secara otomatis terhapus apabila room terkait dihapus. Tindakan ini tidak dapat dianulir.", "Delete_User_Warning": "Semua pesan dari user yang dihapus akan ikut terhapus, tindakan ini tidak dapat dianulir.", "Delete_User_Warning_Delete": "Semua pesan dari user yang dihapus akan ikut terhapus, tindakan ini tidak dapat dianulir.", "Delete_User_Warning_Keep": "Pengguna akan dihapus, tetapi pesan mereka akan tetap terlihat. Ini tidak dapat dibatalkan.", "Delete_User_Warning_Unlink": "Menghapus pengguna akan menghapus nama pengguna dari semua pesan mereka. Ini tidak dapat dibatalkan.", "Delete_message": "Hapus pesan", "Delete_my_account": "Hapus akun Saya", - "Delete_roomType_description": "Pesan yang berada di dalam room akan secara otomatis terhapus apabila room terkait dihapus. Tindakan ini tidak dapat dianulir.", "Deleted": "Dihapus!", "Department": "Departemen", "Department_not_found": "Departemen tidak ditemukan", @@ -1597,11 +1595,9 @@ "Office_hours_enabled": "Jam Kerja Diaktifkan", "Office_hours_updated": "Jam kantor diperbarui", "Offline": "Offline", - "Offline_DM_Email": "Anda telah langsung mengirim pesan oleh {{user}}", "Offline_Email_Subject_Description": "Anda dapat menggunakan pemegang tempat berikut ini: \n - `[Site_Name]`, `[Site_URL]`, [Pengguna] & [Kamar] untuk Nama Aplikasi, URL, Nama Pengguna & Kamar Nama masing-masing. ", "Offline_Link_Message": "PERGI KE PESAN", "Offline_Mention_All_Email": "Sebutkan Semua Subjek Email", - "Offline_Mention_Email": "Anda telah disebutkan oleh {{user}} di #{{room}}", "Offline_form": "formulir Offline", "Offline_form_unavailable_message": "Formulir Offline pesan tidak tersedia", "Offline_message": "pesan Offline", @@ -2212,7 +2208,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "File data Anda sudah dibuat. Periksa akun email Anda untuk tautan unduhan.", "UserDataDownload_EmailBody": "File data Anda sekarang siap diunduh. Klik di siniuntuk mengunduhnya.", "UserDataDownload_EmailSubject": "File Data Anda Siap Diunduh", - "UserDataDownload_RequestExisted_Text": "File data Anda sudah dihasilkan. Tautan untuk mengunduhnya akan dikirim ke alamat email Anda jika sudah siap.", "UserDataDownload_Requested": "Unduh File Diminta", "UserData_EnableDownload": "Aktifkan Unduh Data Pengguna", "UserData_FileSystemPath": "Jalur Sistem (File yang Diekspor)", diff --git a/packages/i18n/src/locales/it.i18n.json b/packages/i18n/src/locales/it.i18n.json index f6c5a896ae5ee..ae21a448176d8 100644 --- a/packages/i18n/src/locales/it.i18n.json +++ b/packages/i18n/src/locales/it.i18n.json @@ -49,7 +49,7 @@ "A_cloud-based_platform_for_those_needing_a_plug-and-play_app": "Una piattaforma basata sul cloud per chi ha bisogno di un'applicazione plug-and-play.", "A_new_owner_will_be_assigned_automatically_to__count__rooms": "Un nuovo proprietario verrà assegnato automaticamente a {{count}} stanze.", "A_new_owner_will_be_assigned_automatically_to_the__roomName__room": "Un nuovo proprietario verrà assegnato automaticamente alla stanza {{roomName}}.", - "A_new_owner_will_be_assigned_automatically_to_those__count__rooms__rooms__": "Un nuovo proprietario verrà assegnato automaticamente a queste _count__ stanze:
{{rooms}}.", + "A_new_owner_will_be_assigned_automatically_to_those__count__rooms__rooms__": "Un nuovo proprietario verrà assegnato automaticamente a queste {{count}} stanze:
{{rooms}}.", "A_secure_and_highly_private_self-managed_solution_for_conference_calls": "Una soluzione autogestita sicura e altamente privata per le chiamate in teleconferenza.", "A_workspace_admin_needs_to_install_and_configure_a_conference_call_app": "L'amministratore di uno spazio di lavoro deve installare e configurare un'applicazione per le chiamate in teleconferenza.", "Accept": "Accetta", @@ -948,7 +948,6 @@ "Delete_Department?": "Cancellare il reparto?", "Delete_Role_Warning": "Questa operazione è irreversibile", "Delete_Role_Warning_Not_Enterprise": "Questa operazione è irreversibile. Non sarà possibile creare un nuovo ruolo personalizzato, poiché questa funzione non è più disponibile per il piano attuale.", - "Delete_Room_Warning": "Cancellando un canale rimuoverà tutti i messaggi postati all'interno del canale. Questa azione non può essere annullata.", "Delete_User_Warning": "Cancellando un utente verranno cancellati anche tutti i suoi messaggi. Questa operazione non può essere annullata.", "Delete_User_Warning_Delete": "Cancellando un utente verranno cancellati anche tutti i suoi messaggi. Questa operazione non può essere annullata.", "Delete_User_Warning_Keep": "L'utente verrà eliminato, ma i suoi messaggi rimarranno visibili. Questo non può essere annullato.", @@ -957,7 +956,6 @@ "Delete_account?": "Cancellare l'account?", "Delete_message": "Cancella messaggio", "Delete_my_account": "Cancella il mio account", - "Delete_roomType_description": "Cancellando un canale rimuoverà tutti i messaggi postati all'interno del canale. Questa azione non può essere annullata.", "Deleted": "Cancellato!", "Deleted_user": "Utente cancellato", "Department": "Dipartimento", @@ -2001,11 +1999,9 @@ "Office_hours_enabled": "Orario ufficio attivo", "Office_hours_updated": "Orari di ufficio aggiornati", "Offline": "Offline", - "Offline_DM_Email": "Hai ricevuto un messaggio diretto da {{user}}", "Offline_Email_Subject_Description": "Puoi utilizzare i seguenti segnaposti: \n - [Nome sito], `[Site_URL]`, [Utente] e [Sala] rispettivamente per Nome applicazione, URL, Nome utente e Nome stanza. ", "Offline_Link_Message": "VAI AL MESSAGGIO", "Offline_Mention_All_Email": "Menzione Tutto Oggetto dell'email", - "Offline_Mention_Email": "Sei stato citato da {{user}} in #{{room}}", "Offline_form": "Modulo offline", "Offline_form_unavailable_message": "Messaggio non disponibile se il modulo è offline", "Offline_message": "Messaggio offline", @@ -2734,7 +2730,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Il tuo file di dati è già stato generato. Controlla il tuo account e-mail per il link di download.", "UserDataDownload_EmailBody": "Il tuo file di dati è ora pronto per il download. Fai clic su quiper scaricarlo.", "UserDataDownload_EmailSubject": "Il tuo file di dati è pronto per il download", - "UserDataDownload_RequestExisted_Text": "Il tuo file di dati è già stato generato. Quando sarà pronto, un link per scaricarlo verrà inviato al tuo indirizzo email.", "UserDataDownload_Requested": "Scarica il file richiesto", "UserData_EnableDownload": "Abilita download dati utente", "UserData_FileSystemPath": "Percorso di sistema (file esportati)", @@ -2752,7 +2747,6 @@ "User__username__removed_from__room_name__leaders": "Utente {{username}} rimosso dai leader {{room_name}}", "User__username__removed_from__room_name__moderators": "L'Utente {{username}}rimosso dai moderatori {{room_name}}", "User__username__removed_from__room_name__owners": "L'Utente {{username}}rimosso dai proprietari {{room_name}}", - "User_added": "Utente {{user_added}} aggiunto.", "User_added_by": "Utente {{user_added}} aggiunto da {{user_by}}.", "User_added_successfully": "Utente aggiunto correttamente", "User_and_group_mentions_only": "Solo utenti e gruppi menzionano", diff --git a/packages/i18n/src/locales/ja.i18n.json b/packages/i18n/src/locales/ja.i18n.json index 4b128913a3744..a29ef37b2b2a4 100644 --- a/packages/i18n/src/locales/ja.i18n.json +++ b/packages/i18n/src/locales/ja.i18n.json @@ -1240,7 +1240,6 @@ "Delete": "削除", "Delete_File_Warning": "ファイルを削除すると完全に削除されます。元に戻すことはできません。", "Delete_Role_Warning": "ロールを削除すると完全に削除されます。元に戻すことはできません。", - "Delete_Room_Warning": "ルームを削除すると、このルームで投稿されたすべてのメッセージは削除されます。削除すると、元に戻せません。", "Delete_User_Warning": "ユーザーを削除すると、このユーザーからのメッセージはすべて削除されます。削除すると、元に戻せません。", "Delete_User_Warning_Delete": "ユーザーを削除すると、このユーザーからのメッセージはすべて削除されます。削除すると、元に戻せません。", "Delete_User_Warning_Keep": "ユーザーは削除されますが、メッセージは引き続き表示されます。これは、元に戻すことはできません。", @@ -1248,7 +1247,6 @@ "Delete_all_closed_chats": "閉じたチャットをすべて削除", "Delete_message": "メッセージを削除", "Delete_my_account": "マイアカウントを削除", - "Delete_roomType_description": "ルームを削除すると、このルームで投稿されたすべてのメッセージは削除されます。削除すると、元に戻せません。", "Deleted": "削除しました!", "Deleted__roomName__": "#{{roomName}}が削除されました", "Deleting": "削除中", @@ -1368,7 +1366,6 @@ "E2E_enable": "E2Eを有効にする", "E2E_key_reset_email": "E2Eキーリセット通知", "E2E_password_request_text": "暗号化されたプライベートグループとダイレクトメッセージにアクセスするには、暗号化パスワードを入力します。
キーがサーバーに保存されていないため、使用するすべてのクライアントでメッセージをエンコード/デコードするには、このパスワードを入力する必要があります。", - "E2E_password_reveal_text": "暗号化されたプライベートグループとダイレクトメッセージを作成できるようになりました。 既存のプライベートグループまたはDMを暗号化するように変更することもできます。

これはエンドツーエンドの暗号化であるため、メッセージのエンコード/デコードのキーがサーバーに保存されなくなります。そのため、安全な別の場所にこのパスワードを保管する必要があります。このパスワードは、E2E暗号化を使用したい他のデバイスで入力する必要があります。詳細はこちら

パスワードは {{randomPassword}}です。

これは自動生成されたパスワードです。既存のパスワードを入力したブラウザーからであれば、いつでも暗号化キーの新しいパスワードを設定できます。
パスワードを保存し、このメッセージを閉じるまで、このパスワードはこのブラウザーにのみ保存されます。", "ECDH_Enabled": "データ転送で2番目のレイヤーの暗号化を有効にする", "Edit": "編集", "Edit_Business_Hour": "営業時間の編集", @@ -1431,7 +1428,6 @@ "Encrypted": "暗号化済み", "Encrypted_channel_Description": "エンドツーエンドの暗号化チャネル。検索は暗号化されたチャネルでは機能せず、通知にメッセージの内容が表示されないことがあります。", "Encrypted_message": "暗号化されたメッセージ", - "Encrypted_not_available": "パブリックChannelsには利用できません", "Encrypted_setting_changed_successfully": "暗号化の設定が正常に変更されました", "Encryption_key_saved_successfully": "暗号化キーが正常に保存されました。", "End": "終了", @@ -3207,7 +3203,7 @@ "SAML_MetadataCertificate_Template": "メタデータ証明書テンプレート", "SAML_Metadata_Certificate_Template_Description": "次の変数を使用できます。 \n- *\\_\\_certificate\\_\\_*:アサーション暗号化のプライベート証明書。", "SAML_Metadata_Template": "メタデータテンプレート", - "SAML_Metadata_Template_Description": "次の変数を使用できます。 \n- *\\_\\_sloLocation\\_\\_*:Rocket.ChatのシングルログアウトURL。 \n- *\\_\\_issuer\\_\\_*:*Custom Issuer*設定の値 \n- *\\_\\_identifierFormat\\_\\_*:*Identifier Format*設定の値 \n- *\\_\\_certificateTag\\_\\_*:プライベート証明書が設定されている場合、これには{{Metadata Certificate Template}}が含まれます。それ以外の場合は無視されます \n- *\\_\\_callbackUrl\\_\\_*:Rocket.ChatコールバックURL", + "SAML_Metadata_Template_Description": "次の変数を使用できます。 \n- *\\_\\_sloLocation\\_\\_*:Rocket.ChatのシングルログアウトURL。 \n- *\\_\\_issuer\\_\\_*:*Custom Issuer*設定の値 \n- *\\_\\_identifierFormat\\_\\_*:*Identifier Format*設定の値 \n- *\\_\\_certificateTag\\_\\_*:プライベート証明書が設定されている場合、これには*Metadata Certificate Template*が含まれます。それ以外の場合は無視されます \n- *\\_\\_callbackUrl\\_\\_*:Rocket.ChatコールバックURL", "SAML_NameIdPolicy_Template": "NameIDポリシーテンプレート", "SAML_NameIdPolicy_Template_Description": "ここでは、承認要求テンプレートの任意の変数を使用できます。", "SAML_Role_Attribute_Name": "ロール属性名", @@ -3222,7 +3218,7 @@ "SAML_Section_6_Advanced": "高度な", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "オムニチャネル部署(デフォルト)", - "SMS_Default_Omnichannel_Department_Description": "設定されている場合、この統合によって開始されたすべての新しい着信チャットはこの部署にルーティングされます。要求で部署クエリパラメーターを渡すことで、この設定を上書きできます(例:`https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`)。 \n注:部署名を使用している場合、それをURLセーフにする必要があります。", + "SMS_Default_Omnichannel_Department_Description": "設定されている場合、この統合によって開始されたすべての新しい着信チャットはこの部署にルーティングされます。要求で部署クエリパラメーターを渡すことで、この設定を上書きできます(例:`https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`)。 \n注:部署名を使用している場合、それをURLセーフにする必要があります。", "SMS_Enabled": "SMSが有効", "SMTP": "SMTP", "SMTP_Host": "SMTPホスト", diff --git a/packages/i18n/src/locales/ka-GE.i18n.json b/packages/i18n/src/locales/ka-GE.i18n.json index 248da47afc279..25e236063886a 100644 --- a/packages/i18n/src/locales/ka-GE.i18n.json +++ b/packages/i18n/src/locales/ka-GE.i18n.json @@ -996,7 +996,6 @@ "Default": "ნაგულისხმევი (default)", "Default_value": "ნაგულისხმევი მნიშვნელობა", "Delete": "წაშლა", - "Delete_Room_Warning": "ოთახის წაშლა წაშლის მესიჯებსაც რომლებიც ოთახში იყო, მათი აღდგენა ვერ მოხერხდება", "Delete_User_Warning": "მომხმარებლის წაშლა ასევე წაშლის ყველა შეტყობინებას ამ მომხმარებლისგანაც. რომლის შემდგომ აღდგენაც შეუძლებელი იქნება", "Delete_User_Warning_Delete": "მომხმარებლის წაშლა ასევე წაშლის ყველა შეტყობინებას ამ მომხმარებლისგანაც. რომლის შემდგომ აღდგენაც შეუძლებელი იქნება", "Delete_User_Warning_Keep": "მომხმარებელი წაიშლება, მაგრამ მათი შეტყობინებები ხილული იქნება. ამის შემდგომ შეცვლა შეუძლებელი იქნება", @@ -1004,7 +1003,6 @@ "Delete_all_closed_chats": "ყველა დახურული ჩეთის წაშლა", "Delete_message": "მესიჯის წაშლა", "Delete_my_account": "ჩემი ანგარიშის წაშლა", - "Delete_roomType_description": "ოთახის წაშლა წაშლის მესიჯებსაც რომლებიც ოთახში იყო, მათი აღდგენა ვერ მოხერხდება", "Deleted": "წაშლილია!", "Department": "განყოფილება", "Department_not_found": "განყოფილება ვერ მოიძებნა", @@ -1106,7 +1104,6 @@ "E2E_Enabled_Default_PrivateRooms": "პირადი ოთახების შეფრაციის ჩართვა დეფაულტად", "E2E_Encryption_Password_Explanation": "ახლა შეგიძლიათ შექმნათ დაშიფრული პირადი ჯგუფები და პირდაპირი შეტყობინებები. თქვენ ასევე შეგიძლიათ დაშიფროთ არსებული პირადი ჯგუფები ან DM-ები .

ეს არის წერტილიდან ბოლო წერტილამდე დაშიფვრა ამიტომ თქვენი გასაღები არ იქნება შენახული სერვერზე. ამითომ გასაღები უნდა შეინახოთ თქვენ. თქვენ მოგიწევთ ამ გასაღების გამოყენება სხვა მოწყობილობებზე რომლებზეც მოისურვებთ e2e დაშიფვრის გამოყენებას", "E2E_password_request_text": "თქვენ დაშიფრულ პირად ჯგუფებზე და პირად მესიჯებზე წვდომისთვის შეიყვანეთ პაროლი.
ეს პაროლი უნდა შეიყვანოთ თქვენი შეტყობინებების დაშიფვრა/გაშიფვრისთვის ყოველი კლიენტისთვის, რადგან პაროლი სერვერზე არ ინახება", - "E2E_password_reveal_text": "ახლა შეგიძლიათ შექმნათ დაშიფრული პირადი ჯგუფები და პირდაპირი შეტყობინებები. თქვენ ასევე შეგიძლიათ დაშიფროთ არსებული პირადი ჯგუფები ან DM-ები.

ეს არის წერტილიდან ბოლო წერტილამდე დაშიფვრა ამიტომ თქვენი გასაღები არ იქნება შენახული სერვერზე. ამითომ გასაღები უნდა შეინახოთ თქვენ. თქვენ მოგიწევთ ამ გასაღების გამოყენება სხვა მოწყობილობებზე რომლებზეც მოისურვებთ e2e დაშიფვრის გამოყენებას გაიგეთ მეტი აქ!

თქვენი პაროლი არის:{{randomPassword}}

ეს არის ავტომატურად გენერირებული პაროლი, პაროლის შეცვლა შეგიძლიათ ნებისმიერ დროს ნებისმიერი ბრაუზერიდან(არსებული პაროლის შეყვანის შემდეგ).
ეს პაროლი ინახება მხოლოდ ამ ბრაუზერში სანამ თქვენ არ შეინახავთ მას. შეინახეთ პაროლი ამ შეტყობინების გათიშვამდე", "Edit": "რედაქტირება", "Edit_Business_Hour": "სამუშაო საათების რედაქტირება", "Edit_Custom_Field": "მორგებული ველების შეცვლა", @@ -1341,7 +1338,7 @@ "Force_SSL": "იძულებითი SSL ", "Force_SSL_Description": "ფრთხილად! იძულებითი SSL არასოდეს არ უნდა იქნას გამოყენებული რევერს პროქსისთან. თუ გაქვთ რევერს პროქსი მასში უნდა გააკეთოთ გადამისამართება.ეს ვარიანტი არსებობს Heroku-ს მსგავსი შემთხვევებისთვის, რომელთაც არ გააჩნიათ გადამისამართება რევერს პროქსისთვის.", "Force_Screen_Lock": "იძულებით ეკრანის დაბლოკვა", - "Force_Screen_Lock_After": "ეკრანის იძულებითი დაბლოკვა {{ }} შემდეგ", + "Force_Screen_Lock_After": "ეკრანის იძულებითი დაბლოკვა შემდეგ", "Force_Screen_Lock_After_description": "უახლესი სესიის დასრულების შემდეგ პაროლის მოთხოვნის დრო, წამებში.", "Force_Screen_Lock_description": "ჩართვის შემთხვევაში, თქვენ აიძულებთ თქვენს მომხმარებლებს გამოიყენონ PIN / BIOMETRY / FACEID, პროგრამის განბლოკვის მიზნით.", "Force_visitor_to_accept_data_processing_consent": "მომხმარებლის იძულება მონაცემთა დამუშავების თანხმობაზე", @@ -2429,7 +2426,7 @@ "Retail": "საცალო", "RetentionPolicy": "შენახვის წესები", "RetentionPolicyRoom_ExcludePinned": "მიმაგრებული შეტყობინებების გამორიცხვა", - "RetentionPolicyRoom_MaxAge": "შეტყობინების მაქსიმალური ასაკი დღეებში(დეფაულტი:{{_max}})", + "RetentionPolicyRoom_MaxAge": "შეტყობინების მაქსიმალური ასაკი დღეებში(დეფაულტი:{{max}})", "RetentionPolicyRoom_OverrideGlobal": "გადახედეთ გლობალური შენახვის წესებს", "RetentionPolicyRoom_ReadTheDocs": "ფრთხილად! ამ პარამეტრების შეცვლისას იყავით ძალიან ფრთხილად. არასწორმა მოქმედებამ შეიძლება შეტყობინებების ისტორიის სრული განადგურება გამოიწვიოს.აქ რაიმის შეცვლამდე გაეცანით დოკუმენტაციას", "RetentionPolicy_AppliesToChannels": "ვრცელდება არხებზე", @@ -3625,7 +3622,7 @@ "unauthorized": "არაა უფლებამოსილი", "unpinning-not-allowed": "მოხსნა არ არის დაშვებული", "user-generate-access-token_description": "მომხმარებლისთვის წვდომის ტოკენის გენერირების უფლება", - "user_sent_an_attachment": "{{username}}– მა გაგზავნა დანართი", + "user_sent_an_attachment": "{{user}}– მა გაგზავნა დანართი", "view-broadcast-member-list": "წევრების სია იხილეთ სამაუწყებლო ოთახში", "view-c-room": "იხილეტ საჯარო არხი", "view-c-room_description": "საჯარო არხების ნახვის უფლება", diff --git a/packages/i18n/src/locales/km.i18n.json b/packages/i18n/src/locales/km.i18n.json index 281e1ca61bdec..31994efd40ad8 100644 --- a/packages/i18n/src/locales/km.i18n.json +++ b/packages/i18n/src/locales/km.i18n.json @@ -925,14 +925,12 @@ "Default": "លំនាំដើម", "Default_value": "តម្លៃ​លំនាំដើម", "Delete": "លុប", - "Delete_Room_Warning": "ការលប់បន្ទប់មួយនឹងត្រូវលប់ចោលទាំងអស់នូវរាល់សារដែលបានប្រកាសនៅក្នុងបន្ទប់នេះ, ដំណើរការនេះមិនទាន់បានបញ្ចប់ទេ", "Delete_User_Warning": "ការ​លប់​អ្នក​ប្រើប្រាស់ នឹង​ត្រូវ​លប់​​គ្រប់​សារ​​របស់​​គាត់​ផង​ដែរ។ ដូច​នេះ​មិន​អាច​ធ្វើ​បាន​ទេ ។", "Delete_User_Warning_Delete": "ការ​លប់​អ្នក​ប្រើប្រាស់ នឹង​ត្រូវ​លប់​​គ្រប់​សារ​​របស់​​គាត់​ផង​ដែរ។ ដូច​នេះ​មិន​អាច​ធ្វើ​បាន​ទេ ។", "Delete_User_Warning_Keep": "អ្នកប្រើនឹងត្រូវបានលុបប៉ុន្តែសាររបស់ពួកគេនឹងនៅតែអាចមើលឃើញ។ នេះមិនអាចមិនធ្វើវិញបានទេ។", "Delete_User_Warning_Unlink": "ការលុបអ្នកប្រើនឹងយកឈ្មោះអ្នកប្រើចេញពីសាររបស់ពួកគេទាំងអស់។ នេះមិនអាចមិនធ្វើវិញបានទេ។", "Delete_message": "លុបសារ", "Delete_my_account": "លុបគណនីរបស់ខ្ញុំ", - "Delete_roomType_description": "ការលប់បន្ទប់មួយនឹងត្រូវលប់ចោលទាំងអស់នូវរាល់សារដែលបានប្រកាសនៅក្នុងបន្ទប់នេះ, ដំណើរការនេះមិនទាន់បានបញ្ចប់ទេ", "Deleted": "បាន​លប់!", "Department": "នាយកដ្ឋាន", "Department_not_found": "រកមិនឃើញនាយកដ្ឋាន", @@ -1869,11 +1867,9 @@ "Office_hours_enabled": "ម៉ោងការិយាល័យបានប្រើ", "Office_hours_updated": "ម៉ោងការិយាល័យបានធ្វើបច្ចុប្បន្នភាព", "Offline": "ក្រៅបណ្តាញ", - "Offline_DM_Email": "អ្នកត្រូវបាន messaged ដោយផ្ទាល់ដោយ {{user}}", "Offline_Email_Subject_Description": "អ្នកអាចប្រើកន្លែងដាក់ដូចតទៅនេះ: \n - `[Site_Name]`, `[Site_URL]`, [អ្នកប្រើ] & [បន្ទប់] សម្រាប់ឈ្មោះកម្មវិធី URL ឈ្មោះអ្នកប្រើនិងឈ្មោះរបស់វា ", "Offline_Link_Message": "ចូលទៅកាន់សារ", "Offline_Mention_All_Email": "និយាយអំពីប្រធានបទអ៊ីម៉ែលទាំងអស់", - "Offline_Mention_Email": "អ្នកត្រូវបានលើកឡើងដោយ {{user}} ក្នុង #{{room}}", "Offline_form": "សំណុំបែបបទដែលបានក្រៅបណ្តាញ", "Offline_form_unavailable_message": "សំណុំបែបបទដែលបានក្រៅបណ្តាញសារមិនអាចប្រើបាន", "Offline_message": "សារក្រៅបណ្តាញ", @@ -3105,7 +3101,6 @@ "you_are_in_preview_mode_of": "អ្នក​ស្ថិត​ក្នុង​ទម្រង់​មើល​ជា​មុន​នៃ​ប៉ុស្តិ៍ #{{room_name}}", "your_message": "សារ​របស់​អ្នក", "your_message_optional": "សាររបស់អ្នក (ស្រេចចិត្ត)", - "__count__empty_rooms_will_be_removed_automatically": "ចំនួនបន្ទប់ដែលនៅសល់នឹងត្រូវលុបចោលដោយស្វ័យប្រវត្តិ។", "__count__empty_rooms_will_be_removed_automatically__rooms__": "{{count}} នឹងត្រូវលុបចោលដោយស្វ័យប្រវត្តិ៖
{{rooms}} ។", "__username__is_no_longer__role__defined_by__user_by_": "{{username}} មិនមាន {{role}}by {{user_by}}", "__username__was_set__role__by__user_by_": "{{username}} ត្រូវបានកំណត់តួនាទីជា {{role}} ដោយ {{user_by}}" diff --git a/packages/i18n/src/locales/ko.i18n.json b/packages/i18n/src/locales/ko.i18n.json index 01d79c5eb0582..0f5880ca31ddb 100644 --- a/packages/i18n/src/locales/ko.i18n.json +++ b/packages/i18n/src/locales/ko.i18n.json @@ -2361,7 +2361,6 @@ "Offline_Email_Subject_Description": "다음의 지시어를 사용할 수 있습니다: \n - 어플리케이션 이름 [Site_Name] / 사이트 URL `[Site_URL]` / 사용자 이름 [User] / 채팅방 이름 [Room] ", "Offline_Link_Message": "메시지로 이동", "Offline_Mention_All_Email": "모든 이에게 보내는 멘션 제목", - "Offline_Mention_Email": "{{user}}님이 {{room}}에서 멘션을 보냈습니다.", "Offline_Message": "오프라인 메시지", "Offline_Message_Use_DeepLink": "딥 링크 URL 형식 사용", "Offline_form": "오프라인 양식", @@ -2766,7 +2765,7 @@ "SAML_MetadataCertificate_Template": "메타 데이터 인증서 템플릿", "SAML_Metadata_Certificate_Template_Description": "다음 변수를 사용할 수 있습니다. : \n -** \\ _ \\ _ certificate \\ _ \\ _ ** : assertion encryption을 위한 개인 인증서.", "SAML_Metadata_Template": "메타 데이터 템플릿", - "SAML_Metadata_Template_Description": "다음 변수를 사용할 수 있습니다.: \n-** \\ _ \\ _ sloLocation \\ _ \\ _ ** : Rocket.Chat 싱글 로그 아웃 URL. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : *Custom Issuer* 설정의 값입니다. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : *Identifier Format* 설정의 값. \n -** \\ _ \\ _ certificateTag \\ _ \\ _ ** : 개인 인증서가 설정된 경우 여기에는 {{Metadata Certificate Template}}이 포함되고, 그렇지 않으면 무시됩니다. \n -** \\ _ \\ _ callbackUrl \\ _ \\ _ ** : Rocket.Chat 콜백 URL.", + "SAML_Metadata_Template_Description": "다음 변수를 사용할 수 있습니다.: \n-** \\ _ \\ _ sloLocation \\ _ \\ _ ** : Rocket.Chat 싱글 로그 아웃 URL. \n -** \\ _ \\ _ issuer \\ _ \\ _ ** : *Custom Issuer* 설정의 값입니다. \n -** \\ _ \\ _ identifierFormat \\ _ \\ _ ** : *Identifier Format* 설정의 값. \n -** \\ _ \\ _ certificateTag \\ _ \\ _ ** : 개인 인증서가 설정된 경우 여기에는 *Metadata Certificate Template*이 포함되고, 그렇지 않으면 무시됩니다. \n -** \\ _ \\ _ callbackUrl \\ _ \\ _ ** : Rocket.Chat 콜백 URL.", "SAML_NameIdPolicy_Template": "NameID 정책 템플릿", "SAML_NameIdPolicy_Template_Description": "여기에서 권한 요청 템플릿의 모든 변수를 사용할 수 있습니다.", "SAML_Role_Attribute_Name": "역할 속성명", @@ -2780,7 +2779,7 @@ "SAML_Section_5_Mapping": "매핑", "SAML_Section_6_Advanced": "고급", "SMS_Default_Omnichannel_Department": "실시간상담 부서 (기본값)", - "SMS_Default_Omnichannel_Department_Description": "설정하면 이 통합으로 시작된 모든 새로운 수신 채팅이 이 부서로 라우팅됩니다. \n요청에서 부서 쿼리 매개 변수를 전달하여 이 설정을 덮어쓸 수 있습니다. \n예: `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \n참고: 부서 이름을 사용하는 경우 URL에 안전해야 합니다.", + "SMS_Default_Omnichannel_Department_Description": "설정하면 이 통합으로 시작된 모든 새로운 수신 채팅이 이 부서로 라우팅됩니다. \n요청에서 부서 쿼리 매개 변수를 전달하여 이 설정을 덮어쓸 수 있습니다. \n예: `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \n참고: 부서 이름을 사용하는 경우 URL에 안전해야 합니다.", "SMS_Enabled": "SMS 사용", "SMTP": "SMTP", "SMTP_Host": "SMTP 호스트", diff --git a/packages/i18n/src/locales/ku.i18n.json b/packages/i18n/src/locales/ku.i18n.json index 0aabd01a4e0e4..b26737479cb1d 100644 --- a/packages/i18n/src/locales/ku.i18n.json +++ b/packages/i18n/src/locales/ku.i18n.json @@ -749,14 +749,12 @@ "Decline": "Paşvegerrî", "Default": "Destçûnî", "Delete": "Vemirandina", - "Delete_Room_Warning": "Jêbirina odeyeke dê hemû mesaj nivîsandin di nava odeya jêbirin. Ev nayê vegerandin.", "Delete_User_Warning": "Jêbirina user dê hemû peyamên ji ku user wek baş bibe. Ev nayê vegerandin.", "Delete_User_Warning_Delete": "Jêbirina user dê hemû peyamên ji ku user wek baş bibe. Ev nayê vegerandin.", "Delete_User_Warning_Keep": "Bikarhêner dê jêbirin, lê peyamên wan dê berbiçav bimînin. Ev nikare nehêle.", "Delete_User_Warning_Unlink": "Ji bo bikarhênerek jêbirin dê navê bikarhêner ji hemî peyamên xwe bişînin. Ev nikare nehêle.", "Delete_message": "Vemirandina message", "Delete_my_account": "Vemirandina account min", - "Delete_roomType_description": "Jêbirina odeyeke dê hemû mesaj nivîsandin di nava odeya jêbirin. Ev nayê vegerandin.", "Deleted": "Deleted!", "Department": "Liq", "Department_not_found": "Wezareta dîtin ne", @@ -1593,11 +1591,9 @@ "Office_hours_enabled": "Navendên Karûbarên Hilbijartinê", "Office_hours_updated": "Roja betalî", "Offline": "Ne girêdayî", - "Offline_DM_Email": "Te direct by {{user}} messaged dîtin", "Offline_Email_Subject_Description": "Hûn dikarin liverên jêrîn bikar bînin: \n - `[Site_Name]`, `[Site_URL]`, [Bikarhêner] & [Room] ji bo navê Name, URL, Navê Username û RoomName. ", "Offline_Link_Message": "HERIN MESSAGE", "Offline_Mention_All_Email": "Mijar Hemû Email Subject", - "Offline_Mention_Email": "Te by {{user}} li #{{room}} bêşê", "Offline_form": "forma is offline", "Offline_form_unavailable_message": "Ne girêdayî form message unavailable", "Offline_message": "peyamek Negirêdayî", diff --git a/packages/i18n/src/locales/lo.i18n.json b/packages/i18n/src/locales/lo.i18n.json index 9de0bc18defd6..00897ebb33e09 100644 --- a/packages/i18n/src/locales/lo.i18n.json +++ b/packages/i18n/src/locales/lo.i18n.json @@ -765,14 +765,12 @@ "Default": "ມາດຕະຖານ", "Default_value": "ຄ່າເລີ່ມຕົ້ນ", "Delete": "ລົບ", - "Delete_Room_Warning": "ລົບຫ້ອງຈະລຶບຂໍ້ຄວາມທັງຫມົດຈັດພີມມາພາຍໃນຫ້ອງການ. ນີ້​ບໍ່​ສາ​ມາດ​ຍົກ​ເລີກ​ໄດ້.", "Delete_User_Warning": "ລົບຜູ້ໃຊ້ຈະລຶບຂໍ້ຄວາມທັງຫມົດຈາກຜູ້ໃຊ້ທີ່ເຊັ່ນດຽວກັນ. ນີ້​ບໍ່​ສາ​ມາດ​ຍົກ​ເລີກ​ໄດ້.", "Delete_User_Warning_Delete": "ລົບຜູ້ໃຊ້ຈະລຶບຂໍ້ຄວາມທັງຫມົດຈາກຜູ້ໃຊ້ທີ່ເຊັ່ນດຽວກັນ. ນີ້​ບໍ່​ສາ​ມາດ​ຍົກ​ເລີກ​ໄດ້.", "Delete_User_Warning_Keep": "ຜູ້ໃຊ້ຈະຖືກລຶບ, ແຕ່ຂໍ້ຄວາມຂອງພວກເຂົາຈະຍັງຄົງເຫັນໄດ້. ນີ້​ບໍ່​ສາ​ມາດ​ຍົກ​ເລີກ​ໄດ້.", "Delete_User_Warning_Unlink": "ການລຶບຜູ້ໃຊ້ຈະລຶບຊື່ຜູ້ໃຊ້ອອກຈາກຂໍ້ຄວາມທັງຫມົດ. ນີ້​ບໍ່​ສາ​ມາດ​ຍົກ​ເລີກ​ໄດ້.", "Delete_message": "ລຶບຂໍ້ຄວາມ", "Delete_my_account": "ລຶບບັນຊີຂອງຂ້າພະເຈົ້າ", - "Delete_roomType_description": "ລົບຫ້ອງຈະລຶບຂໍ້ຄວາມທັງຫມົດຈັດພີມມາພາຍໃນຫ້ອງການ. ນີ້​ບໍ່​ສາ​ມາດ​ຍົກ​ເລີກ​ໄດ້.", "Deleted": "ລົບ!", "Department": "ກົມ", "Department_not_found": "ບໍ່ໄດ້ພົບເຫັນພະແນກ", @@ -1627,11 +1625,9 @@ "Office_hours_enabled": "Office Hours Enabled", "Office_hours_updated": "ຊົ່ວໂມງເຮັດວຽກຂອງຫ້ອງການ", "Offline": "ອອຟໄລ", - "Offline_DM_Email": "ທ່ານໄດ້ຮັບການ messaged ໂດຍກົງໂດຍ {{user}}", "Offline_Email_Subject_Description": "ທ່ານສາມາດນໍາໃຊ້ບ່ອນວາງສະແດງດັ່ງຕໍ່ໄປນີ້: \n - `[Site_Name]`, `[Site_URL]`, `[User]` & `[Room]` ສໍາລັບຊື່ແອັບພລິເຄຊັນ, URL, ຊື່ຜູ້ໃຊ້ແລະຊື່ຫ້ອງການ. ", "Offline_Link_Message": "ໄປຫາຂ່າວສານ", "Offline_Mention_All_Email": "ບອກເຖິງຫົວຂໍ້ອີເມວທັງຫມົດ", - "Offline_Mention_Email": "ທ່ານໄດ້ຮັບການທີ່ໄດ້ກ່າວມາໂດຍ {{user}} ໃນ #{{room}}", "Offline_form": "ຮູບແບບອອຟໄລ", "Offline_form_unavailable_message": "ຮູບແບບອອຟໄລຂໍ້ຄວາມບໍ່ສາມາດໃຊ້", "Offline_message": "ຂໍ້ຄວາມອອຟໄລ", @@ -2241,7 +2237,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "ໄຟລ໌ຂໍ້ມູນຂອງທ່ານຖືກຜະລິດແລ້ວ. ກວດເບິ່ງບັນຊີອີເມວຂອງທ່ານສໍາລັບການເຊື່ອມຕໍ່ດາວໂຫລດ.", "UserDataDownload_EmailBody": "ແຟ້ມຂໍ້ມູນຂອງທ່ານຕອນນີ້ພ້ອມທີ່ຈະດາວໂຫລດ. ກົດ ທີ່ນີ້ເພື່ອດາວໂຫລດມັນ.", "UserDataDownload_EmailSubject": "ໄຟລ໌ຂໍ້ມູນຂອງທ່ານແມ່ນພ້ອມທີ່ຈະດາວໂຫລດ", - "UserDataDownload_RequestExisted_Text": "ໄຟລ໌ຂໍ້ມູນຂອງທ່ານກໍາລັງຖືກສ້າງແລ້ວ. ການເຊື່ອມຕໍ່ເພື່ອດາວໂຫລດມັນຈະຖືກສົ່ງໄປຫາທີ່ຢູ່ອີເມວຂອງທ່ານເມື່ອມີຄວາມພ້ອມ.", "UserDataDownload_Requested": "Download File Requested", "UserData_EnableDownload": "ເປີດນໍາໃຊ້ຂໍ້ມູນຜູ້ໃຊ້", "UserData_FileSystemPath": "ເສັ້ນທາງລະບົບ (ໄຟລ໌ສົ່ງອອກ)", diff --git a/packages/i18n/src/locales/lt.i18n.json b/packages/i18n/src/locales/lt.i18n.json index 180aef1f8a3c5..ae5014d51bc80 100644 --- a/packages/i18n/src/locales/lt.i18n.json +++ b/packages/i18n/src/locales/lt.i18n.json @@ -799,14 +799,12 @@ "Decline": "mažėjimas", "Default": "Numatytas", "Delete": "Ištrinti", - "Delete_Room_Warning": "Ištrynus kambarį bus ištrinti visi pranešimai, paskelbti kambaryje. Tai negalima atšaukti.", "Delete_User_Warning": "Ištrynus naudotoją taip pat bus ištrinti visi pranešimai iš šio vartotojo. Tai negalima atšaukti.", "Delete_User_Warning_Delete": "Ištrynus naudotoją taip pat bus ištrinti visi pranešimai iš šio vartotojo. Tai negalima atšaukti.", "Delete_User_Warning_Keep": "Vartotojas bus ištrintas, bet jų žinutės bus matomos. Tai negalima atšaukti.", "Delete_User_Warning_Unlink": "Ištrinant naudotoją bus pašalintas vartotojo vardas iš visų jų žinučių. Tai negalima atšaukti.", "Delete_message": "Ištrinti pranešimą", "Delete_my_account": "Ištrinti mano sąskaitą", - "Delete_roomType_description": "Ištrynus kambarį bus ištrinti visi pranešimai, paskelbti kambaryje. Tai negalima atšaukti.", "Deleted": "Ištrinta!", "Department": "Departamentas", "Department_not_found": "Departamentas nerastas", @@ -2264,7 +2262,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Jūsų duomenų failas jau buvo sukurtas. Patikrinkite savo el. Pašto paskyrą, kad atsisiųskite saitą.", "UserDataDownload_EmailBody": "Jūsų duomenų failas dabar paruoštas atsisiuntimui. Jei norite atsisiųsti, spustelėkite čia.", "UserDataDownload_EmailSubject": "Jūsų duomenų failas yra pasirengęs atsisiųsti", - "UserDataDownload_RequestExisted_Text": "Jūsų duomenų failas jau sukurtas. Nuoroda, kurią norite atsisiųsti, bus išsiųsta į jūsų el. Pašto adresą, kai bus paruošta.", "UserDataDownload_Requested": "Parsisiųskite prašomą failą", "UserData_EnableDownload": "Įgalinti vartotojo duomenų atsisiuntimą", "UserData_FileSystemPath": "Sistemos kelias (eksportuojami failai)", diff --git a/packages/i18n/src/locales/lv.i18n.json b/packages/i18n/src/locales/lv.i18n.json index 3830512630844..58dfe6172d68f 100644 --- a/packages/i18n/src/locales/lv.i18n.json +++ b/packages/i18n/src/locales/lv.i18n.json @@ -757,14 +757,12 @@ "Decline": "Atteikties", "Default": "Noklusējums", "Delete": "Izdzēst", - "Delete_Room_Warning": "Dzēšot istabu, tiks dzēsti visi tajā ievietotie ziņojumi. To nevar atsaukt.", "Delete_User_Warning": "Izdzēšot lietotāju tiks dzēsti arī visi šī lietotāja ziņojumi. Tas ir neatgriezeniski.", "Delete_User_Warning_Delete": "Izdzēšot lietotāju tiks dzēsti arī visi šī lietotāja ziņojumi. Tas ir neatgriezeniski.", "Delete_User_Warning_Keep": "Lietotājs tiks dzēsts, bet viņa ziņojumi joprojām būs redzami. Tas ir neatgriezeniski.", "Delete_User_Warning_Unlink": "Lietotāja dzēšana noņems lietotāja vārdu no visiem viņa ziņojumiem. Tas ir neatgriezeniski.", "Delete_message": "Dzēst ziņojumu", "Delete_my_account": "Dzēst manu kontu", - "Delete_roomType_description": "Dzēšot istabu, tiks dzēsti visi tajā ievietotie ziņojumi. To nevar atsaukt.", "Deleted": "Dzēsts.", "Department": "Departametns", "Department_not_found": "Departaments nav atrasts", @@ -1015,7 +1013,6 @@ "Government": "Valdība", "Group_by_Type": "Grupēt pēc veida", "Group_favorites": "Grupēt izlases", - "Group_mentions_disabled_x_members": "Pieminējumi grupā \"@ visi\" un \"@ šeit\" ir bloķēti istabās kurās ir vairāk nekā kopējais skaits dalībnieki.", "Group_mentions_only": "Grupēt tikai pieminējumus", "Hash": "Īssavilkums", "Header": "Galvene", @@ -2027,7 +2024,6 @@ "Snippet_Added": "Izveidots uz %s", "Snippet_Messages": "Snippet ziņojumi", "Snippet_name": "Snippet nosaukums", - "Snippeted_a_message": "Snippet izveidots snippet saite", "Social_Network": "Sociālais tīkls", "Sorry_page_you_requested_does_not_exist_or_was_deleted": "Atvainojiet, pieprasītā lapa neeksistē vai tika izdzēsta!", "Sort": "Kārtot", @@ -2224,7 +2220,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Jūsu datu fails jau tika izveidota. Pārbaudiet e-pasta kontu par lejupielādes saiti.", "UserDataDownload_EmailBody": "Jūsu datu fails ir gatavs lejupielādei. Lai to lejupielādētu, noklikšķiniet šeit.", "UserDataDownload_EmailSubject": "Jūsu datu fails ir gatavs lejupielādei", - "UserDataDownload_RequestExisted_Text": "Jūsu datu fails jau tiek veidots. Saite tā lejupielādei tiks nosūtīta uz jūsu e-pasta adresi, kad būs gatava.", "UserDataDownload_Requested": "Lejupielādējiet pieprasīto failu", "UserData_EnableDownload": "Iespējot lietotāja datu lejupielādi", "UserData_FileSystemPath": "Sistēmas ceļš (eksportētie faili)", @@ -2235,10 +2230,10 @@ "User_Interface": "Lietotāja interfeiss", "User_Presence": "Lietotāja klātbūtne", "User_Settings": "Lietotāja iestatījumi", - "User__username__is_now_a_leader_of__room_name_": "Lietotājs lietotājvārds tagad ir istabas nosaukums vadītājs", - "User__username__is_now_a_moderator_of__room_name_": "Lietotājs lietotājvārds tagad ir istabas nosaukums moderators", + "User__username__is_now_a_leader_of__room_name_": "Lietotājs {{username}} tagad ir istabas {{room_name}} vadītājs", + "User__username__is_now_a_moderator_of__room_name_": "Lietotājs {{username}} tagad ir istabas {{room_name}} moderators", "User_added": "Lietotājs pievienots", - "User_added_by": "Lietotāju Lietotājs pievienotspievienoja lietotājs.", + "User_added_by": "Lietotāju {{user_added}}pievienoja {{user_by}}.", "User_added_successfully": "Lietotājs pievienots veiksmīgi", "User_and_group_mentions_only": "Lietotājs un grupa tikai pieminējumi", "User_default": "Lietotāja noklusējums", @@ -2264,13 +2259,13 @@ "User_not_found_or_incorrect_password": "Lietotājs nav atrasts vai ir nepareiza parole", "User_or_channel_name": "Lietotāja vai kanāla nosaukums", "User_removed": "Lietotājs ir noņemts", - "User_sent_a_message_on_channel": "lietotājvārds nosūtīja ziņojumu kanāls", - "User_sent_a_message_to_you": "lietotājvārds nosūtīja jums ziņojumu", - "User_unmuted_by": "Lietotājam lietotājam ļauts rakstītatļāva rakstītlietotājs.", + "User_sent_a_message_on_channel": "{{username}} nosūtīja ziņojumu {{channel}}", + "User_sent_a_message_to_you": "{{username}} nosūtīja jums ziņojumu", + "User_unmuted_by": "Lietotājam {{user_unmuted}}atļāva rakstīt{{user_by}}.", "User_unmuted_in_room": "Lietotājam ir atļauts rakstīt istabā", "User_updated_successfully": "Lietotājs ir veiksmīgi atjaunināts", - "User_uploaded_a_file_on_channel": "lietotājvārds augšupielādēja failu kanāls", - "User_uploaded_a_file_to_you": "lietotājvārds nosūtīja jums failu", + "User_uploaded_a_file_on_channel": "{{username}} augšupielādēja failu {{channel}}", + "User_uploaded_a_file_to_you": "{{username}} nosūtīja jums failu", "User_uploaded_file": "Fails augšupielādēts", "User_uploaded_image": "Attēls augšupielādēts", "Username": "Lietotājvārds", @@ -2482,8 +2477,8 @@ "error-direct-message-file-upload-not-allowed": "Failu koplietošana ziņojumos nav atļauta ", "error-edit-permissions-not-allowed": "Atļauju rediģēšana nav atļauta", "error-email-domain-blacklisted": "E-pasta domēns ir iekļauts melnajā sarakstā", - "error-email-send-failed": "Kļūda, mēģinot sūtīt e-pastu: Ziņojums", - "error-field-unavailable": "lauks jau ir izmantots :(", + "error-email-send-failed": "Kļūda, mēģinot sūtīt e-pastu: {{message}}", + "error-field-unavailable": "{{field}} jau ir izmantots :(", "error-file-too-large": "Fails ir pārāk liels", "error-forwarding-department-target-not-allowed": "Pārsūtīšana mērķa (saņēmēja) departamentam nav atļauta.", "error-guests-cant-have-other-roles": "Vieslietotājiem nevar būt citas lomas.", @@ -2513,7 +2508,7 @@ "error-invalid-redirectUri": "Nederīgs redirectUri", "error-invalid-role": "Nederīga loma", "error-invalid-room": "Nederīga istaba", - "error-invalid-room-type": "veids nav derīgs istabas veids.", + "error-invalid-room-type": "{{type}} nav derīgs istabas veids.", "error-invalid-settings": "Iesniegti nederīgi iestatījumi", "error-invalid-subscription": "Nederīgs abonements", "error-invalid-token": "Nederīgs žetons", @@ -2643,8 +2638,8 @@ "registration.page.resetPassword.sent": "Ja šis e-pasts ir reģistrēts, mēs nosūtīsim norādījumus par to, kā atiestatīt savu paroli. Ja drīzumā nesaņemsiet e-pasta ziņojumu, lūdzam, atgriezieties un mēģiniet vēlreiz.", "remove-user": "Noņemt lietotāju", "remove-user_description": "Atļauja noņemt lietotāju no istabas", - "room_changed_announcement": "Istabas paziņojums mainīts uz: istabas paziņojums lietotājs", - "room_changed_description": "Istabas apraksts ir mainīts uz: istabas apraksts lietotājs", + "room_changed_announcement": "Istabas paziņojums mainīts uz: {{room_announcement}} {{user_by}}", + "room_changed_description": "Istabas apraksts ir mainīts uz: {{room_description}} {{user_by}}", "room_is_blocked": "Šī istaba ir bloķēta", "room_is_read_only": "Šis istaba ir tikai lasīšanai", "room_name": "istabas nosaukums", @@ -2714,7 +2709,6 @@ "unauthorized": "Nav atļauts", "user-generate-access-token": "Lietotāja veidots piekļuves žetons", "user-generate-access-token_description": "Atļauja lietotājiem veidot piekļuves žetonus", - "user_sent_an_attachment": "lietotājs nosūtīja pielikumu", "view-broadcast-member-list": "Skatīt lietotāju sarakstu apraides istabā", "view-c-room": "Skatīt publisko kanālu", "view-c-room_description": "Atļauja apskatīt publiskos kanālus", @@ -2750,6 +2744,5 @@ "will_be_able_to": "varēs", "yesterday": "vakar", "your_message": "Jūsu ziņojums", - "your_message_optional": "Jūsu ziņojums (nav obligāti)", - "__username__was_set__role__by__user_by_": "lietotājvārds tika iestatīts loma lietotājs" + "your_message_optional": "Jūsu ziņojums (nav obligāti)" } \ No newline at end of file diff --git a/packages/i18n/src/locales/mn.i18n.json b/packages/i18n/src/locales/mn.i18n.json index e7b73ab9c62d1..ab998ede95fbb 100644 --- a/packages/i18n/src/locales/mn.i18n.json +++ b/packages/i18n/src/locales/mn.i18n.json @@ -748,14 +748,12 @@ "Decline": "Татгалзах", "Default": "Үндсэн байна", "Delete": "Устгах", - "Delete_Room_Warning": "Өрөөнөөс устгавал өрөөн дотор байгаа бүх мэдэгдлүүдийг устгах болно. Энэ буцаах боломжгүй.", "Delete_User_Warning": "Хэрэглэгч устгах нь тухайн хэрэглэгчийн бүх зурвасыг мөн устгах болно. Энэ буцаах боломжгүй.", "Delete_User_Warning_Delete": "Хэрэглэгч устгах нь тухайн хэрэглэгчийн бүх зурвасыг мөн устгах болно. Энэ буцаах боломжгүй.", "Delete_User_Warning_Keep": "Хэрэглэгч устгагдах боловч тэдний зурвасууд нь харагдах болно. Энэ буцаах боломжгүй.", "Delete_User_Warning_Unlink": "Хэрэглэгч устгах нь хэрэглэгчийн нэрийг тэдний бүх зурвасаас хасах болно. Энэ буцаах боломжгүй.", "Delete_message": "Мессеж устгах", "Delete_my_account": "Акаунтаа устгах", - "Delete_roomType_description": "Өрөөнөөс устгавал өрөөн дотор байгаа бүх мэдэгдлүүдийг устгах болно. Энэ буцаах боломжгүй.", "Deleted": "Устгагдсан!", "Department": "Газар", "Department_not_found": "Газар олдсонгүй", @@ -2208,7 +2206,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Таны өгөгдлийн файл үүсгэгдсэн байна. Татаж авах холбоосын талаар и-мэйл хаягаа шалгана уу.", "UserDataDownload_EmailBody": "Таны дата файлыг татаж авахад бэлэн боллоо. Энд дарна уу энд{{username}} мессеж илгээгдсэн {{channel}}", - "User_sent_a_message_to_you": "__зориулагчтанд зурвас илгээж байна", + "User_sent_a_message_to_you": "{{username}}танд зурвас илгээж байна", "User_unmuted_by": "Хэрэглэгч {{user_unmuted}}нээгдсэн {{user_by}}.", "User_unmuted_in_room": "Хэрэглэгчид унтаагүй байна", "User_updated_successfully": "Хэрэглэгч шинэчлэгдсэн", diff --git a/packages/i18n/src/locales/ms-MY.i18n.json b/packages/i18n/src/locales/ms-MY.i18n.json index 0df9d8c360d06..06e7879b17c89 100644 --- a/packages/i18n/src/locales/ms-MY.i18n.json +++ b/packages/i18n/src/locales/ms-MY.i18n.json @@ -751,14 +751,12 @@ "Decline": "Tolak", "Default": "lalai", "Delete": "Padam", - "Delete_Room_Warning": "Memadam bilik akan memadam semua mesej yang dihantar di dalam bilik. Perkara ini tidak boleh diubah.", "Delete_User_Warning": "Memadam pengguna akan memadam semua mesej dari pengguna itu juga. Ini tidak boleh kembalikan asal.", "Delete_User_Warning_Delete": "Memadam pengguna akan memadam semua mesej dari pengguna itu juga. Ini tidak boleh kembalikan asal.", "Delete_User_Warning_Keep": "Pengguna akan dipadam, tetapi mesej mereka akan kelihatan. Perkara ini tidak boleh diubah.", "Delete_User_Warning_Unlink": "Memadamkan pengguna akan mengeluarkan nama pengguna dari semua mesej mereka. Perkara ini tidak boleh diubah.", "Delete_message": "Padamkan pesanan", "Delete_my_account": "Padam akaun saya", - "Delete_roomType_description": "Memadam bilik akan memadam semua mesej yang dihantar di dalam bilik. Perkara ini tidak boleh diubah.", "Deleted": "Dipadamkan!", "Department": "Jabatan", "Department_not_found": "Jabatan tidak dijumpai", @@ -1599,11 +1597,9 @@ "Office_hours_enabled": "Waktu Pejabat Dihidupkan", "Office_hours_updated": "Waktu pejabat dikemas kini", "Offline": "offline", - "Offline_DM_Email": "Anda telah menghantar mesej langsung oleh {{user}}", "Offline_Email_Subject_Description": "Anda boleh menggunakan pemegang tempat berikut: \n - `[Site_Name]`, `[Site_URL]`, [Pengguna] & [Bilik] masing-masing. ", "Offline_Link_Message": "GO TO MESSAGE", "Offline_Mention_All_Email": "Sebutkan Semua Subjek E-mel", - "Offline_Mention_Email": "Anda telah disebut oleh {{user}} dalam #{{room}}", "Offline_form": "bentuk offline", "Offline_form_unavailable_message": "bentuk Offline mesej tersedia", "Offline_message": "mesej offline", @@ -2215,7 +2211,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "Fail data anda telah dijana. Semak akaun e-mel anda untuk pautan muat turun.", "UserDataDownload_EmailBody": "Fail data anda kini bersedia untuk dimuat turun. Klik di siniuntuk memuat turunnya.", "UserDataDownload_EmailSubject": "Fail Data anda Sedia untuk Diunduh", - "UserDataDownload_RequestExisted_Text": "Fail data anda sudah dijana. Pautan untuk memuat turunnya akan dihantar ke alamat e-mel anda apabila siap.", "UserDataDownload_Requested": "Muat turun Fail yang Diminta", "UserData_EnableDownload": "Dayakan Muat Turun Data Pengguna", "UserData_FileSystemPath": "Laluan Sistem (Fail Eksport)", @@ -2478,7 +2473,7 @@ "error-delete-protected-role": "Tidak dapat memadam peranan yang dilindungi", "error-department-not-found": "Jabatan tidak dijumpai", "error-direct-message-file-upload-not-allowed": "Perkongsian fail tidak dibenarkan dalam mesej langsung", - "error-duplicate-channel-name": "Saluran dengan nama '%s' telah wujud", + "error-duplicate-channel-name": "Saluran dengan nama '{{channel_name}}' telah wujud", "error-edit-permissions-not-allowed": "Kebenaran pengeditan tidak dibenarkan", "error-email-domain-blacklisted": "Domain e-mel disenaraihitamkan", "error-email-send-failed": "Ralat cuba menghantar e-mel: {{message}}", diff --git a/packages/i18n/src/locales/nb.i18n.json b/packages/i18n/src/locales/nb.i18n.json index a465d738dc311..6a388a858eafc 100644 --- a/packages/i18n/src/locales/nb.i18n.json +++ b/packages/i18n/src/locales/nb.i18n.json @@ -4523,7 +4523,7 @@ "SAML_MetadataCertificate_Template": "Mal for metadatasertifikat", "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_certificate\\_\\_*: Det private sertifikatet for påstandskryptering.", "SAML_Metadata_Template": "Mal for metadata", - "SAML_Metadata_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chats Single Logout URL. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat sertifikat er konfigurert, vil dette inkludere {{Metadata Certificate Template}}, ellers vil det bli ignorert. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chats tilbakeringings-URL.", + "SAML_Metadata_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chats Single Logout URL. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat sertifikat er konfigurert, vil dette inkludere *Metadata Certificate Template*, ellers vil det bli ignorert. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chats tilbakeringings-URL.", "SAML_NameIdPolicy_Template": "Mal for retningslinjer for NameID", "SAML_NameIdPolicy_Template_Description": "Du kan bruke en hvilken som helst variabel fra Authorize Request Template her.", "SAML_Role_Attribute_Name": "Rolle Attributt Navn", @@ -4541,7 +4541,7 @@ "SLA_removed": "SLA fjernet", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "Omnichannel-avdeling (standard)", - "SMS_Default_Omnichannel_Department_Description": "Hvis angitt, vil alle nye innkommende chatter initiert av denne integrasjonen bli rutet til denne avdelingen. \nDenne innstillingen kan overskrives ved å sende avdelingsspørringsparameter i forespørselen. \nf.eks. `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nMerk: Hvis du bruker Avdelingsnavn, bør det være URL-sikkert.", + "SMS_Default_Omnichannel_Department_Description": "Hvis angitt, vil alle nye innkommende chatter initiert av denne integrasjonen bli rutet til denne avdelingen. \nDenne innstillingen kan overskrives ved å sende avdelingsspørringsparameter i forespørselen. \nf.eks. `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nMerk: Hvis du bruker Avdelingsnavn, bør det være URL-sikkert.", "SMS_Description": "Aktiver og konfigurer SMS-gatewayer på arbeidsområdet ditt.", "SMS_Enabled": "SMS aktivert", "SMS_Twilio_InvalidCredentials": "Twilio SMS-autentiseringsinfo er ugyldig, kan ikke sende meldinger", @@ -6426,7 +6426,7 @@ "meteor_status_failed": "Tilkoblingsforsøk mislyktes", "meteor_status_offline": "Du er frakoblet", "meteor_status_reconnect_in": { - "one": "Prøver å koble til igjen om {{count}} sekund", + "one": "Prøver å koble til igjen om ett sekund", "other": "Prøver å koble til igjen om {{count}} sekunder" }, "meteor_status_try_again_later": "Prøv igjen senere eller be arbeidsområdeadministratoren din om hjelp", diff --git a/packages/i18n/src/locales/nl.i18n.json b/packages/i18n/src/locales/nl.i18n.json index de9a9dd86b96a..4635dd5e99456 100644 --- a/packages/i18n/src/locales/nl.i18n.json +++ b/packages/i18n/src/locales/nl.i18n.json @@ -1248,7 +1248,6 @@ "Delete": "Verwijderen", "Delete_File_Warning": "Als u een bestand verwijdert, wordt het voor altijd verwijderd. Dit kan niet ongedaan worden.", "Delete_Role_Warning": "Als u een rol verwijdert, wordt deze voor altijd verwijderd. Dit kan niet ongedaan worden gemaakt.", - "Delete_Room_Warning": "Als u een kamer verwijdert, worden alle berichten verwijderd die in de kamer zijn geplaatst. Dit kan niet ongedaan gemaakt worden.", "Delete_User_Warning": "Als u een gebruiker verwijdert, worden ook alle berichten van die gebruiker verwijderd. Dit kan niet ongedaan gemaakt worden.", "Delete_User_Warning_Delete": "Als u een gebruiker verwijdert, worden ook alle berichten van die gebruiker verwijderd. Dit kan niet ongedaan gemaakt worden.", "Delete_User_Warning_Keep": "De gebruiker wordt verwijderd, maar zijn berichten blijven zichtbaar. Dit kan niet ongedaan gemaakt worden.", @@ -1256,7 +1255,6 @@ "Delete_all_closed_chats": "Verwijder alle gesloten chats", "Delete_message": "Bericht verwijderen", "Delete_my_account": "Mijn account verwijderen", - "Delete_roomType_description": "Als u een kamer verwijdert, worden alle berichten verwijderd die in de kamer zijn geplaatst. Dit kan niet ongedaan gemaakt worden.", "Deleted": "Verwijderd!", "Deleted__roomName__": "#{{roomName}} verwijderd", "Deleting": "Verwijderen", @@ -1379,7 +1377,6 @@ "E2E_enable": "Schakel E2E in", "E2E_key_reset_email": "E2E Key Reset-melding", "E2E_password_request_text": "Om toegang te krijgen tot uw gecodeerde privégroepen en privéberichten, voert u uw coderingswachtwoord in.
U moet dit wachtwoord invoeren om uw berichten te coderen / decoderen op elke client die u gebruikt, aangezien de sleutel niet op de server is opgeslagen.", - "E2E_password_reveal_text": "Je kunt nu gecodeerde privégroepen en directe berichten maken. Je kunt bestaande privégroepen of DM's ook coderen.

Dit is end-to-end codering, zodat de sleutel voor het coderen/decoderen van jouw berichten niet op de server wordt opgeslagen. Om die reden moet je jouw wachtwoord op een veilige plaats bewaren. Je moet het invoeren op andere apparaten waarop je e2e-codering wilt gebruiken. Meer informatie hier !

Je wachtwoord is: {{randomPassword}}

Dit is een automatisch gegenereerd wachtwoord, je kan een nieuw wachtwoord voor jouw coderingssleutel op elk gewenst moment vanuit elke browser waarin je het bestaande wachtwoord hebt ingevoerd, aanvragen.
Dit wachtwoord wordt alleen in deze browser opgeslagen totdat je het wachtwoord opslaat en dit bericht negeert.", "ECDH_Enabled": "Versleuteling van de tweede laag inschakelen voor gegevenstransport", "Edit": "Bewerken", "Edit_Business_Hour": "Bewerk kantooruur", @@ -1442,7 +1439,6 @@ "Encrypted": "Versleuteld", "Encrypted_channel_Description": "End-to-end gecodeerd kanaal. Zoeken werkt niet met gecodeerde kanalen en meldingen geven de inhoud van het bericht mogelijk niet weer.", "Encrypted_message": "Gecodeerd bericht", - "Encrypted_not_available": "Niet beschikbaar voor openbare kanalen", "Encrypted_setting_changed_successfully": "Versleutelde instelling is succesvol gewijzigd", "Encryption_key_saved_successfully": "Uw coderingssleutel is succesvol opgeslagen.", "End": "Einde", @@ -3227,7 +3223,7 @@ "SAML_MetadataCertificate_Template": "Metagegevens certificaatsjabloon", "SAML_Metadata_Certificate_Template_Description": "De volgende variabelen zijn beschikbaar: \n- *\\_\\_certificate\\_\\_*: het privécertificaat voor assertion-encryptie.", "SAML_Metadata_Template": "Metagegevenssjabloon", - "SAML_Metadata_Template_Description": "De volgende variabelen zijn beschikbaar: \n- *\\_\\_sloLocation\\_\\_*: De Rocket.Chat Single Logout URL. \n- *\\_\\_issuer\\_\\_*: De waarde van de *Custom Issuer* instelling. \n- *\\_\\_identifierFormat\\_\\_*: De waarde van de *Identifier Format* instelling. \n- *\\_\\_certificateTag\\_\\_*: Als een privécertificaat geconfigureerd is, bevat dit de {{Metadata Certificate Template}}, anders wordt het genegeerd. \n- *\\_\\_callbackUrl\\_\\_*: De Rocket.Chat callback-URL.", + "SAML_Metadata_Template_Description": "De volgende variabelen zijn beschikbaar: \n- *\\_\\_sloLocation\\_\\_*: De Rocket.Chat Single Logout URL. \n- *\\_\\_issuer\\_\\_*: De waarde van de *Custom Issuer* instelling. \n- *\\_\\_identifierFormat\\_\\_*: De waarde van de *Identifier Format* instelling. \n- *\\_\\_certificateTag\\_\\_*: Als een privécertificaat geconfigureerd is, bevat dit de *Metadata Certificate Template*, anders wordt het genegeerd. \n- *\\_\\_callbackUrl\\_\\_*: De Rocket.Chat callback-URL.", "SAML_NameIdPolicy_Template": "NameID-beleidssjabloon", "SAML_NameIdPolicy_Template_Description": "U kunt hier elke variabele uit de Authorize Request Template gebruiken.", "SAML_Role_Attribute_Name": "Rolkenmerknaam", @@ -3242,7 +3238,7 @@ "SAML_Section_6_Advanced": "Geavanceerd", "SMS": "sms", "SMS_Default_Omnichannel_Department": "Omnichannel-afdeling (standaard)", - "SMS_Default_Omnichannel_Department_Description": "Indien ingesteld, worden alle nieuwe inkomende chats die door deze integratie worden gestart, naar deze afdeling gerouteerd. \nDeze instelling kan worden overschreven door de department query param in het verzoek door te geven. \nBijv. `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nOpmerking: indien je afdelingsnaam gebruikt, moet de URL veilig zijn.", + "SMS_Default_Omnichannel_Department_Description": "Indien ingesteld, worden alle nieuwe inkomende chats die door deze integratie worden gestart, naar deze afdeling gerouteerd. \nDeze instelling kan worden overschreven door de department query param in het verzoek door te geven. \nBijv. `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nOpmerking: indien je afdelingsnaam gebruikt, moet de URL veilig zijn.", "SMS_Enabled": "SMS ingeschakeld", "SMTP": "SMTP", "SMTP_Host": "SMTP-host", diff --git a/packages/i18n/src/locales/nn.i18n.json b/packages/i18n/src/locales/nn.i18n.json index ae292b3b879be..61206f94f39b1 100644 --- a/packages/i18n/src/locales/nn.i18n.json +++ b/packages/i18n/src/locales/nn.i18n.json @@ -4266,7 +4266,7 @@ "SAML_LogoutRequest_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_newId\\_\\_*: Tilfeldig generert id-streng \n- *\\_\\_instant\\_\\_*: Gjeldende tidsstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_nameID\\_\\_*: NameID mottatt fra IdP når brukeren logget på. \n- *\\_\\_sessionIndex\\_\\_*: SessionIndex mottatt fra IdP når brukeren logget på.", "SAML_LogoutResponse_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_newId\\_\\_*: Tilfeldig generert id-streng \n- *\\_\\_inResponseToId\\_\\_*: IDen til utloggingsforespørselen mottatt fra IdP \n- *\\_\\_instant\\_\\_*: Gjeldende tidsstempel \n- *\\_\\_idpSLORedirectURL\\_\\_*: IDP Single LogOut URL det skal omdirigeres til. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_nameID\\_\\_*: NameID mottatt fra IdP-utloggingsforespørselen. \n- *\\_\\_sessionIndex\\_\\_*: SessionIndex mottatt fra IdP utloggingsforespørselen.", "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_certificate\\_\\_*: Det private sertifikatet for påstandskryptering.", - "SAML_Metadata_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chats Single Logout URL. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat sertifikat er konfigurert, vil dette inkludere {{Metadata Certificate Template}}, ellers vil det bli ignorert. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chats tilbakeringings-URL.", + "SAML_Metadata_Template_Description": "Følgende variabler er tilgjengelige: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chats Single Logout URL. \n- **\\_\\_utsteder\\_\\_**: Verdien for *Custom Issuer*-innstillingen. \n- *\\_\\_identifierFormat\\_\\_*: Verdien for *Identifier Format*-innstillingen. \n- *\\_\\_certificateTag\\_\\_*: Hvis et privat sertifikat er konfigurert, vil dette inkludere *Metadata Certificate Template*, ellers vil det bli ignorert. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chats tilbakeringings-URL.", "SAML_Role_Attribute_Sync": "Synkroniser brukerroller", "SAML_Section_1_User_Interface": "Brukergrensesnitt", "SAML_Section_2_Certificate": "Sertifikat", @@ -4278,7 +4278,7 @@ "SLA_Policy": "SLA-retningslinje", "SLA_removed": "SLA fjernet", "SMS": "SMS", - "SMS_Default_Omnichannel_Department_Description": "Hvis angitt, vil alle nye innkommende chatter initiert av denne integrasjonen bli rutet til denne avdelingen. \nDenne innstillingen kan overskrives ved å sende avdelingsspørringsparameter i forespørselen. \nf.eks. `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nMerk: Hvis du bruker Avdelingsnavn, bør det være URL-sikkert.", + "SMS_Default_Omnichannel_Department_Description": "Hvis angitt, vil alle nye innkommende chatter initiert av denne integrasjonen bli rutet til denne avdelingen. \nDenne innstillingen kan overskrives ved å sende avdelingsspørringsparameter i forespørselen. \nf.eks. `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nMerk: Hvis du bruker Avdelingsnavn, bør det være URL-sikkert.", "SMS_Enabled": "SMS aktivert", "SMS_Twilio_InvalidCredentials": "Twilio SMS-autentiseringsinfo er ugyldig, kan ikke sende meldinger", "SMS_Twilio_NotConfigured": "Twilio SMS er ikke konfigurert ennå. Gå til Innstillinger -> SMS for å konfigurere den", diff --git a/packages/i18n/src/locales/pl.i18n.json b/packages/i18n/src/locales/pl.i18n.json index 748f203885956..700ca7f3fb757 100644 --- a/packages/i18n/src/locales/pl.i18n.json +++ b/packages/i18n/src/locales/pl.i18n.json @@ -2967,11 +2967,9 @@ "Office_hours_enabled": "Godziny urzędowania włączone", "Office_hours_updated": "Godziny pracy zostały zaktualizowane", "Offline": "Offline", - "Offline_DM_Email": "Dostałeś nową wiadomość bezpośrednią od {{user}}", "Offline_Email_Subject_Description": "Możesz użyć następujących symboli zastępczych: \n - [Nazwa witryny], `[Site_URL]`, `[User]` i `[Room]` odpowiednio dla nazwy aplikacji, adresu URL, nazwy użytkownika i nazwy pokoju. ", "Offline_Link_Message": "PRZEJDŹ DO KOMUNIKATU", "Offline_Mention_All_Email": "Wymień cały temat e-mail", - "Offline_Mention_Email": "[{{site}}] Zostałeś wspomniany przez {{user}} w #{{room}}", "Offline_Message": "Wiadomość offline", "Offline_Message_Use_DeepLink": "Użyj formatu Deep Link URL", "Offline_form": "Formularz nieaktywny", @@ -3509,7 +3507,7 @@ "SAML_MetadataCertificate_Template": "Wzór certyfikatu metadanych", "SAML_Metadata_Certificate_Template_Description": "Dostępne są następujące zmienne: \n- *\\_\\_certificate\\_\\_*: Prywatny certyfikat zapewniający szyfrowanie.", "SAML_Metadata_Template": "Szablon metadaty", - "SAML_Metadata_Template_Description": "Dostępne są następujące zmienne: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat Single LogOut URL. \n- **\\Wydawca: Wartość ustawienia *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Wartość ustawienia __Identifier Format_. \n- *\\_\\_certificateTag\\_\\_*: Jeśli skonfigurowany jest certyfikat prywatny, będzie on zawierał {{Metadata Certificate Template}}, w przeciwnym razie będzie on ignorowany. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat callback URL.", + "SAML_Metadata_Template_Description": "Dostępne są następujące zmienne: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat Single LogOut URL. \n- **\\Wydawca: Wartość ustawienia *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Wartość ustawienia __Identifier Format_. \n- *\\_\\_certificateTag\\_\\_*: Jeśli skonfigurowany jest certyfikat prywatny, będzie on zawierał *Metadata Certificate Template*, w przeciwnym razie będzie on ignorowany. \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat callback URL.", "SAML_NameIdPolicy_Template": "Szablon polityki NameID", "SAML_NameIdPolicy_Template_Description": "Możesz użyć dowolnej zmiennej z Szablonu Żądania autoryzującego.", "SAML_Role_Attribute_Name": "Nazwa atrybutu roli", @@ -3524,7 +3522,7 @@ "SAML_Section_6_Advanced": "Zaawansowane", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "Departament Omnichannel (domyślny)", - "SMS_Default_Omnichannel_Department_Description": "Jeśli ta opcja jest ustawiona, wszystkie nowe przychodzące czaty zainicjowane przez tę integrację będą kierowane do tego działu. \nTo ustawienie można zastąpić, przesyłając parametr zapytania działu w żądaniu, \nnp. `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nUwaga: jeśli używasz nazwy działu, to powinien to być bezpieczny adres URL.", + "SMS_Default_Omnichannel_Department_Description": "Jeśli ta opcja jest ustawiona, wszystkie nowe przychodzące czaty zainicjowane przez tę integrację będą kierowane do tego działu. \nTo ustawienie można zastąpić, przesyłając parametr zapytania działu w żądaniu, \nnp. `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nUwaga: jeśli używasz nazwy działu, to powinien to być bezpieczny adres URL.", "SMS_Description": "Włącz i skonfiguruj bramki SMS w swoim obszarze roboczym.", "SMS_Enabled": "SMS Włączone", "SMTP": "SMTP", diff --git a/packages/i18n/src/locales/pt-BR.i18n.json b/packages/i18n/src/locales/pt-BR.i18n.json index 70444ecfacd4a..60ef27dff9452 100644 --- a/packages/i18n/src/locales/pt-BR.i18n.json +++ b/packages/i18n/src/locales/pt-BR.i18n.json @@ -3713,7 +3713,6 @@ "Offline_Email_Subject_Description": "Você pode usar os seguintes placeholders: \n - `[Site_Name]`, `[Site_URL]`, [Usuário] e [Sala] para o nome do aplicativo, URL, nome de usuário e sala, respectivamente. ", "Offline_Link_Message": "VÁ PARA A MENSAGEM", "Offline_Mention_All_Email": "Mencionar todo o assunto do e-mail", - "Offline_Mention_Email": "Você foi mencionado por {{user}} em #{{room}}", "Offline_Message": "Mensagem quando offline", "Offline_Message_Use_DeepLink": "Usar URL no formato Deep Link", "Offline_form": "Formulário offline", @@ -4446,7 +4445,7 @@ "SAML_MetadataCertificate_Template": "Modelo de certificados de metadados", "SAML_Metadata_Certificate_Template_Description": "As seguintes variáveis estão disponíveis: \n- *\\_\\_certificate\\_\\_*: O certificado privado para a criptografia de afirmação", "SAML_Metadata_Template": "Modelo de metadados", - "SAML_Metadata_Template_Description": "As seguintes variáveis estão disponíveis: \n- *\\_\\_sloLocation\\_\\_*: A URL do Single LogOut do Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: O valor da configuração *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: O valor da configuração *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Se um certificado privado estiver configurado, isso incluirá o {{Metadata Certificate Template}}, caso contrário, será ignorado. \n- *\\_\\_callbackUrl\\_\\_*: A URL de callback do Rocket.Chat.", + "SAML_Metadata_Template_Description": "As seguintes variáveis estão disponíveis: \n- *\\_\\_sloLocation\\_\\_*: A URL do Single LogOut do Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: O valor da configuração *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: O valor da configuração *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Se um certificado privado estiver configurado, isso incluirá o *Metadata Certificate Template*, caso contrário, será ignorado. \n- *\\_\\_callbackUrl\\_\\_*: A URL de callback do Rocket.Chat.", "SAML_NameIdPolicy_Template": "Modelo da política NameID", "SAML_NameIdPolicy_Template_Description": "Você pode usar qualquer variável do modelo Authorize Request.", "SAML_Role_Attribute_Name": "Nome do atributo de função", @@ -4464,7 +4463,7 @@ "SLA_removed": "SLA removida", "SMS": "SMS", "SMS_Default_Omnichannel_Department": "Departamento omnichannel (padrão)", - "SMS_Default_Omnichannel_Department_Description": "Se definido, todas as novas conversas iniciadas por essa integração serão encaminhadas para este departamento. \nEssa configuração pode ser substituída passando o parâm de consulta do departamento na solicitação. \nPor exemplo, `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nObservação: Se estiver usando o Nome do departamento, então deverá ser seguro para URL.", + "SMS_Default_Omnichannel_Department_Description": "Se definido, todas as novas conversas iniciadas por essa integração serão encaminhadas para este departamento. \nEssa configuração pode ser substituída passando o parâm de consulta do departamento na solicitação. \nPor exemplo, `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nObservação: Se estiver usando o Nome do departamento, então deverá ser seguro para URL.", "SMS_Description": "Habilite e configure gateways de SMS em seu workspace.", "SMS_Enabled": "SMS ativado", "SMS_Twilio_InvalidCredentials": "As credenciais do Twilio SMS são inválidas, não é possível enviar mensagens", @@ -6342,7 +6341,7 @@ "meteor_status_failed": "A conexão com o servidor falhou", "meteor_status_offline": "Modo offline.", "meteor_status_reconnect_in": { - "one": "tentando novamente em {{count}} segundo...", + "one": "tentando novamente em um segundo...", "many": "tentando novamente em {{count}} segundos...", "other": "tentando novamente em {{count}} segundos..." }, diff --git a/packages/i18n/src/locales/pt.i18n.json b/packages/i18n/src/locales/pt.i18n.json index 64d891e47eb7c..15fd0fb69f3a4 100644 --- a/packages/i18n/src/locales/pt.i18n.json +++ b/packages/i18n/src/locales/pt.i18n.json @@ -1859,11 +1859,9 @@ "Office_hours_enabled": "Horas de escritório ativadas", "Office_hours_updated": "Horário de funcionamento atualizado", "Offline": "Offline", - "Offline_DM_Email": "Recebeu uma mensagem direta de {{user}}", "Offline_Email_Subject_Description": "Pode usar os seguintes espaços reservados: \n - `[Site_Name]`, `[Site_URL]`, `[User]` e `[Room]` para o Nome da aplicação, URL, Nome de utilizador e Nome do Quarto, respectivamente. ", "Offline_Link_Message": "VÁ PARA A MENSAGEM", "Offline_Mention_All_Email": "Mencionar todo o assunto do e-mail", - "Offline_Mention_Email": "Foi mencionado por {{user}} em #{{room}}", "Offline_form": "Formulário offline", "Offline_form_unavailable_message": "Mensage quando formulário offline indisponível", "Offline_message": "Mensagem quando offline", diff --git a/packages/i18n/src/locales/ro.i18n.json b/packages/i18n/src/locales/ro.i18n.json index 6a1e06d568acf..483d631f5bd73 100644 --- a/packages/i18n/src/locales/ro.i18n.json +++ b/packages/i18n/src/locales/ro.i18n.json @@ -750,14 +750,12 @@ "Decline": "Declin", "Default": "Implicit", "Delete": "Șterge", - "Delete_Room_Warning": "Ștergerea unei camere va șterge toate mesajele postate în cameră. Acest lucru nu poate fi anulat.", "Delete_User_Warning": "Ștergerea unui utilizator va șterge și toate mesajele acelui utilizator. Acest lucru nu poate fi anulat.", "Delete_User_Warning_Delete": "Ștergerea unui utilizator va șterge și toate mesajele acelui utilizator. Acest lucru nu poate fi anulat.", "Delete_User_Warning_Keep": "Utilizatorul va fi șters, dar mesajele vor rămâne vizibile. Acest lucru nu poate fi anulat.", "Delete_User_Warning_Unlink": "Ștergerea unui utilizator va elimina numele de utilizator din toate mesajele. Acest lucru nu poate fi anulat.", "Delete_message": "şterge mesaj", "Delete_my_account": "Șterge contul", - "Delete_roomType_description": "Ștergerea unei camere va șterge toate mesajele postate în cameră. Acest lucru nu poate fi anulat.", "Deleted": "Șters!", "Department": "Departament", "Department_not_found": "Departamentul nu a fost găsit", @@ -1010,10 +1008,7 @@ "Hex_Color_Preview": "Hex Color Preview", "Hidden": "Ascuns", "Hide": "Ascunde camera", - "Hide_Group_Warning": "Sunetți sigur că vreți să ascundeți grupul?", "Hide_Livechat_Warning": "Sigur doriți să ascundeți livechat-ul cu \"{{roomName}}\"?", - "Hide_Private_Warning": "Sunteți sigur că vreți să ascundeți discuția?", - "Hide_Room_Warning": "Sunteți sigur că vreți să ascundeți camera?", "Hide_Unread_Room_Status": "Ascundeți starea camerei necitite", "Hide_counter": "Ascundeți contorul", "Hide_flextab": "Ascundeți bara laterală din dreapta cu clic", @@ -1312,10 +1307,7 @@ "Lead_capture_email_regex": "Plătește prin e-mail regex captură", "Lead_capture_phone_regex": "Plătește regex telefoanele de captare", "Leave": "Părăsește camera", - "Leave_Group_Warning": "Sunteți sigur că vreți să părăsiți grupul?", "Leave_Livechat_Warning": "Sigur doriți să părăsiți livechat-ul cu \"{{roomName}}\"?", - "Leave_Private_Warning": "Sunteți sigur că vreți să părăsiți discuția?", - "Leave_Room_Warning": "Sunteți sigur că vreți să părăsiți camera?", "Leave_room": "Părăsește camera", "Leave_the_current_channel": "Lăsați canalul curent", "List_of_Channels": "Listă de canale", @@ -1598,11 +1590,9 @@ "Office_hours_enabled": "Orele de birou sunt activate", "Office_hours_updated": "Ore de lucru actualizate", "Offline": "Deconectat", - "Offline_DM_Email": "Ai fost messaged directe de {{user}}", "Offline_Email_Subject_Description": "Puteți utiliza următorii substituenți: \n - `[Site_Name]`, `[Site_URL]`, [Utilizator] și [Cameră]", "Offline_Link_Message": "Du-te la mesaj", "Offline_Mention_All_Email": "Menționați toate subiectele de e-mail", - "Offline_Mention_Email": "Ați fost menționat de către {{user}} în #{{room}}", "Offline_form": "formularul offline", "Offline_form_unavailable_message": "Formularul Offline Mesaj indisponibil", "Offline_message": "mesaj offline", diff --git a/packages/i18n/src/locales/ru.i18n.json b/packages/i18n/src/locales/ru.i18n.json index 2b870c4291643..43c88eee72868 100644 --- a/packages/i18n/src/locales/ru.i18n.json +++ b/packages/i18n/src/locales/ru.i18n.json @@ -1334,7 +1334,6 @@ "Delete": "Удалить", "Delete_File_Warning": "Удаление файла удалит его навсегда. Это нельзя отменить.", "Delete_Role_Warning": "При удалении роли она будет удалена навсегда. Это невозможно отменить.", - "Delete_Room_Warning": "Удаление комнаты удалит все сообщения в ней. Это действие невозможно отменить.", "Delete_User_Warning": "Удаление пользователя удалит все сообщения этого пользователя. Это действие невозможно отменить.", "Delete_User_Warning_Delete": "Удаление пользователя удалит все сообщения этого пользователя. Это действие невозможно отменить.", "Delete_User_Warning_Keep": "Пользователь будет удален, но его сообщения останутся. Это действие не может быть отменено.", @@ -1342,7 +1341,6 @@ "Delete_all_closed_chats": "Удалить все закрытые чаты", "Delete_message": "Удалить сообщение", "Delete_my_account": "Удалить мою учетную запись", - "Delete_roomType_description": "Удаление комнаты удалит все сообщения в ней. Это действие невозможно отменить.", "Deleted": "Удалено!", "Deleted__roomName__": "удалил(-а) #{{roomName}}", "Deleting": "Удаление", @@ -1485,7 +1483,6 @@ "E2E_enable": "Включить E2E", "E2E_key_reset_email": "Уведомление о сбросе ключа E2E", "E2E_password_request_text": "Чтобы получить доступ к вашим зашифрованным частным группам и прямым сообщениям, введите пароль шифрования.
Вам необходимо ввести этот пароль для кодирования / декодирования ваших сообщений на каждом используемом вами клиенте, поскольку ключ не хранится на сервере.", - "E2E_password_reveal_text": "Теперь вы можете создавать зашифрованные частные группы и прямые сообщения. Вы также можете изменить существующие частные группы или DM на зашифрованные.

Это шифрование от конца до конца, поэтому ключ для кодирования / декодирования ваших сообщений не будет сохранен на сервере. По этой причине вам нужно сохранить этот пароль где-то в безопасности. Вам потребуется ввести его на другие устройства, на которых вы хотите использовать шифрование e2e. Подробнее здесь

Ваш пароль: {{randomPassword}}

Это автоматический сгенерированный пароль, Вы можете установить новый пароль для шифрования в любое время из любого браузера вы ввели существующий пароль.
Этот пароль хранится только в этом браузере, пока вы не сохраните пароль и не отпустите это сообщение.", "ECDH_Enabled": "Включить шифрование второго уровня для передачи данных", "Edit": "Редактировать", "Edit_Business_Hour": "Редактировать рабочие часы", @@ -1549,7 +1546,6 @@ "Encrypted": "Зашифрованный", "Encrypted_channel_Description": "Полностью зашифрованный канал. Поиск не будет работать с зашифрованными каналами, и уведомления могут не показать содержание сообщений.", "Encrypted_message": "Зашифрованное сообщение", - "Encrypted_not_available": "Недоступно для публичных каналов", "Encrypted_setting_changed_successfully": "Зашифрованный параметр успешно изменен", "Encryption_key_saved_successfully": "Ваш ключ шифрования был успешно сохранен.", "End": "Конец", @@ -3369,7 +3365,7 @@ "SAML_MetadataCertificate_Template": "Шаблон сертификата метаданных", "SAML_Metadata_Certificate_Template_Description": "Доступны следующие переменные: \n- *\\_\\_certificate\\_\\_*: Частный сертификат для шифрования утверждения.", "SAML_Metadata_Template": "Шаблон метаданных", - "SAML_Metadata_Template_Description": "Доступны следующие переменные: \n- *\\_\\_sloLocation\\_\\_*:URL одиночного входа в систему Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Значение параметра *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Значение параметра *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Если настроен личный сертификат, он будет включать {{Metadata Certificate Template}}, в противном случае он будет проигнорирован. \n- *\\_\\_callbackUrl\\_\\_*: URL обратного вызова Rocket.Chat.", + "SAML_Metadata_Template_Description": "Доступны следующие переменные: \n- *\\_\\_sloLocation\\_\\_*:URL одиночного входа в систему Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Значение параметра *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Значение параметра *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Если настроен личный сертификат, он будет включать *Metadata Certificate Template*, в противном случае он будет проигнорирован. \n- *\\_\\_callbackUrl\\_\\_*: URL обратного вызова Rocket.Chat.", "SAML_NameIdPolicy_Template": "Шаблон политики NameID", "SAML_NameIdPolicy_Template_Description": "Тут Вы можете использовать любую переменную из шаблона запроса авторизации.", "SAML_Role_Attribute_Name": "Имя атрибута роли", @@ -4051,7 +4047,6 @@ "User__username__removed_from__room_name__moderators": "Пользователь {{username}} удален из модераторов {{room_name}}", "User__username__removed_from__room_name__owners": "Пользователь {{username}} удален из владельцев {{room_name}}", "User__username__unmuted_in_room__roomName__": "Пользователь {{username}} перестал быть заглушенным в чате {{roomName}}", - "User_added": "Пользователь {{user_added}} добавлен.", "User_added_by": "Пользователь {{user_added}} добавлен {{user_by}}.", "User_added_successfully": "Пользователь успешно добавлен", "User_and_group_mentions_only": "Только упоминания пользователей и групп", @@ -4075,7 +4070,6 @@ "User_joined_channel": "Присоединился к каналу", "User_joined_conversation": "Присоединился к разговору", "User_joined_team": "Присоединился к Команде.", - "User_left": "{{user_left}} покинул канал.", "User_left_team": "Покинул Команду.", "User_logged_out": "Пользователь не в сети", "User_management": "Управление пользователями", diff --git a/packages/i18n/src/locales/sk-SK.i18n.json b/packages/i18n/src/locales/sk-SK.i18n.json index 4666535fb7dae..db2c78b014adc 100644 --- a/packages/i18n/src/locales/sk-SK.i18n.json +++ b/packages/i18n/src/locales/sk-SK.i18n.json @@ -755,14 +755,12 @@ "Decline": "Odmietnuť", "Default": "Predvolené", "Delete": "Vymazať", - "Delete_Room_Warning": "Vymazaním miestnosti sa vymažú všetky v nej odoslané správy. To nie je možné vrátiť späť.", "Delete_User_Warning": "Vymazaním používateľa sa vymažú všetky jeho správy. To nie je možné vrátiť späť.", "Delete_User_Warning_Delete": "Vymazaním používateľa sa vymažú všetky jeho správy. To nie je možné vrátiť späť.", "Delete_User_Warning_Keep": "Používateľ bude vymazaný, ale jeho správy zostanú viditeľné. To nie je možné vrátiť späť.", "Delete_User_Warning_Unlink": "Vymazaním používateľa sa odstráni jeho meno zo všetkých jeho správ. To nie je možné vrátiť späť.", "Delete_message": "Vymazať správu", "Delete_my_account": "Vymazať môj účet", - "Delete_roomType_description": "Vymazaním miestnosti sa vymažú všetky v nej odoslané správy. To nie je možné vrátiť späť.", "Deleted": "Vymazaný!", "Department": "Oddelenie", "Department_not_found": "Oddelenie sa nenašlo", diff --git a/packages/i18n/src/locales/sl-SI.i18n.json b/packages/i18n/src/locales/sl-SI.i18n.json index 19404cb56ee61..408d6e73f2871 100644 --- a/packages/i18n/src/locales/sl-SI.i18n.json +++ b/packages/i18n/src/locales/sl-SI.i18n.json @@ -747,14 +747,12 @@ "Decline": "Zavrni", "Default": "Privzeto", "Delete": "Izbriši", - "Delete_Room_Warning": "Z izbrisom sobe boste izbrisali vsa sporočila znotraj sobe. Dejanja ne morete razveljaviti.", "Delete_User_Warning": "Z izbrisom uporabnika boste izbrisali vsa sporočila tega uporabnika. Dejanja ne morete razveljaviti.", "Delete_User_Warning_Delete": "Z izbrisom uporabnika boste izbrisali vsa sporočila tega uporabnika. Dejanja ne morete razveljaviti.", "Delete_User_Warning_Keep": "Uporabnik bo izbrisan, vendar bodo njihova sporočila ostala vidna. To ni mogoče razveljaviti.", "Delete_User_Warning_Unlink": "Brisanje uporabnika bo odstranilo uporabniško ime iz vseh njihovih sporočil. To ni mogoče razveljaviti.", "Delete_message": "Izbriši sporočila", "Delete_my_account": "Izbriši moj račun", - "Delete_roomType_description": "Z izbrisom sobe boste izbrisali vsa sporočila znotraj sobe. Dejanja ne morete razveljaviti.", "Deleted": "Izbrisano!", "Department": "Oddelek", "Department_not_found": "Oddelka ni mogoče najti", diff --git a/packages/i18n/src/locales/sq.i18n.json b/packages/i18n/src/locales/sq.i18n.json index 195dc0a9ecbc8..b81199c2677d6 100644 --- a/packages/i18n/src/locales/sq.i18n.json +++ b/packages/i18n/src/locales/sq.i18n.json @@ -1597,11 +1597,9 @@ "Office_hours_enabled": "Orari i Zyrave të Aktivizuara", "Office_hours_updated": "Përditësimi i orëve të punës", "Offline": "në linjë", - "Offline_DM_Email": "Ju keni qenë mesazhi direkt nga {{user}}", "Offline_Email_Subject_Description": "Ju mund të përdorni vendet e mëposhtme të rezervuara: \n - `[Site_Name]`, `[Site_URL]`, [Përdoruesi] dhe [Salla] për emrin e aplikacionit, URL, emërimin dhe Roomname. ", "Offline_Link_Message": "SHKO TE MESAZH", "Offline_Mention_All_Email": "Përmend të Gjitha Subjektin e Email", - "Offline_Mention_Email": "Ju keni përmendur nga {{user}} në #{{room}}", "Offline_form": "Forma Offline", "Offline_form_unavailable_message": "Forma Offline mesazh padisponueshëm", "Offline_message": "mesazhi në linjë", diff --git a/packages/i18n/src/locales/sr.i18n.json b/packages/i18n/src/locales/sr.i18n.json index d3163909e7a1f..7a9301b4b4f7d 100644 --- a/packages/i18n/src/locales/sr.i18n.json +++ b/packages/i18n/src/locales/sr.i18n.json @@ -652,14 +652,12 @@ "Decline": "Одбиј", "Default": "Предефинисано", "Delete": "Обриши", - "Delete_Room_Warning": "Брисање собе ће избрисати све поруке послате у соби. Ово се не може поништити.", "Delete_User_Warning": "Брисање корисника ће такође обрисати све поруке тог корисника. Ово се не може поништити.", "Delete_User_Warning_Delete": "Брисање корисника ће такође обрисати све поруке од тог корисника. Ово се не може поништити.", "Delete_User_Warning_Keep": "Корисник ће бити избрисан, али ће њихове поруке остати видљиве. Ово се не може поништити.", "Delete_User_Warning_Unlink": "Брисање корисника ће уклонити корисничко име из свих њихових порука. Ово се не може поништити.", "Delete_message": "Обриши поруку", "Delete_my_account": "Обриши мој налог", - "Delete_roomType_description": "Брисање собе ће избрисати све поруке послате у соби. Ово се не може поништити.", "Deleted": "Обрисан!", "Department": "Сектор", "Department_not_found": "Сектор није пронађен", @@ -1432,11 +1430,9 @@ "Office_hours_enabled": "Радно време је омогућено", "Office_hours_updated": "Радно време је ажурирано", "Offline": "оффлине", - "Offline_DM_Email": "Сте били директно поручио је {{user}}", "Offline_Email_Subject_Description": "Можете користити следеће држаче: \n - [Сите_Наме], [Сите_УРЛ], [Корисник] и [Соба] за име апликације, УРЛ, корисничко име и име собе, респективно. ", "Offline_Link_Message": "ПРЕТЕЖИТЕ НА ПОРУЧЕЊУ", "Offline_Mention_All_Email": "Наведите све теме е-поште", - "Offline_Mention_Email": "Сте је поменуо {{user}} у #{{room}}", "Offline_form": "оффлине образац", "Offline_form_unavailable_message": "Оффлине облик недоступан порука", "Offline_message": "оффлине порука", diff --git a/packages/i18n/src/locales/sv.i18n.json b/packages/i18n/src/locales/sv.i18n.json index 1f493c9edf4c9..1a45cc96dfd29 100644 --- a/packages/i18n/src/locales/sv.i18n.json +++ b/packages/i18n/src/locales/sv.i18n.json @@ -1594,7 +1594,6 @@ "Delete_File_Warning": "När du tar bort en fil tas den bort permanent. Du kan inte ångra åtgärden.", "Delete_Role_Warning": "När du tar bort en roll tas den bort permanent. Du kan inte ångra åtgärden.", "Delete_Role_Warning_Not_Enterprise": "Detta kan inte ångras. Du kommer inte att kunna skapa en ny anpassad roll, eftersom den funktionen inte längre är tillgänglig för din nuvarande plan.", - "Delete_Room_Warning": "Om man raderar ett rum, raderas alla postade meddelanden i det rummet. Denna åtgärd kan inte ångras.", "Delete_User_Warning": "Radering av en användare kommer att radera alla meddelanden från den användaren. Detta kan inte ångras.", "Delete_User_Warning_Delete": "Radering av en användare kommer att radera alla meddelanden från den användaren. Detta kan inte ångras.", "Delete_User_Warning_Keep": "Användaren raderas, men deras meddelanden kommer att förbli synliga. Detta kan inte ångras.", @@ -4146,7 +4145,6 @@ "Read_only_changed_successfully": "Endast läsning ändrades framgångsrikt", "Read_only_channel": "Endast läsning Channel", "Read_only_field_hint_disabled": "Vem som helst kan skicka nya meddelanden", - "Read_only_field_hint_enabled": "Endast ägare av kanalen kan skicka nya meddelanden", "Read_only_group": "Endast läsning grupp", "Readability": "Läsbarhet", "RealName_Change_Disabled": "Din Rocket.Chat-administratör har inaktiverat namnändring", @@ -4485,7 +4483,7 @@ "SAML_MetadataCertificate_Template": "Mall för metadatacertifikat", "SAML_Metadata_Certificate_Template_Description": "Följande variabler är tillgängliga: \n- *\\_\\_certificate\\_\\_*: Det privata certifikatet för verifieringskryptering.", "SAML_Metadata_Template": "Metadatamall", - "SAML_Metadata_Template_Description": "Följande variabler är tillgängliga: \n- *\\_\\_sloLocation\\_\\_*: URL för enkel utloggning för Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Värdet för inställningen *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Värdet för inställningen *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Om ett privat certifikat har konfigurerats ska det innehålla {{Metadata Certificate Template}}, annars ignoreras det. \n- *\\_\\_callbackUrl\\_\\_*: Återanrops-URL för Rocket.Chat.", + "SAML_Metadata_Template_Description": "Följande variabler är tillgängliga: \n- *\\_\\_sloLocation\\_\\_*: URL för enkel utloggning för Rocket.Chat. \n- *\\_\\_issuer\\_\\_*: Värdet för inställningen *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: Värdet för inställningen *Identifier Format*. \n- *\\_\\_certificateTag\\_\\_*: Om ett privat certifikat har konfigurerats ska det innehålla *Metadata Certificate Template*, annars ignoreras det. \n- *\\_\\_callbackUrl\\_\\_*: Återanrops-URL för Rocket.Chat.", "SAML_NameIdPolicy_Template": "Policymall för NameID", "SAML_NameIdPolicy_Template_Description": "Du kan använda valfria variabler från mallen för godkännande av förfrågan", "SAML_Role_Attribute_Name": "Attribut för rollnamn", @@ -4503,7 +4501,7 @@ "SLA_removed": "SLA borttaget", "SMS": "Sms", "SMS_Default_Omnichannel_Department": "Omnichannel-avdelning (standard)", - "SMS_Default_Omnichannel_Department_Description": "När alternativet är angett dirigeras alla nya inkommande chattar som initierats av integreringen till den här avdelningen. \nInställningen kan skrivas över av frågeparametern för avdelningsöverföring i begäran. \nExempel `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}`. \nObs! Om du använder ett avdelningsnamn ska det vara URL-säkert.", + "SMS_Default_Omnichannel_Department_Description": "När alternativet är angett dirigeras alla nya inkommande chattar som initierats av integreringen till den här avdelningen. \nInställningen kan skrivas över av frågeparametern för avdelningsöverföring i begäran. \nExempel `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}`. \nObs! Om du använder ett avdelningsnamn ska det vara URL-säkert.", "SMS_Description": "Aktivera och konfigurera sms-gateways i arbetsytan.", "SMS_Enabled": "SMS aktiverat", "SMS_Twilio_InvalidCredentials": "Twilio SMS-autentiseringsuppgifter är ogiltiga, det går inte att skicka meddelanden", @@ -6381,7 +6379,7 @@ "meteor_status_failed": "Det gick inte att ansluta till servern", "meteor_status_offline": "Offlineläge.", "meteor_status_reconnect_in": { - "one": "Försöker återansluta om {{count}} sekunder", + "one": "Försöker återansluta om en sekund...", "other": "försöker igen om {{count}} sekunder..." }, "meteor_status_try_again_later": "Försök igen senare eller be din administratör för arbetsytan om hjälp", diff --git a/packages/i18n/src/locales/ta-IN.i18n.json b/packages/i18n/src/locales/ta-IN.i18n.json index 85564a8bcf360..0246de8218d35 100644 --- a/packages/i18n/src/locales/ta-IN.i18n.json +++ b/packages/i18n/src/locales/ta-IN.i18n.json @@ -750,14 +750,12 @@ "Decline": "சரிவு", "Default": "இயல்புநிலை", "Delete": "அழி", - "Delete_Room_Warning": "ஒரு அறையில் நீக்குதல் அனைத்து செய்திகள் அறையில் உள்ள posted நீக்கும். இதை முடிக்காமல் விட கூடாது.", "Delete_User_Warning": "ஒரு பயனர் அழிப்பதை அதே பயனர் இருந்து அனைத்து செய்திகள் நீக்கும். இதை முடிக்காமல் விட கூடாது.", "Delete_User_Warning_Delete": "ஒரு பயனர் அழிப்பதை அதே பயனர் இருந்து அனைத்து செய்திகள் நீக்கும். இதை முடிக்காமல் விட கூடாது.", "Delete_User_Warning_Keep": "பயனர் நீக்கப்படுவார்கள், ஆனால் அவர்களின் செய்திகள் தெரியும். இதை முடிக்காமல் விட கூடாது.", "Delete_User_Warning_Unlink": "பயனரை நீக்குவது அவர்களின் அனைத்து செய்திகளிடமிருந்தும் பயனர்பெயரை அகற்றும். இதை முடிக்காமல் விட கூடாது.", "Delete_message": "செய்தியை நீக்கு", "Delete_my_account": "எனது கணக்கை நீக்கு", - "Delete_roomType_description": "ஒரு அறையில் நீக்குதல் அனைத்து செய்திகள் அறையில் உள்ள posted நீக்கும். இதை முடிக்காமல் விட கூடாது.", "Deleted": "நீக்கப்பட்டது!", "Department": "துறை", "Department_not_found": "துறை இல்லை", @@ -1599,11 +1597,9 @@ "Office_hours_enabled": "அலுவலகம் மணி இயக்கப்பட்டது", "Office_hours_updated": "அலுவலக நேரம் புதுப்பிக்கப்பட்டது", "Offline": "ஆஃப்லைன்", - "Offline_DM_Email": "நீங்கள் நேரடி {{user}} மூலம் குறுஞ்செய்தி வருகின்றன", "Offline_Email_Subject_Description": "நீங்கள் பின்வரும் பெட்டிகளைப் பயன்படுத்தலாம்: \n - விண்ணப்பப் பெயர், URL, பயனர்பெயர் & அறை பெயரை முறையே [Site_Name], `[Site_URL]`, [பயனர்] & அறை]. ", "Offline_Link_Message": "மெஸேஜிற்கு செல்க", "Offline_Mention_All_Email": "அனைத்து மின்னஞ்சல் விஷயத்தையும் குறிப்பிடுக", - "Offline_Mention_Email": "நீங்கள் #{{room}} உள்ள {{user}} குறிப்பிட்டுள்ள", "Offline_form": "ஆஃப்லைன் வடிவம்", "Offline_form_unavailable_message": "ஆஃப்லைன் வடிவம் கிடைக்கவில்லை செய்தி", "Offline_message": "ஆஃப்லைன் செய்தி", @@ -2215,7 +2211,6 @@ "UserDataDownload_CompletedRequestExisted_Text": "உங்கள் தரவு கோப்பு ஏற்கனவே உருவாக்கப்பட்டுள்ளது. பதிவிறக்க இணைப்புக்கு உங்கள் மின்னஞ்சல் கணக்கைச் சரிபார்க்கவும்.", "UserDataDownload_EmailBody": "இப்போது உங்கள் தரவு கோப்பு தயாராக உள்ளது. இங்குஅதைக் கிளிக் செய்க.", "UserDataDownload_EmailSubject": "உங்கள் தரவு கோப்பு பதிவிறக்கம் செய்ய தயாராக உள்ளது", - "UserDataDownload_RequestExisted_Text": "உங்கள் தரவு கோப்பு ஏற்கனவே உருவாக்கப்பட்டுள்ளது. தயார் செய்யும் போது அதைப் பதிவிறக்குவதற்கான இணைப்பு உங்கள் மின்னஞ்சல் முகவரிக்கு அனுப்பப்படும்.", "UserDataDownload_Requested": "கோப்பை பதிவிறக்க கோரிக்கை", "UserData_EnableDownload": "பயனர் தரவு பதிவிறக்கத்தை இயக்கு", "UserData_FileSystemPath": "கணினி பாதை (ஏற்றுமதி கோப்புகள்)", @@ -2232,7 +2227,6 @@ "User__username__removed_from__room_name__leaders": "{{room_name}} தலைவர்களிடமிருந்து பயனர் {{username}} நீக்கப்பட்டது", "User__username__removed_from__room_name__moderators": "பயனர் {{username}} {{room_name}} நடுவர்களின் நீக்கப்பட்டது", "User__username__removed_from__room_name__owners": "பயனர் {{username}} {{room_name}} உரிமையாளர்கள் இருந்து நீக்கப்பட்டது", - "User_added": "பயனர் {{user_added}}சேர்க்கப்பட்டார்.", "User_added_by": "பயனர் {{user_added}} {{user_by}}மூலம் சேர்க்கப்பட்டார்.", "User_added_successfully": "பயனர் வெற்றிகரமாக சேர்க்கப்பட்டது", "User_and_group_mentions_only": "பயனர் மற்றும் குழு மட்டும் குறிப்பிடுகிறார்", @@ -2250,7 +2244,6 @@ "User_is_now_an_admin": "பயனர் இப்போது ஒரு நிர்வாகம் உள்ளது", "User_is_unblocked": "பயனர் தடைநீக்கப்பட்டது", "User_joined_channel": "சேனல் சேர்ந்துள்ளார்.", - "User_left": "பயனர் {{user_left}}சென்றுவிட்டார்.", "User_logged_out": "பயனர் வெளியேற்றப்படுவீர்கள்", "User_management": "பயனர் மேலாண்மை", "User_mentions_only": "பயனர் மட்டுமே குறிப்பிடுகிறார்", @@ -2484,7 +2477,7 @@ "error-edit-permissions-not-allowed": "திருத்துதல் அனுமதிகள் அனுமதிக்கப்படவில்லை", "error-email-domain-blacklisted": "மின்னஞ்சல் டொமைன் பட்டியலில்", "error-email-send-failed": "மின்னஞ்சலை அனுப்ப முயற்சிக்கும் பிழை: {{message}}", - "error-field-unavailable": "%sஏற்கனவே பயன்பாட்டில் உள்ளது :(", + "error-field-unavailable": "{{field}}ஏற்கனவே பயன்பாட்டில் உள்ளது :(", "error-file-too-large": "கோப்பு மிகப் பெரியதாக உள்ளது", "error-importer-not-defined": "இறக்குமதியாளர் அது இறக்குமதி வர்க்கம் காணவில்லை, சரியாக வரையறுக்கப்படவில்லை.", "error-input-is-not-a-valid-field": "{{input}} சரியான {{field}} அல்ல", diff --git a/packages/i18n/src/locales/th-TH.i18n.json b/packages/i18n/src/locales/th-TH.i18n.json index 61992d65c3532..ecb57b55a64f5 100644 --- a/packages/i18n/src/locales/th-TH.i18n.json +++ b/packages/i18n/src/locales/th-TH.i18n.json @@ -749,14 +749,12 @@ "Decline": "ปฏิเสธ", "Default": "ค่าเริ่มต้น", "Delete": "ลบ", - "Delete_Room_Warning": "การลบห้องจะลบข้อความทั้งหมดที่โพสต์ภายในห้อง ไม่สามารถเลิกทำได้", "Delete_User_Warning": "การลบผู้ใช้จะลบข้อความทั้งหมดจากผู้ใช้รายนั้นด้วย ไม่สามารถเลิกทำได้", "Delete_User_Warning_Delete": "การลบผู้ใช้จะลบข้อความทั้งหมดจากผู้ใช้รายนั้นด้วย ไม่สามารถเลิกทำได้", "Delete_User_Warning_Keep": "ผู้ใช้จะถูกลบ แต่ข้อความจะยังคงปรากฏอยู่ ไม่สามารถเลิกทำได้", "Delete_User_Warning_Unlink": "การลบผู้ใช้จะลบชื่อผู้ใช้ออกจากข้อความทั้งหมด ไม่สามารถเลิกทำได้", "Delete_message": "ลบข้อความ", "Delete_my_account": "ลบบัญชีของฉัน", - "Delete_roomType_description": "การลบห้องจะลบข้อความทั้งหมดที่โพสต์ภายในห้อง ไม่สามารถเลิกทำได้", "Deleted": "ที่ถูกลบ!", "Department": "แผนก", "Department_not_found": "ไม่พบแผนก", diff --git a/packages/i18n/src/locales/tr.i18n.json b/packages/i18n/src/locales/tr.i18n.json index e66acf79b8239..374325f37239b 100644 --- a/packages/i18n/src/locales/tr.i18n.json +++ b/packages/i18n/src/locales/tr.i18n.json @@ -906,7 +906,6 @@ "Decline": "Reddet", "Default": "Varsayılan", "Delete": "Sil", - "Delete_Room_Warning": "Bir odayı silmek, oda içinde gönderilen tüm mesajları silecektir. Bu işlem geri alınamaz.", "Delete_User_Warning": "Bu kullanıcıyı silerseniz tüm mesajları da beraberinde silinecektir! Bu işlemi geri alamazsınız.", "Delete_User_Warning_Delete": "Bu kullanıcıyı silerseniz tüm mesajları da beraberinde silinecektir! Bu işlemi geri alamazsınız.", "Delete_User_Warning_Keep": "Kullanıcı silinecek, ancak mesajları görünmeyecek. Bu geri alınamaz.", @@ -914,7 +913,6 @@ "Delete_all_closed_chats": "Tüm kapalı sohbetleri sil", "Delete_message": "İletiyi sil", "Delete_my_account": "Hesabımı sil", - "Delete_roomType_description": "Bir odayı silmek, oda içinde gönderilen tüm mesajları silecektir. Bu işlem geri alınamaz.", "Deleted": "Silindi!", "Department": "Departman", "Department_not_found": "Departman bulunamadı", @@ -1003,7 +1001,6 @@ "E2E_Enabled": "Uçtan Uca Şifreleme Etkin", "E2E_Encryption_Password_Explanation": "Artık şifrelenmiş özel gruplar ve doğrudan iletiler oluşturabilirsiniz. Mevcut özel grupları veya doğrudan iletileri de şifrelenmiş hale getirebilirsiniz.

Uçtan uca şifreleme ile, iletilerinizi şifreleme/şifresini çözme anahtarı sunucuda saklanmayacaktır. Bu nedenle şifrenizi güvenli bir yerde saklamanız gerekmektedir. Uçtan uca şifrelemeyi üzerinde kullanmak istediğiniz diğer aygıtta girmeniz gerekir.", "E2E_password_request_text": "Şifrelenmiş özel gruplarınıza ve doğrudan iletilerinize erişmek için, şifreleme parolanızını girin.
Anahtar, sunucuda saklanmadığı için kullandığnız her istemcide iletilerinizi şifreleme/şifre çözme için bu parolayı girmeniz gerekmektedir.", - "E2E_password_reveal_text": "Artık şifrelenmiş özel gruplar ve doğrudan iletiler oluşturabilirsiniz. Mevcut özel gruplar ve doğrudan iletileri de şifrelenmiş hale getirebilirsiniz.

Uçtan uca şifreleme ile, iletilerinizi şifreleme/şifresini çözme anahtarı sunucuda saklanmayacaktır. Bu nedenle şifrenizi güvenli bir yerde saklamanız gerekmektedir. Uçtan uca şifrelemeyi üzerinde kullanmak istediğiniz diğer aygıtta girmeniz gerekir.Daha fazlasını buradan öğrenin!

Şifreniz: {{randomPassword}}

Bu otomatik oluşturulan şifredir; istediğiniz zaman mevcut şifrenizle oturum açtığınız bir tarayıcıdan şifreleme anahtarınızı yenisi ile değiştirebilirsiniz.
Bu şifre, siz saklayıncaya ve bu iletiyi reddedinceye kadar, yalnızca bu tarayıcıda saklanacaktır.", "Edit": "Düzenle", "Edit_Custom_Field": "Düzenleme Özel Alan", "Edit_Department": "Düzenleme Bölümü", @@ -1906,7 +1903,6 @@ "Offline_Email_Subject_Description": "Aşağıdaki yer tutucuları kulanabilirsiniz: \n - Uygulama adı, URL, kullanıcı adı ve oda adı için, sırasıyla [Site_Name], `[Site_URL]`, [User] ve [Room]. ", "Offline_Link_Message": "İLETİYE GİT", "Offline_Mention_All_Email": "Tüm E-postaları Konuyla İlgili Anlat", - "Offline_Mention_Email": "#{{room}} içinde {{user}} sizden bahsetti", "Offline_Message": "Çevrimdışı Mesaj", "Offline_form": "Çevrimdışı formu", "Offline_form_unavailable_message": "Çevrimdışı Formu Kullanılamıyor İletisi", diff --git a/packages/i18n/src/locales/ug.i18n.json b/packages/i18n/src/locales/ug.i18n.json index 76179f3e1f3f7..a3cfdc0bc1092 100644 --- a/packages/i18n/src/locales/ug.i18n.json +++ b/packages/i18n/src/locales/ug.i18n.json @@ -268,12 +268,10 @@ "Deactivate": "چەكلەش", "Default": "بەلگىلەنگەن", "Delete": "يۇيۇش", - "Delete_Room_Warning": "ئۆينى يۇيۇشتا ئۆيدىكى بارلىق ئۇچۇرلار يۇيۇلىدۇ . بۇ مەشغۇلاتنى ئەسلىگە قايتۇرغىلى بولمايدۇ.", "Delete_User_Warning": "ئابۇنتنى يۇيۇۋەتسە ئۇ ئابۇنتىكى بارلىق ئۇچۇرلار يۇيۇلىدۇ . بۇ مەشغۇلاتنى ئۆچۈرۈۋەتكىلى بولمايدۇ.", "Delete_User_Warning_Delete": "ئابۇنتنى يۇيۇۋەتسە ئۇ ئابۇنتىكى بارلىق ئۇچۇرلار يۇيۇلىدۇ . بۇ مەشغۇلاتنى ئۆچۈرۈۋەتكىلى بولمايدۇ.", "Delete_message": "ئۇچۇر يۇيۇش", "Delete_my_account": "مېنىڭ ھېسابات نومۇرۇمنى يۇيۇش", - "Delete_roomType_description": "ئۆينى يۇيۇشتا ئۆيدىكى بارلىق ئۇچۇرلار يۇيۇلىدۇ . بۇ مەشغۇلاتنى ئەسلىگە قايتۇرغىلى بولمايدۇ.", "Deleted": "يۇيۇلۇپ بولدى!", "Department_not_found": "بۇ بۆلۈم يوق", "Department_removed": "بۆلۈم يۇيۇلۇپ بولدى", @@ -681,8 +679,6 @@ "Off_the_record_conversation": "خاتىرىلەنمىگەن دىيالوگ", "Off_the_record_conversation_is_not_available_for_your_browser_or_device": "سىزنىڭ توركۆرگۈچىڭىز ياكى ئۈسكىنىڭىز خاتىرلەنمەيدىغان دىئالوگنى قوللىمايدۇ.", "Offline": "تورسىز", - "Offline_DM_Email": "سىز بىلەن بىۋاستە پاراڭلىشىشنى تەلەپ قىلىۋاتىدۇ{{user}}", - "Offline_Mention_Email": "تىن تىلغا ئېلىندىڭىز{{user}}دە#{{room}}سىز", "Offline_form": "تورسىز جەدۋەل", "Offline_form_unavailable_message": "تورسىز ھالەتتە ئىشلەتكىلى بولمايدىغان ئۇچۇر", "Offline_message": "تورسىز ئۇچۇر", @@ -1006,7 +1002,6 @@ "User__username__is_now_an_owner_of__room_name_": "نىڭ ئىگىدارى {{room_name}} ھازىر بولسا {{username}} ئەزا", "User__username__removed_from__room_name__moderators": "ئۆي يېغىن رەئىسىدىن يۇيۇۋېتىلدى.{{room_name}}نى ئاللىبۇرۇن {{username}} ئەزا", "User__username__removed_from__room_name__owners": "ئۆينىڭ ئىگىدارىدىن يۇيۇۋېتىلدى.{{room_name}} نى {{username}}ئەزا", - "User_added": "بۇ ئەزا ئاللىبۇرۇن قېتىلدى.{{user_added}}", "User_added_by": "نى قاتتى {{user_added}} {{user_by}}", "User_added_successfully": "يېڭى ئەزانى قېتىش ئۇتۇقلۇق بولدى", "User_doesnt_exist": "بولغان ئەزا يوق`@%s` ئەزا ئىسمى", diff --git a/packages/i18n/src/locales/uk.i18n.json b/packages/i18n/src/locales/uk.i18n.json index 4e3f0aa8d727f..986d687cc83aa 100644 --- a/packages/i18n/src/locales/uk.i18n.json +++ b/packages/i18n/src/locales/uk.i18n.json @@ -984,7 +984,6 @@ "Default": "За замовчуванням", "Default_value": "Значення за замовчуванням", "Delete": "Видалити", - "Delete_Room_Warning": "Видалення кімати приведе до видалення всих повідомленнь, які тут знаходяться. Дія не може бути скасована.", "Delete_User_Warning": "Видалення користувача приведе також до вилучення всих повідомленнь цього користувача. Дія не може бути скасована.", "Delete_User_Warning_Delete": "Видалення користувача приведе також до вилучення всих повідомленнь цього користувача. Дія не може бути скасована.", "Delete_User_Warning_Keep": "Користувача буде видалено, але його повідомлення залишатимуться видимими. Дія не може бути скасована.", @@ -992,7 +991,6 @@ "Delete_all_closed_chats": "Видалити всі закриті чати", "Delete_message": "Видалити повідомлення", "Delete_my_account": "Видалити мій обліковий запис", - "Delete_roomType_description": "Видалення кімати приведе до видалення всих повідомленнь, які тут знаходяться. Дія не може бути скасована.", "Deleted": "Видалено!", "Department": "Відділ", "Department_not_found": "Відділ не знайдено", @@ -1089,7 +1087,6 @@ "E2E_Enabled_Default_PrivateRooms": "Увімкніть шифрування для приватних Room по замовчуванню", "E2E_Encryption_Password_Explanation": "Тепер ви можете створювати зашифровані приватні групи та особистіі повідомлення. Також Ви можете змінити існуючі приватні групи або DM-файли на зашифровані.

З цієї причини Вам потрібно зберігати цей пароль десь у безпеці. Вам потрібно буде ввести його на інших пристроях, на яких ви хочете використовувати шифрування e2e.", "E2E_password_request_text": "Щоб отримати доступ до своїх зашифрованих приватних груп та особистих повідомлень, введіть пароль шифрування.
Вам потрібно ввести цей пароль, щоб кодувати / декодувати Ваші повідомлення для кожного клієнта, який Ви використовуєте, оскільки ключ не зберігається на сервері.", - "E2E_password_reveal_text": "Тепер ви можете створювати зашифровані приватні групи та прямі повідомлення. Ви також можете змінити існуючі приватні групи або DM-файли на зашифровані.

З цієї причини вам потрібно зберігати цей пароль десь у безпеці. Вам потрібно буде ввести його на інших пристроях, на яких ви хочете використовувати шифрування e2e. Детальніше тут

Ваш пароль: {{randomPassword}}

Це автоматичний згенерований пароль, Ви можете встановити новий пароль для шифрування введіть будь-який час у будь-якому веб-переглядачі, який ви ввели існуючий пароль.
Цей пароль зберігається в цьому веб-переглядачі, поки ви не збережете пароль і не відхилите це повідомлення.", "Edit": "Редагувати", "Edit_Business_Hour": "Редагування час роботи", "Edit_Custom_Field": "Редагувати користувацьке поле", @@ -2047,11 +2044,9 @@ "Office_hours_enabled": "Час роботи включений", "Office_hours_updated": "Офіційні години оновлено", "Offline": "Offline", - "Offline_DM_Email": "Ви були прямим шляхом {{user}} обмінювалися повідомленнями", "Offline_Email_Subject_Description": "
  • Ви можете використовувати наступні заповнювачі: \n - [Ім'я Сайту], `[Site_URL]`, [Користувач] і [Room] для імені програми, URL-адреси, імені користувача та кімнати. ", "Offline_Link_Message": "Перейти до повідомлення", "Offline_Mention_All_Email": "Згадайте всі теми електронної пошти", - "Offline_Mention_Email": "Ви були згадані {{user}} в #{{room}}", "Offline_form": "Offline форма", "Offline_form_unavailable_message": "Offline форма недоступний повідомлення", "Offline_message": "Немає повідомлення", diff --git a/packages/i18n/src/locales/vi-VN.i18n.json b/packages/i18n/src/locales/vi-VN.i18n.json index 9cad2b1b23b04..7c55dcce6840e 100644 --- a/packages/i18n/src/locales/vi-VN.i18n.json +++ b/packages/i18n/src/locales/vi-VN.i18n.json @@ -842,7 +842,6 @@ "Decline": "Từ chối", "Default": "Mặc định", "Delete": "Xóa bỏ", - "Delete_Room_Warning": "Xóa một phòng sẽ xóa tất cả các tin nhắn được đăng bên trong phòng. Điều này không thể được hoàn tác.", "Delete_User_Warning": "Xóa người dùng cũng sẽ xóa tất cả các thư từ người dùng đó. Điều này không thể được hoàn tác.", "Delete_User_Warning_Delete": "Xóa người dùng cũng sẽ xóa tất cả các thư từ người dùng đó. Điều này không thể được hoàn tác.", "Delete_User_Warning_Keep": "Người dùng sẽ bị xóa, nhưng thông điệp của họ sẽ vẫn hiển thị. Điều này không thể được hoàn tác.", diff --git a/packages/i18n/src/locales/zh-HK.i18n.json b/packages/i18n/src/locales/zh-HK.i18n.json index f918080f65b7f..2208e292158b7 100644 --- a/packages/i18n/src/locales/zh-HK.i18n.json +++ b/packages/i18n/src/locales/zh-HK.i18n.json @@ -770,14 +770,12 @@ "Decline": "下降", "Default": "默认", "Delete": "删除", - "Delete_Room_Warning": "删除房间将删除房间内张贴的所有消息。这不能被撤消。", "Delete_User_Warning": "删除用户将删除该用户的所有消息。这不能被撤消。", "Delete_User_Warning_Delete": "删除用户将删除该用户的所有消息。这不能被撤消。", "Delete_User_Warning_Keep": "用户将被删除,但他们的消息将保持可见。这不能被撤消。", "Delete_User_Warning_Unlink": "删除用户将从用户的所有消息中删除用户名。这不能被撤消。", "Delete_message": "删除消息", "Delete_my_account": "删除我的账户", - "Delete_roomType_description": "删除房间将删除房间内张贴的所有消息。这不能被撤消。", "Deleted": "已删除!", "Department": "部", "Department_not_found": "部门没有找到", @@ -1029,10 +1027,10 @@ "Hex_Color_Preview": "十六进制颜色预览", "Hidden": "隐", "Hide": "隐藏会话", - "Hide_Group_Warning": "你确定要隐藏组“%s”吗?", - "Hide_Livechat_Warning": "你确定要隐藏“%s”的即时聊天吗?", - "Hide_Private_Warning": "你确定要用“%s”隐藏讨论吗?", - "Hide_Room_Warning": "你确定要隐藏房间“%s”吗?", + "Hide_Group_Warning": "你确定要隐藏组“{{roomName}}”吗?", + "Hide_Livechat_Warning": "你确定要隐藏“{{roomName}}”的即时聊天吗?", + "Hide_Private_Warning": "你确定要用“{{roomName}}”隐藏讨论吗?", + "Hide_Room_Warning": "你确定要隐藏房间“{{roomName}}”吗?", "Hide_Unread_Room_Status": "隐藏未读房间状态", "Hide_counter": "隐藏计数器", "Hide_flextab": "点击右键隐藏侧边栏", @@ -1331,10 +1329,10 @@ "Lead_capture_email_regex": "领导捕获电子邮件正则表达式", "Lead_capture_phone_regex": "领导捕获手机正则表达式", "Leave": "离开聊天室", - "Leave_Group_Warning": "你确定要离开小组“%s”吗?", - "Leave_Livechat_Warning": "你确定要离开“%s”的即时聊天吗?", - "Leave_Private_Warning": "您确定要以“%s”离开讨论吗?", - "Leave_Room_Warning": "你确定要离开房间“%s”吗?", + "Leave_Group_Warning": "你确定要离开小组“{{roomName}}”吗?", + "Leave_Livechat_Warning": "你确定要离开“{{roomName}}”的即时聊天吗?", + "Leave_Private_Warning": "您确定要以“{{roomName}}”离开讨论吗?", + "Leave_Room_Warning": "你确定要离开房间“{{roomName}}”吗?", "Leave_room": "离开聊天室", "Leave_the_current_channel": "离开当前频道", "List_of_Channels": "频道列表", @@ -2254,7 +2252,6 @@ "User__username__is_now_a_leader_of__room_name_": "User {{username}}现在是{{room_name}}的领导者", "User__username__is_now_a_moderator_of__room_name_": "User {{username}}现在是{{room_name}}的管理员", "User__username__is_now_an_owner_of__room_name_": "User {{username}}现在是{{room_name}}的所有者", - "User_added": "已添加用户 {{user_added}} 。", "User_added_by": " {{user_by}} 添加了 {{user_added}} 。", "User_added_successfully": "用户添加成功", "User_and_group_mentions_only": "用户和组仅提及", @@ -2272,7 +2269,6 @@ "User_is_now_an_admin": "用户已成为管理员", "User_is_unblocked": "用户被解除封锁", "User_joined_channel": "加入了频道。", - "User_left": "用户 {{user_left}} 已离开。", "User_logged_out": "用户已注销", "User_management": "用户管理", "User_mentions_only": "用户仅提及", diff --git a/packages/i18n/src/locales/zh-TW.i18n.json b/packages/i18n/src/locales/zh-TW.i18n.json index ec500fde615f4..8796c08e78735 100644 --- a/packages/i18n/src/locales/zh-TW.i18n.json +++ b/packages/i18n/src/locales/zh-TW.i18n.json @@ -1239,7 +1239,6 @@ "Delete": "刪除", "Delete_File_Warning": "刪除檔案將永遠刪除它。這不能被取消。", "Delete_Role_Warning": "刪除身份會永遠刪除。這個是不能取消。", - "Delete_Room_Warning": "刪除聊天室會一併刪除聊天室內的所有訊息,此動作無法復原。", "Delete_User_Warning": "刪除用戶將刪除該用戶所有訊息,此動作無法復原。", "Delete_User_Warning_Delete": "刪除用戶將刪除該用戶所有訊息,此動作無法復原。", "Delete_User_Warning_Keep": "使用者將被刪除,但他們的訊息將保持可見。這不能復原。", @@ -1247,7 +1246,6 @@ "Delete_all_closed_chats": "刪除所有已關閉的聊天", "Delete_message": "刪除訊息", "Delete_my_account": "刪除我的帳號", - "Delete_roomType_description": "刪除聊天室會一併刪除聊天室內的所有訊息,此動作無法復原。", "Deleted": "已刪除!", "Deleted__roomName__": "已刪除 #{{roomName}}", "Deleting": "刪除中", @@ -1430,7 +1428,6 @@ "Encrypted_channel_Description": "點對點加密頻道。搜尋無法在加密頻道上工作且通知可能也不會顯示訊息內容。", "Encrypted_field_hint": "點對點加密頻道。搜尋無法在加密頻道上工作且通知可能也不會顯示訊息內容。", "Encrypted_message": "加密訊息", - "Encrypted_not_available": "不可以用在公開 Channel", "Encrypted_setting_changed_successfully": "加密設定已變更成功", "Encryption_key_saved_successfully": "您的加密金鑰已儲存成功。", "End": "結束", @@ -3125,7 +3122,7 @@ "SAML_MetadataCertificate_Template": "Metadata 憑證範本", "SAML_Metadata_Certificate_Template_Description": "可以使用以下變數: \n- *\\_\\_certificate\\_\\_*:用於主要加密的專用憑證。", "SAML_Metadata_Template": "Metadata 範本", - "SAML_Metadata_Template_Description": "可以使用以下變數: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat 單一登出網址。 \n- *\\_\\_issuer\\_\\_*: *Custom Issuer*設定的值。 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format*設定的值。 \n- *\\_\\_certificateTag\\_\\_*: 如果設置了私人憑證,則將包括{{Metadata Certificate Template}},否則將被忽略。 \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat 回應網址。", + "SAML_Metadata_Template_Description": "可以使用以下變數: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat 單一登出網址。 \n- *\\_\\_issuer\\_\\_*: *Custom Issuer*設定的值。 \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format*設定的值。 \n- *\\_\\_certificateTag\\_\\_*: 如果設置了私人憑證,則將包括*Metadata Certificate Template*,否則將被忽略。 \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat 回應網址。", "SAML_NameIdPolicy_Template": "NameID 政策範本", "SAML_NameIdPolicy_Template_Description": "您可以在此處使用授權請求範本中的任何變數。", "SAML_Role_Attribute_Name": "角色屬性名稱", @@ -3139,7 +3136,7 @@ "SAML_Section_5_Mapping": "對應", "SAML_Section_6_Advanced": "進階", "SMS_Default_Omnichannel_Department": "全通道部門(預設)", - "SMS_Default_Omnichannel_Department_Description": "如果設定,則此整合啟動的所有新傳入聊天都將轉送到該部門。 \n可以透過在請求中傳遞部門查詢參數來覆蓋此設定。 \n例如 `https://{{SERVER_URL}}/api/v1/livechat/sms-incoming/twilio?department={{Department Id or Name}}` 。 \n注意:如果您使用的是部門名稱,那麼它應該是安全的網址。", + "SMS_Default_Omnichannel_Department_Description": "如果設定,則此整合啟動的所有新傳入聊天都將轉送到該部門。 \n可以透過在請求中傳遞部門查詢參數來覆蓋此設定。 \n例如 `https://\\{\\{SERVER_URL\\}\\}/api/v1/livechat/sms-incoming/twilio?department=\\{\\{Department Id or Name\\}\\}` 。 \n注意:如果您使用的是部門名稱,那麼它應該是安全的網址。", "SMS_Enabled": "簡訊功能已開啟", "SMTP": "SMTP", "SMTP_Host": "SMTP 主機", diff --git a/packages/i18n/src/locales/zh.i18n.json b/packages/i18n/src/locales/zh.i18n.json index eb482cb656991..8db241b8c355a 100644 --- a/packages/i18n/src/locales/zh.i18n.json +++ b/packages/i18n/src/locales/zh.i18n.json @@ -1117,7 +1117,6 @@ "Default_value": "默认值", "Delete": "删除", "Delete_File_Warning": "删除文件是永久的。这不能被撤销。", - "Delete_Room_Warning": "删除聊天室会同时删除聊天室内的所有消息。这不能被撤销。", "Delete_User_Warning": "删除用户将删除该用户的所有消息。这不能被撤销。", "Delete_User_Warning_Delete": "删除用户将删除该用户的所有消息。这不能被撤销。", "Delete_User_Warning_Keep": "用户将被删除,但他们的消息将保持可见。这不能被撤销。", @@ -1125,7 +1124,6 @@ "Delete_all_closed_chats": "删除所有已关闭的聊天", "Delete_message": "删除消息", "Delete_my_account": "删除我的帐号", - "Delete_roomType_description": "删除聊天室会同时删除聊天室内的所有消息。这不能被撤销。", "Deleted": "已删除!", "Department": "部门", "Department_not_found": "找不到该部门", @@ -2831,7 +2829,7 @@ "SAML_MetadataCertificate_Template": "元数据证书模版", "SAML_Metadata_Certificate_Template_Description": "下列变量可用: \n- *\\_\\_certificate\\_\\_*: 用于断言加密的私有证书", "SAML_Metadata_Template": "元数据模版", - "SAML_Metadata_Template_Description": "下列变量可用: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat 单点登出 URL \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* 设置值. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* 设置值. \n- *\\_\\_certificateTag\\_\\_*: 当配置了私有证书时,将包含 {{Metadata Certificate Template}}, 否则将被忽略 \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat 回调 URL.", + "SAML_Metadata_Template_Description": "下列变量可用: \n- *\\_\\_sloLocation\\_\\_*: Rocket.Chat 单点登出 URL \n- *\\_\\_issuer\\_\\_*: *Custom Issuer* 设置值. \n- *\\_\\_identifierFormat\\_\\_*: *Identifier Format* 设置值. \n- *\\_\\_certificateTag\\_\\_*: 当配置了私有证书时,将包含 *Metadata Certificate Template*, 否则将被忽略 \n- *\\_\\_callbackUrl\\_\\_*: Rocket.Chat 回调 URL.", "SAML_NameIdPolicy_Template": "NameID 策略模版", "SAML_NameIdPolicy_Template_Description": "您可以在授权请求模版中使用这里的任何变量。", "SAML_Role_Attribute_Name": "身份属性名", diff --git a/packages/i18n/src/scripts/check.mts b/packages/i18n/src/scripts/check.mts index 84c9419acaa94..ea796f6883123 100644 --- a/packages/i18n/src/scripts/check.mts +++ b/packages/i18n/src/scripts/check.mts @@ -351,26 +351,26 @@ const trimEndOfFile = describeTask('trim-eof', async function* () { } }); +const extractPlaceholders = (translation: string): Set => { + const placeholders = new Set(); + const placeholderRegex = /{{(.+?)(,.*?)?}}/g; + let match; + while ((match = placeholderRegex.exec(translation)) !== null) { + placeholders.add(match[1]); + } + return placeholders; +}; + +const encodedKey = (key: string, plural?: string) => (plural ? `${key}|${plural}` : key); + /** - * Asserts that all translations have the same placeholders as the base language (en) + * Finds translations that are missing placeholders present in the base language (en) */ -const matchPlaceholders = describeTask('match-placeholders', async function* () { +const missingPlaceholders = describeTask('missing-placeholders', async function* () { const baseResource = await readResource(baseLanguage); const baseTranslations = listTranslations(baseResource); const basePlaceholdersByEncodedKey = new Map>(); - const extractPlaceholders = (translation: string): Set => { - const placeholders = new Set(); - const placeholderRegex = /{{(.*?)}}/g; - let match; - while ((match = placeholderRegex.exec(translation)) !== null) { - placeholders.add(match[1]); - } - return placeholders; - }; - - const encodedKey = (key: string, plural?: string) => (plural ? `${key}|${plural}` : key); - for (const { key: baseKey, plural: basePlural, translation: baseTranslation } of baseTranslations) { basePlaceholdersByEncodedKey.set(encodedKey(baseKey, basePlural), extractPlaceholders(baseTranslation)); } @@ -402,6 +402,35 @@ const matchPlaceholders = describeTask('match-placeholders', async function* () }, }; } + } + } +}); + +/** + * Finds translations that have extra placeholders not present in the base language (en) + */ +const extraPlaceholders = describeTask('extra-placeholders', async function* () { + const baseResource = await readResource(baseLanguage); + const baseTranslations = listTranslations(baseResource); + const basePlaceholdersByEncodedKey = new Map>(); + + for (const { key: baseKey, plural: basePlural, translation: baseTranslation } of baseTranslations) { + basePlaceholdersByEncodedKey.set(encodedKey(baseKey, basePlural), extractPlaceholders(baseTranslation)); + } + + const languages = await getResourceLanguages(); + + for await (const language of languages) { + if (language === baseLanguage) continue; + + const resource = await readResource(language); + const translations = listTranslations(resource); + + for (const { key, plural, translation } of translations) { + const basePlaceholders = basePlaceholdersByEncodedKey.get(encodedKey(key, plural)); + if (!basePlaceholders) continue; + + const placeholders = extractPlaceholders(translation); for (const placeholder of placeholders) { if (basePlaceholders.has(placeholder)) continue; @@ -424,7 +453,8 @@ const tasksByName = { 'find-missing-plurals': findMissingPlurals, 'replace-2-underscores': replaceDoubleUnderscorePlaceholders, 'trim-eof': trimEndOfFile, - 'match-placeholders': matchPlaceholders, + 'missing-placeholders': missingPlaceholders, + 'extra-placeholders': extraPlaceholders, } as const; async function check({ fix, task }: { fix?: boolean; task?: string[] } = {}) { @@ -436,6 +466,8 @@ async function check({ fix, task }: { fix?: boolean; task?: string[] } = {}) { 'find-missing-plurals', 'replace-2-underscores', 'trim-eof', + 'missing-placeholders', + 'extra-placeholders', ]); if (task?.length) { From bbd6b06b6d4e27016bd493c4242215270abaf2b4 Mon Sep 17 00:00:00 2001 From: Tasso Date: Fri, 26 Sep 2025 12:39:01 -0300 Subject: [PATCH 16/20] Add task for positional parameters --- packages/i18n/src/scripts/check.mts | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/i18n/src/scripts/check.mts b/packages/i18n/src/scripts/check.mts index ea796f6883123..4cb5be2ca68e7 100644 --- a/packages/i18n/src/scripts/check.mts +++ b/packages/i18n/src/scripts/check.mts @@ -445,6 +445,36 @@ const extraPlaceholders = describeTask('extra-placeholders', async function* () } }); +const findPositionalParams = describeTask('find-sprintf-params', async function* () { + const sprintfRegex = /%s/g; + + const resource = await readResource(baseLanguage); + + for (const { key, plural, translation } of listTranslations(resource)) { + const match = sprintfRegex.exec(translation); + if (!match) continue; + + yield { + lint: async (reportError) => { + if (plural) { + reportError( + 'key %o (plural %o) has positional parameter %o, should be named parameter like %o', + key, + plural, + match[0], + '{{param}}', + ); + } else { + reportError('key %o has positional parameter %o, should be named parameter like %o', key, match[0], '{{param}}'); + } + }, + }; + } +}); + +/** + * Map of all available tasks + */ const tasksByName = { 'sort-base-keys': sortBaseKeys, 'sort-keys': sortKeys, @@ -453,6 +483,7 @@ const tasksByName = { 'find-missing-plurals': findMissingPlurals, 'replace-2-underscores': replaceDoubleUnderscorePlaceholders, 'trim-eof': trimEndOfFile, + 'find-sprintf-params': findPositionalParams, 'missing-placeholders': missingPlaceholders, 'extra-placeholders': extraPlaceholders, } as const; From 3a41a947425d4074f3a9987c7b2e1ab57e77ef4b Mon Sep 17 00:00:00 2001 From: Tasso Date: Fri, 26 Sep 2025 13:21:38 -0300 Subject: [PATCH 17/20] Move script to replace positional parameters --- .../replaceTranslationSprintfParams.ts | 140 ------------------ apps/meteor/package.json | 1 - packages/i18n/package.json | 3 +- packages/i18n/src/scripts/build.mts | 5 +- packages/i18n/src/scripts/check.mts | 4 +- packages/i18n/src/scripts/replace-sprintf.mts | 118 +++++++++++++++ 6 files changed, 125 insertions(+), 146 deletions(-) delete mode 100644 apps/meteor/.scripts/replaceTranslationSprintfParams.ts create mode 100644 packages/i18n/src/scripts/replace-sprintf.mts diff --git a/apps/meteor/.scripts/replaceTranslationSprintfParams.ts b/apps/meteor/.scripts/replaceTranslationSprintfParams.ts deleted file mode 100644 index 140eee0a168df..0000000000000 --- a/apps/meteor/.scripts/replaceTranslationSprintfParams.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { readFile, writeFile } from 'node:fs/promises'; -import { join } from 'node:path'; -import { stdin as input, stdout as output } from 'node:process'; -import { createInterface } from 'node:readline/promises'; - -import fg from 'fast-glob'; - -const LOCALES_DIR = join(process.cwd(), '..', '..', 'packages', 'i18n', 'src', 'locales'); - -/** - * Counts occurrences of a substring in a string - */ -const countOccurrences = (str: string, substring: string): number => { - let count = 0; - let position = str.indexOf(substring); - - while (position !== -1) { - count++; - position = str.indexOf(substring, position + 1); - } - - return count; -}; - -/** - * Parse a JSON file and return its content - */ -const parseFile = async (path: string): Promise> => { - const content = await readFile(path, 'utf-8'); - try { - return JSON.parse(content); - } catch (e) { - console.error(`Error parsing JSON file at ${path}: ${(e as Error).message}`); - process.exit(1); - } -}; - -/** - * Save a JSON file with proper formatting - */ -const saveFile = async (path: string, json: Record): Promise => { - try { - await writeFile(path, JSON.stringify(json, null, 2), 'utf-8'); - console.log(`Updated ${path}`); - } catch (e) { - console.error(`Error saving file at ${path}: ${(e as Error).message}`); - } -}; - -/** - * Main function to replace %s tokens with named parameters - */ -const replaceTranslationSprintfParams = async (): Promise => { - // Check if a translation key was provided - const translationKey = process.argv[2]; - - if (!translationKey) { - console.error('Please provide a translation key as parameter'); - process.exit(1); - } - - // Find all translation files - const translationFiles = await fg('*.i18n.json', { cwd: LOCALES_DIR, absolute: true }); - - if (translationFiles.length === 0) { - console.error(`No translation files found in ${LOCALES_DIR}`); - process.exit(1); - } - - console.log(`Found ${translationFiles.length} translation files`); - - // Find the key in the English file first to count the %s tokens - const enFilePath = translationFiles.find((file) => file.endsWith('en.i18n.json')); - - if (!enFilePath) { - console.error('English translation file not found'); - process.exit(1); - } - - const enTranslations = await parseFile(enFilePath); - - if (!enTranslations[translationKey]) { - console.error(`Translation key "${translationKey}" not found in English translations`); - process.exit(1); - } - - const englishValue = enTranslations[translationKey]; - const tokenCount = countOccurrences(englishValue, '%s'); - - console.log(`Found translation key "${translationKey}" with value: "${englishValue}"`); - console.log(`This string contains ${tokenCount} "%s" tokens`); - - if (tokenCount === 0) { - console.log('No %s tokens found, nothing to do'); - process.exit(0); - } - - // Prompt for parameter names - const rl = createInterface({ input, output }); - const promptMessage = `Please provide ${tokenCount} parameter names (comma-separated): `; - const paramNamesInput = await rl.question(promptMessage); - rl.close(); - - // Split and trim parameter names - const paramNames = paramNamesInput.split(',').map((name) => name.trim()); - - if (paramNames.length !== tokenCount) { - console.error(`Expected ${tokenCount} parameter names, but got ${paramNames.length}`); - process.exit(1); - } - - // Process all translation files - for (const filePath of translationFiles) { - // eslint-disable-next-line no-await-in-loop - const translations = await parseFile(filePath); - - if (translations[translationKey]) { - let updatedValue = translations[translationKey]; - let paramIndex = 0; - - // Replace each %s token with a named parameter - while (updatedValue.includes('%s') && paramIndex < paramNames.length) { - updatedValue = updatedValue.replace('%s', `{{${paramNames[paramIndex]}}}`); - paramIndex++; - } - - translations[translationKey] = updatedValue; - // eslint-disable-next-line no-await-in-loop - await saveFile(filePath, translations); - } - } - - console.log('All translation files have been updated'); -}; - -// Run the script -replaceTranslationSprintfParams().catch((error) => { - console.error('Error:', error); - process.exit(1); -}); diff --git a/apps/meteor/package.json b/apps/meteor/package.json index 0587803517915..240b6f970557e 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -44,7 +44,6 @@ ".testunit:definition": "mocha --config ./.mocharc.definition.js", "testunit-watch": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' mocha --watch --config ./.mocharc.js", "test": "yarn testunit && yarn testapi", - "translation-replace-sprintf-params": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node .scripts/replaceTranslationSprintfParams.ts", "version": "node .scripts/version.js", "set-version": "node .scripts/set-version.js", "release": "meteor yarn set-version --silent", diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 02e851d261d9e..d8dbc7b783367 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -27,7 +27,8 @@ ], "scripts": { "build": "rm -rf dist && tsc -p tsconfig.build.json && node --experimental-transform-types ./src/scripts/build.mts", - "translation-check": "node --experimental-transform-types ./src/scripts/check.mts", + "check": "node --experimental-transform-types ./src/scripts/check.mts", + "replace-sprintf": "node --experimental-transform-types ./src/scripts/replace-sprintf.mts", "lint": "eslint . && node --experimental-transform-types ./src/scripts/check.mts", "lint:fix": "eslint . --fix && node --experimental-transform-types ./src/scripts/check.mts --fix", "test": "jest", diff --git a/packages/i18n/src/scripts/build.mts b/packages/i18n/src/scripts/build.mts index fd578b1027946..4ded10d2116ba 100644 --- a/packages/i18n/src/scripts/build.mts +++ b/packages/i18n/src/scripts/build.mts @@ -1,5 +1,6 @@ import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises'; import { join } from 'node:path'; +import { argv, exit } from 'node:process'; import { fileURLToPath } from 'node:url'; import { distDirectory, languageFromBasename, resourceBasename, resourcesDirectory } from './common.mts'; @@ -107,10 +108,10 @@ export default languages;`, if (import.meta.url.startsWith('file:')) { const modulePath = fileURLToPath(import.meta.url); - if (process.argv[1] === modulePath) { + if (argv[1] === modulePath) { build().catch((error) => { console.error(error); - process.exit(1); + exit(1); }); } } diff --git a/packages/i18n/src/scripts/check.mts b/packages/i18n/src/scripts/check.mts index 4cb5be2ca68e7..3fa95f5de9909 100644 --- a/packages/i18n/src/scripts/check.mts +++ b/packages/i18n/src/scripts/check.mts @@ -1,4 +1,4 @@ -import { argv, stderr, stdout } from 'node:process'; +import { argv, exit, stderr, stdout } from 'node:process'; import { fileURLToPath } from 'node:url'; import { formatWithOptions, parseArgs, styleText } from 'node:util'; @@ -539,7 +539,7 @@ if (import.meta.url.startsWith('file:')) { check(values).catch((error) => { console.error(error); - process.exit(1); + exit(1); }); } } diff --git a/packages/i18n/src/scripts/replace-sprintf.mts b/packages/i18n/src/scripts/replace-sprintf.mts new file mode 100644 index 0000000000000..1acda7a5b4852 --- /dev/null +++ b/packages/i18n/src/scripts/replace-sprintf.mts @@ -0,0 +1,118 @@ +import { argv, exit, stdin as input, stdout as output } from 'node:process'; +import { createInterface } from 'node:readline/promises'; +import { fileURLToPath } from 'node:url'; +import { parseArgs } from 'node:util'; + +import { baseLanguage, getResourceLanguages, readResource, resourcesDirectory, writeResource } from './common.mts'; + +/** + * Counts occurrences of a substring in a string + */ +const countOccurrences = (str: string, substring: string): number => { + let count = 0; + let position = str.indexOf(substring); + + while (position !== -1) { + count++; + position = str.indexOf(substring, position + 1); + } + + return count; +}; + +/** + * Main function to replace %s tokens with named parameters + */ +const replaceSprintfParams = async (translationKey: string): Promise => { + if (!translationKey) { + throw new Error('Please provide a translation key as parameter'); + } + + const languages = await getResourceLanguages(); + + if (languages.length === 0) { + throw new Error(`No translation files found in ${resourcesDirectory}`); + } + + console.log(`Found ${languages.length} translation files`); + + const baseResource = await readResource(baseLanguage); + + if (!baseResource[translationKey]) { + throw new Error(`Translation key "${translationKey}" not found in ${baseLanguage} translations`); + } + + if (typeof baseResource[translationKey] !== 'string') { + throw new Error(`Translation key "${translationKey}" is not a string in ${baseLanguage} translations`); + } + + const baseTranslation = baseResource[translationKey]; + const tokenCount = countOccurrences(baseTranslation, '%s'); + + console.log(`Found translation key "${translationKey}" with value: "${baseTranslation}"`); + console.log(`This string contains ${tokenCount} "%s" tokens`); + + if (tokenCount === 0) { + console.log('No %s tokens found, nothing to do'); + return; + } + + // Prompt for parameter names + const rl = createInterface({ input, output }); + const promptMessage = `Please provide ${tokenCount} parameter names (comma-separated): `; + const paramNamesInput = await rl.question(promptMessage); + rl.close(); + + // Split and trim parameter names + const paramNames = paramNamesInput.split(',').map((name) => name.trim()); + + if (paramNames.length !== tokenCount) { + throw new Error(`Expected ${tokenCount} parameter names, but got ${paramNames.length}`); + } + + // Process all translation files + for await (const language of languages) { + const translations = await readResource(language); + + if (translations[translationKey]) { + let updatedValue = translations[translationKey]; + let paramIndex = 0; + + // Replace each %s token with a named parameter + while (updatedValue.includes('%s') && paramIndex < paramNames.length) { + updatedValue = updatedValue.replace('%s', `{{${paramNames[paramIndex]}}}`); + paramIndex++; + } + + translations[translationKey] = updatedValue; + + await writeResource(language, translations); + console.log(`Updated "${translationKey}" in ${language} translations to: "${updatedValue}"`); + } + } + + console.log('All translation files have been updated'); +}; + +if (import.meta.url.startsWith('file:')) { + const modulePath = fileURLToPath(import.meta.url); + + if (argv[1] === modulePath) { + const { positionals } = parseArgs({ + args: argv.slice(2), + allowPositionals: true, + }); + + if (positionals.length === 0) { + console.error('Please provide at least one translation key as parameter'); + exit(1); + } + + for await (const arg of positionals) { + await replaceSprintfParams(arg).catch((error) => { + console.error(error); + exit(1); + }); + } + } +} From d094738bb29dad10ba3f72e6211f1c5add7a2ade Mon Sep 17 00:00:00 2001 From: Tasso Date: Fri, 26 Sep 2025 15:59:40 -0300 Subject: [PATCH 18/20] Fix minor mistakes --- packages/i18n/src/locales/ar.i18n.json | 4 ++-- packages/i18n/src/locales/ca.i18n.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/i18n/src/locales/ar.i18n.json b/packages/i18n/src/locales/ar.i18n.json index 49ae21147e108..a3dcbbc114b3e 100644 --- a/packages/i18n/src/locales/ar.i18n.json +++ b/packages/i18n/src/locales/ar.i18n.json @@ -3177,7 +3177,7 @@ "SAML_Allowed_Clock_Drift": "يُسمح بانحراف الساعة من موفر الهوية", "SAML_Allowed_Clock_Drift_Description": "قد تنحرف ساعة موفر الهوية قليلاً قبل ساعات النظام. يمكنك السماح بقدر صغير من انحراف الساعة. يجب إعطاء قيمته بعدد من المللي ثانية. تتم إضافة القيمة المعطاة إلى الوقت الحالي الذي يتم فيه التحقق من صحة الرد.", "SAML_AuthnContext_Template": "قالب سياق المصادقة", - "SAML_AuthnContext_Template_Description": "يمكنك استخدام أي متغير من قالب طلب المصادقة هنا. \n \n لإضافة سياقات مصادقة إضافية، قم بتكرار علامة `AuthnContextClassRef` واستبدال متغير `\\_\\_authnContext\\_\\_`_ بالسياق الجديد.", + "SAML_AuthnContext_Template_Description": "يمكنك استخدام أي متغير من قالب طلب المصادقة هنا. \n \n لإضافة سياقات مصادقة إضافية، قم بتكرار علامة `AuthnContextClassRef` واستبدال متغير `\\_\\_authnContext\\_\\_ بالسياق الجديد.", "SAML_AuthnRequest_Template": "قالب طلب المصادقة", "SAML_AuthnRequest_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_newId\\_\\_*: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- *\\_\\_instant\\_\\_*: الطابع الزمني الحالي \n- *\\_\\_callbackUrl\\_\\_*: عنوان URL لرد الاتصال Rocket.Chat. \n- *\\_\\_entryPoint\\_\\_*: قيمة إعداد *Custom Entry Point*. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormatTag\\_\\_*: محتويات *NameID Policy Template* إذا تم تكوين *Identifier Format* صالح. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n- *\\_\\_authnContextTag\\_\\_*: محتويات *AuthnContext Template* إذا تم تكوين *Custom Authn Context* صالح. \n- *\\_\\_authnContextComparison\\_\\_*: قيمة إعداد*Authn Context Comparison*. \n- *\\_\\_authnContext\\_\\_*: قيمة إعداد *Custom Authn Context*.", "SAML_Connection": "اتصال", @@ -3227,7 +3227,7 @@ "SAML_Identifier_Format": "تنسيق المعرّف", "SAML_Identifier_Format_Description": "اترك هذا فارغًا لحذف سياسة NameID من الطلب.", "SAML_LogoutRequest_Template": "قالب طلب تسجيل الخروج", - "SAML_LogoutRequest_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_newId\\_\\_*: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- *\\_\\_instant\\_\\_*: الطابع الزمني الحالي \n- *\\_\\_idpSLORedirectURL\\_\\_*: عنوان URL لتسجيل الخروج الأحادي لـ IDP المراد إعادة التوجيه إليه. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n-- *\\_\\_nameID\\_\\_*: تم استلام NameID من IdP عندما قام المستخدم بتسجيل الدخول. \n- *\\_\\_sessionIndex\\_\\_*: تم استلام SessionIndex من IdP عندما قام المستخدم بتسجيل الدخول.", + "SAML_LogoutRequest_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_newId\\_\\_*: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- *\\_\\_instant\\_\\_*: الطابع الزمني الحالي \n- *\\_\\_idpSLORedirectURL\\_\\_*: عنوان URL لتسجيل الخروج الأحادي لـ IDP المراد إعادة التوجيه إليه. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: تم استلام NameID من IdP عندما قام المستخدم بتسجيل الدخول. \n- *\\_\\_sessionIndex\\_\\_*: تم استلام SessionIndex من IdP عندما قام المستخدم بتسجيل الدخول.", "SAML_LogoutResponse_Template": "قالب استجابة تسجيل الخروج", "SAML_LogoutResponse_Template_Description": "المتغيرات التالية متاحة: \n- *\\_\\_newId\\_\\_*: سلسلة المعرّف التي تم إنشاؤها عشوائيًا \n- *\\_\\_inResponseToId\\_\\_*: معرّف طلب تسجيل الخروج المستلم من IdP \n- *\\_\\_instant\\_\\_*: الطابع الزمني الحالي \n- *\\_\\_idpSLORedirectURL\\_\\_*: عنوان URL لتسجيل الخروج الأحادي لـ IDP المراد إعادة التوجيه إليه. \n- *\\_\\_issuer\\_\\_*: قيمة إعداد *Custom Issuer*. \n- *\\_\\_identifierFormat\\_\\_*: قيمة إعداد *Identifier Format*. \n- *\\_\\_nameID\\_\\_*: تم استلام NameID من طلب تسجيل خروج IdP. \n- *\\_\\_sessionIndex\\_\\_*: تم استلام sessionIndex من طلب تسجيل خروج IdP.", "SAML_MetadataCertificate_Template": "قالب شهادة بيانات التعريف", diff --git a/packages/i18n/src/locales/ca.i18n.json b/packages/i18n/src/locales/ca.i18n.json index f0df244879983..91794d4442e2d 100644 --- a/packages/i18n/src/locales/ca.i18n.json +++ b/packages/i18n/src/locales/ca.i18n.json @@ -3171,7 +3171,7 @@ "SAML_LogoutRequest_Template": "Plantilla de sol·licitud de tancament de sessió", "SAML_LogoutRequest_Template_Description": "Les següents variables estan disponibles: \n- *\\_\\_newId\\_\\_*: Cadena d'identificació generada aleatoriamente \n- *\\_\\_instant\\_\\_*: Data i hora actual \n- *\\_\\_idpSLORedirectURL\\_\\_*: la URL d'inici de sessió únic d'IDP a la qual redireccionar. \n- *\\_\\_issuer\\_\\_*: El valor de l'opció *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: el valor de l'opció *Identifier Format* \n- *\\_\\_nameID\\_\\_*: el NameID rebut des del IdP quan l'usuari ha iniciat sesión. \n- *\\_\\_sessionIndex\\_\\_*: el sessionIndex rebut des del IdP quan l'usuari ha tancat sessió.", "SAML_LogoutResponse_Template": "Plantilla de resposta de tancament de sessió", - "SAML_LogoutResponse_Template_Description": "Les següents variables estan disponibles: \n- *\\_\\_newId\\_\\_*: Cadena d'identificació generada aleatoriamente \n- *\\_\\_inResponseToId\\_\\_*: La identificació de la resposta de tancament de sesón rebuda de el IdP \n- *\\_\\_instant\\_\\_*: Data i hora actual \n- *\\_\\_idpSLORedirectURL\\_\\_*: la URL d'inici de sessió únic d'IDP a la qual redireccionar. \n- * * \\ _ \\ _ issuer \\ _ \\ _ **: El valor de l'opció *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: El valor de l'opció *Identifier Format* \n- *\\_\\_nameID\\_\\_*: El NameID rebut des de la resposta de tancament de sessió de IdP \n- *\\_\\_sessionIndex\\_\\_*: El sessionIndex rebut des de la resposta de tancament de sessió de IdP", + "SAML_LogoutResponse_Template_Description": "Les següents variables estan disponibles: \n- *\\_\\_newId\\_\\_*: Cadena d'identificació generada aleatoriamente \n- *\\_\\_inResponseToId\\_\\_*: La identificació de la resposta de tancament de sesón rebuda de el IdP \n- *\\_\\_instant\\_\\_*: Data i hora actual \n- *\\_\\_idpSLORedirectURL\\_\\_*: la URL d'inici de sessió únic d'IDP a la qual redireccionar. \n- *\\_\\_issuer\\_\\_*: El valor de l'opció *Custom Issuer* \n- *\\_\\_identifierFormat\\_\\_*: El valor de l'opció *Identifier Format* \n- *\\_\\_nameID\\_\\_*: El NameID rebut des de la resposta de tancament de sessió de IdP \n- *\\_\\_sessionIndex\\_\\_*: El sessionIndex rebut des de la resposta de tancament de sessió de IdP", "SAML_MetadataCertificate_Template": "Plantilla de certificat de metadades", "SAML_Metadata_Certificate_Template_Description": "Les següents variables estan disponibles: \n- *\\_\\_newId\\_\\_*: Cadena d'identificació generada aleatòriament", "SAML_Metadata_Template": "Plantilla de metadades", From 90e1c3efaa45cae1f0ffe672ba69e4fd6e42b526 Mon Sep 17 00:00:00 2001 From: Tasso Date: Fri, 26 Sep 2025 16:14:21 -0300 Subject: [PATCH 19/20] Fix regexp matching --- packages/i18n/src/scripts/check.mts | 58 +++++++++++++++-------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/packages/i18n/src/scripts/check.mts b/packages/i18n/src/scripts/check.mts index 3fa95f5de9909..fa1dfd5e1bdd4 100644 --- a/packages/i18n/src/scripts/check.mts +++ b/packages/i18n/src/scripts/check.mts @@ -290,43 +290,45 @@ const replaceDoubleUnderscorePlaceholders = describeTask('replace-2-underscores' const resource = await readResource(language); for (const { key, plural, translation } of listTranslations(resource)) { - const match = placeholderRegex.exec(translation); - if (!match) continue; + const matches = Array.from(translation.matchAll(placeholderRegex)); + if (!matches.length) continue; + + for (const match of matches) { + if (!identifierRegex.test(match[1])) { + yield { + lint: async (reportError) => { + if (plural) { + reportError('%s: key %o (plural %o) has invalid placeholder %o', language, key, plural, match[0]); + } else { + reportError('%s: key %o has invalid placeholder %o', language, key, match[0]); + } + }, + }; + continue; + } - if (!identifierRegex.test(match[1])) { yield { lint: async (reportError) => { if (plural) { - reportError('%s: key %o (plural %o) has invalid placeholder %o', language, key, plural, match[0]); + reportError('%s: key %o (plural %o) has placeholder %o, should be %o', language, key, plural, match[0], `{{${match[1]}}}`); } else { - reportError('%s: key %o has invalid placeholder %o', language, key, match[0]); + reportError('%s: key %o has placeholder %o, should be %o', language, key, match[0], `{{${match[1]}}}`); } }, + fix: async () => { + const fixedResource = { ...resource }; + if (plural) { + fixedResource[key] = { + ...(fixedResource[key] as Record), + [plural]: translation.replace(placeholderRegex, `{{${match[1]}}}`), + }; + } else { + fixedResource[key] = translation.replace(placeholderRegex, `{{${match[1]}}}`); + } + await writeResource(language, fixedResource); + }, }; - continue; } - - yield { - lint: async (reportError) => { - if (plural) { - reportError('%s: key %o (plural %o) has placeholder %o, should be %o', language, key, plural, match[0], `{{${match[1]}}}`); - } else { - reportError('%s: key %o has placeholder %o, should be %o', language, key, match[0], `{{${match[1]}}}`); - } - }, - fix: async () => { - const fixedResource = { ...resource }; - if (plural) { - fixedResource[key] = { - ...(fixedResource[key] as Record), - [plural]: translation.replace(placeholderRegex, `{{${match[1]}}}`), - }; - } else { - fixedResource[key] = translation.replace(placeholderRegex, `{{${match[1]}}}`); - } - await writeResource(language, fixedResource); - }, - }; } } }); From 79430272d2486f71cfd6339df9e398b6ae5c34bd Mon Sep 17 00:00:00 2001 From: Tasso Date: Fri, 26 Sep 2025 16:24:59 -0300 Subject: [PATCH 20/20] Add type guards --- packages/i18n/src/scripts/common.mts | 8 ++++++-- packages/i18n/src/scripts/replace-sprintf.mts | 18 +++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/i18n/src/scripts/common.mts b/packages/i18n/src/scripts/common.mts index 4ec26c92671e2..5c2970666915f 100644 --- a/packages/i18n/src/scripts/common.mts +++ b/packages/i18n/src/scripts/common.mts @@ -25,8 +25,12 @@ export async function readContent(language: string) { return readFile(join(resourcesDirectory, resourceBasename(language)), 'utf8'); } -export async function readResource(language: string) { - return JSON.parse(await readContent(language)); +export async function readResource(language: string): Promise> { + const result = JSON.parse(await readContent(language)); + if (typeof result !== 'object' || result === null || Array.isArray(result)) { + throw new Error(`Invalid resource format for language "${language}"`); + } + return result; } export async function writeResource(language: string, resource: unknown) { diff --git a/packages/i18n/src/scripts/replace-sprintf.mts b/packages/i18n/src/scripts/replace-sprintf.mts index 1acda7a5b4852..4c9d6ad15f3c6 100644 --- a/packages/i18n/src/scripts/replace-sprintf.mts +++ b/packages/i18n/src/scripts/replace-sprintf.mts @@ -72,10 +72,18 @@ const replaceSprintfParams = async (translationKey: string): Promise => { // Process all translation files for await (const language of languages) { - const translations = await readResource(language); + const resource = await readResource(language); + + if (resource[translationKey]) { + const translation = resource[translationKey]; + + if (typeof translation !== 'string') { + console.warn(`Skipping "${translationKey}" in ${language} translations: not a string`); + continue; + } + + let updatedValue = translation; - if (translations[translationKey]) { - let updatedValue = translations[translationKey]; let paramIndex = 0; // Replace each %s token with a named parameter @@ -84,9 +92,9 @@ const replaceSprintfParams = async (translationKey: string): Promise => { paramIndex++; } - translations[translationKey] = updatedValue; + resource[translationKey] = updatedValue; - await writeResource(language, translations); + await writeResource(language, resource); console.log(`Updated "${translationKey}" in ${language} translations to: "${updatedValue}"`); } }