From 303aca08b63b151d31caac3366bcd19020b4c572 Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 11 Jan 2024 10:49:19 +0200 Subject: [PATCH 1/3] Allow to set the default question title for components fix #7647 (#7648) * Allow to set the default question title for components fix #7647 * Rename questionTItle into defaultQuestionTitle #7647 * Add a description --------- Co-authored-by: RomanTsukanov --- ...n-types-create-composite-question-types.md | 5 +- ...types-create-specialized-question-types.md | 2 + src/question_custom.ts | 39 ++++++++++++++- tests/question_customtests.ts | 50 +++++++++++++++++++ 4 files changed, 94 insertions(+), 2 deletions(-) diff --git a/docs/customize-question-types-create-composite-question-types.md b/docs/customize-question-types-create-composite-question-types.md index 9a0c9f5274..6f79ccd353 100644 --- a/docs/customize-question-types-create-composite-question-types.md +++ b/docs/customize-question-types-create-composite-question-types.md @@ -23,7 +23,9 @@ Survey.ComponentCollection.Instance.add({ // A unique name; must use lowercase name: "fullname", // A display name used in the Toolbox - title: "Full Name", + title: "Full Name", + // A default title for questions created with this question type + defaultQuestionTitle: "Enter your full name:", // An array of JSON schemas that configure the nested questions elementsJSON: [ { type: "text", name: "firstName", title: "First Name", isRequired: true }, @@ -64,6 +66,7 @@ For example, the Full Name composite question from the previous topic may includ Survey.ComponentCollection.Instance.add({ name: "fullname", title: "Full Name", + defaultQuestionTitle: "Enter your full name:", elementsJSON: [ { type: "text", name: "firstName", title: "First Name", isRequired: true }, // Optional question, hidden by default diff --git a/docs/customize-question-types-create-specialized-question-types.md b/docs/customize-question-types-create-specialized-question-types.md index 73f2cca446..21c74323b4 100644 --- a/docs/customize-question-types-create-specialized-question-types.md +++ b/docs/customize-question-types-create-specialized-question-types.md @@ -34,6 +34,8 @@ Survey.ComponentCollection.Instance.add({ name: "country", // A display name used in the Toolbox title: "Country", + // A default title for questions created with this question type + defaultQuestionTitle: "Country", // A JSON schema for the base question type (Dropdown in this case) questionJSON: { "type": "dropdown", diff --git a/src/question_custom.ts b/src/question_custom.ts index 3dc91c5289..622db43a84 100644 --- a/src/question_custom.ts +++ b/src/question_custom.ts @@ -16,6 +16,7 @@ import { Helpers, HashTable } from "./helpers"; import { ItemValue } from "./itemvalue"; import { QuestionTextProcessor } from "./textPreProcessor"; import { CssClassBuilder } from "./utils/cssClassBuilder"; +import { LocalizableString } from "./localizablestring"; /** * An interface used to create custom question types. @@ -50,13 +51,37 @@ export interface ICustomQuestionTypeConfiguration { */ onInit?(): void; /** - * Specifies whether the custom question type is available in the Toolbox and the Add Question menu. + * Specifies whether the custom question type is available in the Toolbox and the Add Question menu in Survey Creator. * * Default value: `true` * * Set this property to `false` if your custom question type is used only to customize Property Grid content and is not meant for a survey. */ showInToolbox?: boolean; + /** + * A default title for questions created with this question type. Survey authors can change the default title in the JSON object or in Survey Creator's Property Grid. + * + * You can specify the question title with a string value or with an object that defines different titles for different locales: + * + * ```js + * import { ComponentCollection } from "survey-core"; + * + * ComponentCollection.Instance.add({ + * // ... + * defaultQuestionTitle: "Default title" + * }); + * // ===== OR ===== + * ComponentCollection.Instance.add({ + * // ... + * defaultQuestionTitle: { + * en: "Default title", + * de: "Standardtitel", + * fr: "Titre par défaut" + * } + * }); + * ``` + */ + defaultQuestionTitle?: any; /** * A function that is called when the custom question is created. Use it to access questions nested within a [composite question type](https://surveyjs.io/form-library/documentation/customize-question-types/create-composite-question-types). * @@ -292,6 +317,9 @@ export class ComponentQuestionJSON { if (!this.json.getDisplayValue) return question.getDisplayValue(keyAsText, value); return (this.json as any).getDisplayValue(question); } + public get defaultQuestionTitle(): any { + return this.json.defaultQuestionTitle; + } public setValueToQuestion(val: any): any { const converter = this.json.valueToQuestion || this.json.setValue; return !!converter ? converter(val): val; @@ -395,10 +423,13 @@ export class ComponentCollection { export abstract class QuestionCustomModelBase extends Question implements ISurveyImpl, ISurveyData, IPanel { + private locQuestionTitle: LocalizableString; constructor(name: string, public customQuestion: ComponentQuestionJSON) { super(name); CustomPropertiesCollection.createProperties(this); SurveyElement.CreateDisabledDesignElements = true; + this.locQuestionTitle = this.createLocalizableString("questionTitle", this); + this.locQuestionTitle.setJson(this.customQuestion.defaultQuestionTitle); this.createWrapper(); SurveyElement.CreateDisabledDesignElements = false; if (!!this.customQuestion) { @@ -420,6 +451,12 @@ export abstract class QuestionCustomModelBase extends Question this.getElement().localeChanged(); } } + protected getDefaultTitle(): string { + if(!this.locQuestionTitle.isEmpty) { + return this.getProcessedText(this.locQuestionTitle.textOrHtml); + } + return super.getDefaultTitle(); + } public addUsedLocales(locales: Array): void { super.addUsedLocales(locales); if(!!this.getElement()) { diff --git a/tests/question_customtests.ts b/tests/question_customtests.ts index 9a2b1a5d02..84e7f47899 100644 --- a/tests/question_customtests.ts +++ b/tests/question_customtests.ts @@ -2680,3 +2680,53 @@ QUnit.test("showPreview & default value, #7640", function (assert) { ComponentCollection.Instance.clear(); }); +QUnit.test("single component: defaultQuestionTitle", function (assert) { + ComponentCollection.Instance.add({ + name: "customtext", + defaultQuestionTitle: { + en: "abc={abc} en", + de: "abc={abc} de", + }, + questionJSON: { + type: "text" + }, + }); + + const survey = new SurveyModel({ + elements: [ + { type: "customtext", name: "q1" } + ] + }); + const q1 = survey.getQuestionByName("q1"); + survey.setVariable("abc", 123); + assert.equal(q1.locTitle.renderedHtml, "abc=123 en", "q1.title en"); + survey.locale = "de"; + assert.equal(q1.locTitle.renderedHtml, "abc=123 de", "q1.title de"); + + ComponentCollection.Instance.clear(); +}); +QUnit.test("composite component: defaultQuestionTitle", function (assert) { + ComponentCollection.Instance.add({ + name: "customtext", + defaultQuestionTitle: { + en: "abc={abc} en", + de: "abc={abc} de", + }, + elementsJSON: { + type: "text" + }, + }); + + const survey = new SurveyModel({ + elements: [ + { type: "customtext", name: "q1" } + ] + }); + const q1 = survey.getQuestionByName("q1"); + survey.setVariable("abc", 123); + assert.equal(q1.locTitle.renderedHtml, "abc=123 en", "q1.title en"); + survey.locale = "de"; + assert.equal(q1.locTitle.renderedHtml, "abc=123 de", "q1.title de"); + + ComponentCollection.Instance.clear(); +}); From dad3a733368dededdcd1c9fe8545de9a94a30fcb Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 11 Jan 2024 10:51:29 +0200 Subject: [PATCH 2/3] Features/7651 each row unique (#7652) * Single matrix: prevent duplicate responses in rows fix #7651 * Translate error string #7651 --- src/error.ts | 11 +++ src/localization/arabic.ts | 15 ++- src/localization/basque.ts | 15 ++- src/localization/bulgarian.ts | 15 ++- src/localization/catalan.ts | 15 ++- src/localization/croatian.ts | 15 ++- src/localization/czech.ts | 15 ++- src/localization/danish.ts | 15 ++- src/localization/dutch.ts | 15 ++- src/localization/english.ts | 1 + src/localization/estonian.ts | 15 ++- src/localization/finnish.ts | 15 ++- src/localization/french.ts | 15 ++- src/localization/georgian.ts | 15 ++- src/localization/german.ts | 15 ++- src/localization/greek.ts | 15 ++- src/localization/hebrew.ts | 15 ++- src/localization/hindi.ts | 15 ++- src/localization/hungarian.ts | 15 ++- src/localization/icelandic.ts | 15 ++- src/localization/indonesian.ts | 15 ++- src/localization/italian.ts | 15 ++- src/localization/japanese.ts | 15 ++- src/localization/kazakh.ts | 15 ++- src/localization/korean.ts | 15 ++- src/localization/latvian.ts | 15 ++- src/localization/lithuanian.ts | 15 ++- src/localization/macedonian.ts | 15 ++- src/localization/malay.ts | 15 ++- src/localization/norwegian.ts | 15 ++- src/localization/persian.ts | 15 ++- src/localization/polish.ts | 15 ++- src/localization/portuguese-br.ts | 15 ++- src/localization/portuguese.ts | 15 ++- src/localization/romanian.ts | 15 ++- src/localization/russian.ts | 15 ++- src/localization/serbian.ts | 15 ++- src/localization/simplified-chinese.ts | 15 ++- src/localization/slovak.ts | 15 ++- src/localization/spanish.ts | 15 ++- src/localization/swahili.ts | 15 ++- src/localization/swedish.ts | 15 ++- src/localization/telugu.ts | 15 ++- src/localization/thai.ts | 15 ++- src/localization/traditional-chinese.ts | 15 ++- src/localization/turkish.ts | 15 ++- src/localization/ukrainian.ts | 15 ++- src/localization/urdu.ts | 15 ++- src/localization/vietnamese.ts | 15 ++- src/localization/welsh.ts | 15 ++- src/question_matrix.ts | 87 +++++++++++++----- tests/question_matrix_tests.ts | 117 ++++++++++++++++++++++++ tests/surveyquestiontests.ts | 82 ----------------- 53 files changed, 818 insertions(+), 200 deletions(-) diff --git a/src/error.ts b/src/error.ts index 2c7f7ca755..c9906f8af8 100644 --- a/src/error.ts +++ b/src/error.ts @@ -128,6 +128,17 @@ export class RequiredInAllRowsError extends SurveyError { return this.getLocalizationString("requiredInAllRowsError"); } } +export class EachRowUniqueError extends SurveyError { + constructor(public text: string, errorOwner: ISurveyErrorOwner = null) { + super(text, errorOwner); + } + public getErrorType(): string { + return "eachrowuniqueeerror"; + } + protected getDefaultText(): string { + return this.getLocalizationString("eachRowUniqueError"); + } +} export class MinRowCountError extends SurveyError { constructor( public minRowCount: number, diff --git a/src/localization/arabic.ts b/src/localization/arabic.ts index ec5aec81ab..00f3de6652 100644 --- a/src/localization/arabic.ts +++ b/src/localization/arabic.ts @@ -25,6 +25,7 @@ export var arabicSurveyStrings = { requiredError: ".يرجى الإجابة على السؤال", requiredErrorInPanel: "الرجاء الإجابة على سؤال واحد على الأقل.", requiredInAllRowsError: "يرجى الإجابة على الأسئلة في جميع الصفوف", + eachRowUniqueError: "يجب أن يكون لكل صف قيمة فريدة.", numericError: "يجب أن تكون القيمة رقمية.", minError: "يجب ألا تقل القيمة عن {0}", maxError: "يجب ألا تزيد القيمة عن {0}", @@ -42,6 +43,7 @@ export var arabicSurveyStrings = { urlRequestError: "طلب إرجاع خطأ '{0}'. {1}ا", urlGetChoicesError: "عاد طلب البيانات فارغ أو 'المسار' غير صحيح ", exceedMaxSize: "ينبغي ألا يتجاوز حجم الملف {0}ا", + noUploadFilesHandler: "لا يمكن تحميل الملفات. يرجى إضافة معالج لحدث \"onUploadFiles\".", otherRequiredError: "الرجاء إدخال قيمة أخرى", uploadingFile: "تحميل الملف الخاص بك. يرجى الانتظار عدة ثوان والمحاولة لاحقًا", loadingFile: "جار التحميل...", @@ -56,6 +58,8 @@ export var arabicSurveyStrings = { emptyRowsText: "لا توجد صفوف.", addPanel: "اضف جديد", removePanel: "إزالة", + showDetails: "اظهر التفاصيل", + hideDetails: "إخفاء التفاصيل", choices_Item: "بند", matrix_column: "عمود", matrix_row: "صف", @@ -94,7 +98,9 @@ export var arabicSurveyStrings = { more: "أكثر", tagboxDoneButtonCaption: "موافق", selectToRankEmptyRankedAreaText: "يتم ترتيب جميع الخيارات", - selectToRankEmptyUnrankedAreaText: "قم بسحب وإسقاط الخيارات هنا لترتيبها" + selectToRankEmptyUnrankedAreaText: "قم بسحب وإسقاط الخيارات هنا لترتيبها", + ok: "موافق", + cancel: "إلغاء الأمر" }; surveyLocalization.locales["ar"] = arabicSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["ar"] = "العربية"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "قم بسحب وإسقاط الخيارات هنا لترتيبها"// takePhotoCaption: "Take Photo" => "التقاط صورة" // photoPlaceholder: "Click the button below to take a photo using the camera." => "انقر فوق الزر أدناه لالتقاط صورة باستخدام الكاميرا." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "قم بسحب ملف وإفلاته أو تحديده لتحميله أو التقاط صورة باستخدام الكاميرا." -// replaceFileCaption: "Replace file" => "استبدال الملف" \ No newline at end of file +// replaceFileCaption: "Replace file" => "استبدال الملف"// eachRowUniqueError: "Each row must have a unique value." => "يجب أن يكون لكل صف قيمة فريدة." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "لا يمكن تحميل الملفات. يرجى إضافة معالج لحدث \"onUploadFiles\"." +// showDetails: "Show Details" => "اظهر التفاصيل" +// hideDetails: "Hide Details" => "إخفاء التفاصيل" +// ok: "OK" => "موافق" +// cancel: "Cancel" => "إلغاء الأمر" \ No newline at end of file diff --git a/src/localization/basque.ts b/src/localization/basque.ts index f2520707e1..2c963ed499 100644 --- a/src/localization/basque.ts +++ b/src/localization/basque.ts @@ -25,6 +25,7 @@ export var basqueSurveyStrings = { requiredError: "Mesedez, galdera erantzun.", requiredErrorInPanel: "Mesedez, gutxienez galdera bat erantzun.", requiredInAllRowsError: "Mesedez, errenkadako galdera guztiak erantzun.", + eachRowUniqueError: "Ilara bakoitzak balio bakarra izan behar du.", numericError: "Estimazioa zenbakizkoa izan behar du.", minError: "Balioa ez da {0} baino txikiagoa izan behar", maxError: "Balioa ez da {0} baino handiagoa izan behar", @@ -42,6 +43,7 @@ export var basqueSurveyStrings = { urlRequestError: "Eskaerak '{0}' errorea itzuli du. {1}", urlGetChoicesError: "La solicitud regresó vacío de data o la propiedad 'trayectoria' no es correcta", exceedMaxSize: "Fitxategiaren tamaina ez da {0} baino handiagoa izan behar.", + noUploadFilesHandler: "Artxiboak ezin dira kargatu. Gaineratu kontrolatzaile bat 'onUploadFiles' ekitaldirako.", otherRequiredError: "Mesedez, beste estimazioa gehitu.", uploadingFile: "Zure fitxategia igotzen ari da. Mesedez, segundo batzuk itxaron eta saiatu berriro.", loadingFile: "Kargatzen...", @@ -56,6 +58,8 @@ export var basqueSurveyStrings = { emptyRowsText: "Ez dago errenkadarik.", addPanel: "Berria gehitu", removePanel: "Kendu", + showDetails: "Xehetasunak erakutsi", + hideDetails: "Xehetasunak ezkutatu", choices_Item: "artikulua", matrix_column: "Zutabea", matrix_row: "Errenkada", @@ -94,7 +98,9 @@ export var basqueSurveyStrings = { more: "Gehiago", tagboxDoneButtonCaption: "Ados", selectToRankEmptyRankedAreaText: "Aukera guztiak sailkatuta daude", - selectToRankEmptyUnrankedAreaText: "Arrastaka eta askatzen ditu hemen sailkatzeko" + selectToRankEmptyUnrankedAreaText: "Arrastaka eta askatzen ditu hemen sailkatzeko", + ok: "Ados", + cancel: "Ezeztatu" }; surveyLocalization.locales["eu"] = basqueSurveyStrings; @@ -116,4 +122,9 @@ surveyLocalization.localeNames["eu"] = "Euskara"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Arrastaka eta askatzen ditu hemen sailkatzeko"// takePhotoCaption: "Take Photo" => "Argazkia hartu" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Egin klik beheko botoian, kamerarekin argazki bat hartzeko." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Arrastatu eta askatu artxibo bat kamerarekin argazki bat kargatzeko edo hartzeko." -// replaceFileCaption: "Replace file" => "Artxiboa ordeztu" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Artxiboa ordeztu"// eachRowUniqueError: "Each row must have a unique value." => "Ilara bakoitzak balio bakarra izan behar du." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Artxiboak ezin dira kargatu. Gaineratu kontrolatzaile bat 'onUploadFiles' ekitaldirako." +// showDetails: "Show Details" => "Xehetasunak erakutsi" +// hideDetails: "Hide Details" => "Xehetasunak ezkutatu" +// ok: "OK" => "Ados" +// cancel: "Cancel" => "Ezeztatu" \ No newline at end of file diff --git a/src/localization/bulgarian.ts b/src/localization/bulgarian.ts index 57a26d8a1a..f60c4550fd 100644 --- a/src/localization/bulgarian.ts +++ b/src/localization/bulgarian.ts @@ -25,6 +25,7 @@ export var bulgarianStrings = { requiredError: "Моля, отговорете на следния въпрос.", requiredErrorInPanel: "Моля, отговорете поне на един от въпросите.", requiredInAllRowsError: "Моля, отговорете на въпросите на всички редове.", + eachRowUniqueError: "Всеки ред трябва да има уникална стойност.", numericError: "Стойността следва да бъде число.", minError: "Стойността не трябва да бъде по-малка от {0}", maxError: "Стойността не трябва да бъде по-голяма от {0}", @@ -42,6 +43,7 @@ export var bulgarianStrings = { urlRequestError: "Заявката води до грешка '{0}'. {1}", urlGetChoicesError: "Заявката не връща данни или частта 'path' (път до търсения ресурс на сървъра) е неправилно зададена", exceedMaxSize: "Размерът на файла следва да не превишава {0}.", + noUploadFilesHandler: "Файловете не могат да бъдат качени. Моля, добавете манипулатор за събитието \"onUploadFiles\".", otherRequiredError: "Моля, въведете другата стойност.", uploadingFile: "Вашит файл се зарежда на сървъра. Моля, изчакайте няколко секунди и тогава опитвайте отново.", loadingFile: "Зареждане...", @@ -56,6 +58,8 @@ export var bulgarianStrings = { emptyRowsText: "Няма редове.", addPanel: "Добавяне на панел", removePanel: "Премахване на панел", + showDetails: "Показване на подробни данни", + hideDetails: "Скрий подробните данни", choices_Item: "елемент", matrix_column: "Колона", matrix_row: "Ред", @@ -94,7 +98,9 @@ export var bulgarianStrings = { more: "Още", tagboxDoneButtonCaption: "Добре", selectToRankEmptyRankedAreaText: "Всички възможности за избор са класирани", - selectToRankEmptyUnrankedAreaText: "Плъзнете и пуснете опции тук, за да ги класирате" + selectToRankEmptyUnrankedAreaText: "Плъзнете и пуснете опции тук, за да ги класирате", + ok: "Добре", + cancel: "Отмени" }; surveyLocalization.locales["bg"] = bulgarianStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["bg"] = "български"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Плъзнете и пуснете опции тук, за да ги класирате"// takePhotoCaption: "Take Photo" => "Направете снимка" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Кликнете върху бутона по-долу, за да направите снимка с помощта на камерата." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Плъзнете и пуснете или изберете файл за качване или правене на снимка с помощта на камерата." -// replaceFileCaption: "Replace file" => "Заместване на файл" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Заместване на файл"// eachRowUniqueError: "Each row must have a unique value." => "Всеки ред трябва да има уникална стойност." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Файловете не могат да бъдат качени. Моля, добавете манипулатор за събитието \"onUploadFiles\"." +// showDetails: "Show Details" => "Показване на подробни данни" +// hideDetails: "Hide Details" => "Скрий подробните данни" +// ok: "OK" => "Добре" +// cancel: "Cancel" => "Отмени" \ No newline at end of file diff --git a/src/localization/catalan.ts b/src/localization/catalan.ts index b8494cac1e..b5e0e82392 100644 --- a/src/localization/catalan.ts +++ b/src/localization/catalan.ts @@ -25,6 +25,7 @@ export var catalanSurveyStrings = { requiredError: "Si us plau contesti la pregunta.", requiredErrorInPanel: "Resposta necessària: respondre almenys una pregunta.", requiredInAllRowsError: "Si us plau contesti les preguntes de cada filera.", + eachRowUniqueError: "Cada fila ha de tenir un valor únic.", numericError: "L'estimació ha de ser numèrica.", minError: "El valor no ha de ser inferior a {0}", maxError: "El valor no ha de ser superior a {0}", @@ -42,6 +43,7 @@ export var catalanSurveyStrings = { urlRequestError: "La sol·licitud va tornar error '{0}'. {1}", urlGetChoicesError: "La sol·licitud va tornar buida de dates o la propietat 'trajectòria' no és correcta", exceedMaxSize: "La mida de l'arxiu no pot excedir {0}.", + noUploadFilesHandler: "No es poden carregar fitxers. Afegiu un controlador per a l'esdeveniment 'onUploadFiles'.", otherRequiredError: "Si us plau afegiu l'altra estimació.", uploadingFile: "El seu arxiu s'està pujant. Si us plau esperi uns segons i intenteu-ho de nou.", loadingFile: "Càrrega...", @@ -56,6 +58,8 @@ export var catalanSurveyStrings = { emptyRowsText: "No hi ha files.", addPanel: "Afegeix un nou", removePanel: "Treure", + showDetails: "Mostra els detalls", + hideDetails: "Amaga els detalls", choices_Item: "ítem", matrix_column: "Columna", matrix_row: "Filera", @@ -94,7 +98,9 @@ export var catalanSurveyStrings = { more: "Més", tagboxDoneButtonCaption: "D'ACORD", selectToRankEmptyRankedAreaText: "Totes les opcions estan classificades", - selectToRankEmptyUnrankedAreaText: "Arrossegueu i deixeu anar les opcions aquí per classificar-les" + selectToRankEmptyUnrankedAreaText: "Arrossegueu i deixeu anar les opcions aquí per classificar-les", + ok: "D'ACORD", + cancel: "Cancel·lar" }; surveyLocalization.locales["ca"] = catalanSurveyStrings; @@ -163,4 +169,9 @@ surveyLocalization.localeNames["ca"] = "català"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Arrossegueu i deixeu anar les opcions aquí per classificar-les"// takePhotoCaption: "Take Photo" => "Fer foto" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Feu clic al botó següent per fer una foto amb la càmera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Arrossegueu i deixeu anar o seleccioneu un fitxer per penjar-lo o fer-ne una foto amb la càmera." -// replaceFileCaption: "Replace file" => "Substitueix el fitxer" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Substitueix el fitxer"// eachRowUniqueError: "Each row must have a unique value." => "Cada fila ha de tenir un valor únic." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "No es poden carregar fitxers. Afegiu un controlador per a l'esdeveniment 'onUploadFiles'." +// showDetails: "Show Details" => "Mostra els detalls" +// hideDetails: "Hide Details" => "Amaga els detalls" +// ok: "OK" => "D'ACORD" +// cancel: "Cancel" => "Cancel·lar" \ No newline at end of file diff --git a/src/localization/croatian.ts b/src/localization/croatian.ts index 18f43221ce..ec3214530e 100644 --- a/src/localization/croatian.ts +++ b/src/localization/croatian.ts @@ -25,6 +25,7 @@ export var croatianStrings = { requiredError: "Molim vas odgovorite na pitanje.", requiredErrorInPanel: "Molim vas odgovorite na barem jedno pitanje.", requiredInAllRowsError: "Odgovorite na pitanja u svim redovima.", + eachRowUniqueError: "Svaki redak mora imati jedinstvenu vrijednost.", numericError: "Vrijednost bi trebala biti brojčana.", minError: "Vrijednost ne smije biti manja od {0}", maxError: "Vrijednost ne smije biti veća od {0}", @@ -42,6 +43,7 @@ export var croatianStrings = { urlRequestError: "Zahtjev vratio pogrešku '{0}'. {1}", urlGetChoicesError: "Zahtjev je vratio prazne podatke ili je 'path' svojstvo netočna.", exceedMaxSize: "Veličina datoteke ne smije prelaziti {0}.", + noUploadFilesHandler: "Datoteke se ne mogu prenijeti. Dodajte rukovatelja za događaj 'onUploadFiles'.", otherRequiredError: "Unesite drugu vrijednost.", uploadingFile: "Vaša datoteka se prenosi. Pričekajte nekoliko sekundi i pokušajte ponovno.", loadingFile: "Učitavanje...", @@ -56,6 +58,8 @@ export var croatianStrings = { emptyRowsText: "Nema redova.", addPanel: "Dodavanje novih", removePanel: "Ukloniti", + showDetails: "Pokaži detalje", + hideDetails: "Sakrij detalje", choices_Item: "stavku", matrix_column: "Stupca", matrix_row: "Redak", @@ -94,7 +98,9 @@ export var croatianStrings = { more: "Više", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Svi izbori su rangirani", - selectToRankEmptyUnrankedAreaText: "Ovdje povucite i ispustite odabire da biste ih rangirali" + selectToRankEmptyUnrankedAreaText: "Ovdje povucite i ispustite odabire da biste ih rangirali", + ok: "OK", + cancel: "Otkazati" }; surveyLocalization.locales["hr"] = croatianStrings; @@ -121,4 +127,9 @@ surveyLocalization.localeNames["hr"] = "hrvatski"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Ovdje povucite i ispustite odabire da biste ih rangirali"// takePhotoCaption: "Take Photo" => "Snimi fotografiju" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Kliknite donji gumb da biste snimili fotografiju pomoću kamere." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Povucite i ispustite ili odaberite datoteku za prijenos ili snimanje fotografije pomoću kamere." -// replaceFileCaption: "Replace file" => "Zamijeni datoteku" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Zamijeni datoteku"// eachRowUniqueError: "Each row must have a unique value." => "Svaki redak mora imati jedinstvenu vrijednost." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Datoteke se ne mogu prenijeti. Dodajte rukovatelja za događaj 'onUploadFiles'." +// showDetails: "Show Details" => "Pokaži detalje" +// hideDetails: "Hide Details" => "Sakrij detalje" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Otkazati" \ No newline at end of file diff --git a/src/localization/czech.ts b/src/localization/czech.ts index 659ffe6847..25d8b34c2b 100644 --- a/src/localization/czech.ts +++ b/src/localization/czech.ts @@ -25,6 +25,7 @@ export var czechSurveyStrings = { requiredError: "Odpovězte prosím na otázku.", requiredErrorInPanel: "Odpovězte prosím alespoň jednu otázku.", requiredInAllRowsError: "Odpovězte prosím na všechny otázky.", + eachRowUniqueError: "Každý řádek musí mít jedinečnou hodnotu.", numericError: "V tomto poli lze zadat pouze čísla.", minError: "Hodnota by neměla být menší než {0}", maxError: "Hodnota by neměla být větší než {0}", @@ -42,6 +43,7 @@ export var czechSurveyStrings = { urlRequestError: "Požadavek vrátil chybu '{0}'. {1}", urlGetChoicesError: "Požadavek nevrátil data nebo je neplatná vlastnost 'path'", exceedMaxSize: "Velikost souboru by neměla být větší než {0}.", + noUploadFilesHandler: "Soubory nelze nahrát. Přidejte obslužnou rutinu pro událost 'onUploadFiles'.", otherRequiredError: "Zadejte prosím jinou hodnotu.", uploadingFile: "Váš soubor se nahrává. Zkuste to prosím za několik sekund.", loadingFile: "Načítání...", @@ -56,6 +58,8 @@ export var czechSurveyStrings = { emptyRowsText: "Neexistují žádné řádky.", addPanel: "Přidat nový", removePanel: "Odstranit", + showDetails: "Zobrazit podrobnosti", + hideDetails: "Skrýt podrobnosti", choices_Item: "položka", matrix_column: "Sloupec", matrix_row: "Řádek", @@ -94,7 +98,9 @@ export var czechSurveyStrings = { more: "Více", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Všechny možnosti jsou seřazeny", - selectToRankEmptyUnrankedAreaText: "Přetáhněte volby zde a seřaďte je" + selectToRankEmptyUnrankedAreaText: "Přetáhněte volby zde a seřaďte je", + ok: "OK", + cancel: "Zrušit" }; surveyLocalization.locales["cs"] = czechSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["cs"] = "čeština"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Přetáhněte volby zde a seřaďte je"// takePhotoCaption: "Take Photo" => "Pořídit fotografii" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Kliknutím na tlačítko níže pořídíte fotografii pomocí fotoaparátu." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Přetáhněte nebo vyberte soubor, který chcete nahrát nebo pořiďte fotografii pomocí fotoaparátu." -// replaceFileCaption: "Replace file" => "Nahradit soubor" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Nahradit soubor"// eachRowUniqueError: "Each row must have a unique value." => "Každý řádek musí mít jedinečnou hodnotu." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Soubory nelze nahrát. Přidejte obslužnou rutinu pro událost 'onUploadFiles'." +// showDetails: "Show Details" => "Zobrazit podrobnosti" +// hideDetails: "Hide Details" => "Skrýt podrobnosti" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Zrušit" \ No newline at end of file diff --git a/src/localization/danish.ts b/src/localization/danish.ts index 46389be108..8adab4680c 100644 --- a/src/localization/danish.ts +++ b/src/localization/danish.ts @@ -25,6 +25,7 @@ export var danishSurveyStrings = { requiredError: "Besvar venligst spørgsmålet.", requiredErrorInPanel: "Besvar venligst mindst ét spørgsmål.", requiredInAllRowsError: "Besvar venligst spørgsmål i alle rækker.", + eachRowUniqueError: "Hver række skal have en entydig værdi.", numericError: "Angiv et tal.", minError: "Værdien bør ikke være mindre end {0}", maxError: "Værdien bør ikke være større end {0}", @@ -42,6 +43,7 @@ export var danishSurveyStrings = { urlRequestError: "Forespørgslen returnerede fejlen '{0}'. {1}", urlGetChoicesError: "Forespørgslen returnerede ingen data eller 'path' parameteren er forkert", exceedMaxSize: "Filstørrelsen må ikke overstige {0}.", + noUploadFilesHandler: "Filer kan ikke uploades. Tilføj en handler for hændelsen 'onUploadFiles'.", otherRequiredError: "Angiv en værdi for dit valgfrie svar.", uploadingFile: "Din fil bliver uploadet. Vent nogle sekunder og prøv eventuelt igen.", loadingFile: "Indlæser...", @@ -56,6 +58,8 @@ export var danishSurveyStrings = { emptyRowsText: "Der er ingen rækker.", addPanel: "Tilføj ny", removePanel: "Fjern", + showDetails: "Vis detaljer", + hideDetails: "Skjul detaljer", choices_Item: "valg", matrix_column: "Kolonne", matrix_row: "Række", @@ -94,7 +98,9 @@ export var danishSurveyStrings = { more: "Mere", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Alle valg er rangeret", - selectToRankEmptyUnrankedAreaText: "Træk og slip valg her for at rangere dem" + selectToRankEmptyUnrankedAreaText: "Træk og slip valg her for at rangere dem", + ok: "OK", + cancel: "Aflyse" }; surveyLocalization.locales["da"] = danishSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["da"] = "dansk"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Træk og slip valg her for at rangere dem"// takePhotoCaption: "Take Photo" => "Tag billede" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Klik på knappen nedenfor for at tage et billede med kameraet." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Træk og slip, eller vælg en fil, der skal uploades, eller tag et billede med kameraet." -// replaceFileCaption: "Replace file" => "Erstat fil" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Erstat fil"// eachRowUniqueError: "Each row must have a unique value." => "Hver række skal have en entydig værdi." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Filer kan ikke uploades. Tilføj en handler for hændelsen 'onUploadFiles'." +// showDetails: "Show Details" => "Vis detaljer" +// hideDetails: "Hide Details" => "Skjul detaljer" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Aflyse" \ No newline at end of file diff --git a/src/localization/dutch.ts b/src/localization/dutch.ts index 57ed74ca53..69919f1fb5 100644 --- a/src/localization/dutch.ts +++ b/src/localization/dutch.ts @@ -25,6 +25,7 @@ export var dutchSurveyStrings = { requiredError: "Dit is een vereiste vraag", requiredErrorInPanel: "Gelieve ten minste een vraag te beantwoorden.", requiredInAllRowsError: "Deze vraag vereist één antwoord per rij", + eachRowUniqueError: "Elke rij moet een unieke waarde hebben.", numericError: "Het antwoord moet een getal zijn", minError: "De waarde mag niet lager zijn dan {0}", maxError: "De waarde mag niet groter zijn dan {0}", @@ -42,6 +43,7 @@ export var dutchSurveyStrings = { urlRequestError: "De vraag keerde een fout terug '{0}'. {1}", urlGetChoicesError: "De vraag gaf een leeg antwoord terug of de 'pad' eigenschap is niet correct", exceedMaxSize: "De grootte van het bestand mag niet groter zijn dan {0}", + noUploadFilesHandler: "Bestanden kunnen niet worden geüpload. Voeg een handler toe voor de gebeurtenis 'onUploadFiles'.", otherRequiredError: "Vul het veld 'Anders, nl.' in", uploadingFile: "Uw bestand wordt geüpload. Gelieve enkele seconden te wachten en opnieuw te proberen.", loadingFile: "Laden...", @@ -56,6 +58,8 @@ export var dutchSurveyStrings = { emptyRowsText: "Er zijn geen rijen.", addPanel: "Nieuwe toevoegen", removePanel: "Verwijder", + showDetails: "Toon details", + hideDetails: "Verberg details", choices_Item: "onderwerp", matrix_column: "Kolom", matrix_row: "Rij", @@ -94,7 +98,9 @@ export var dutchSurveyStrings = { more: "Meer", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Alle keuzes zijn gerangschikt", - selectToRankEmptyUnrankedAreaText: "Drag en drop keuzes hier om ze te rangschikken" + selectToRankEmptyUnrankedAreaText: "Drag en drop keuzes hier om ze te rangschikken", + ok: "OK", + cancel: "Annuleren" }; surveyLocalization.locales["nl"] = dutchSurveyStrings; @@ -121,4 +127,9 @@ surveyLocalization.localeNames["nl"] = "nederlands"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Drag en drop keuzes hier om ze te rangschikken"// takePhotoCaption: "Take Photo" => "Foto maken" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Klik op de onderstaande knop om een foto te maken met de camera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Sleep en zet neer of selecteer een bestand om te uploaden of maak een foto met de camera." -// replaceFileCaption: "Replace file" => "Bestand vervangen" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Bestand vervangen"// eachRowUniqueError: "Each row must have a unique value." => "Elke rij moet een unieke waarde hebben." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Bestanden kunnen niet worden geüpload. Voeg een handler toe voor de gebeurtenis 'onUploadFiles'." +// showDetails: "Show Details" => "Toon details" +// hideDetails: "Hide Details" => "Verberg details" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Annuleren" \ No newline at end of file diff --git a/src/localization/english.ts b/src/localization/english.ts index 7a496b637a..bdb2f8a8fb 100644 --- a/src/localization/english.ts +++ b/src/localization/english.ts @@ -27,6 +27,7 @@ export var englishStrings = { requiredError: "Response required.", requiredErrorInPanel: "Response required: answer at least one question.", requiredInAllRowsError: "Response required: answer questions in all rows.", + eachRowUniqueError: "Each row must have a unique value.", numericError: "The value should be numeric.", minError: "The value should not be less than {0}", maxError: "The value should not be greater than {0}", diff --git a/src/localization/estonian.ts b/src/localization/estonian.ts index bbe2c672b5..3c6bf441df 100644 --- a/src/localization/estonian.ts +++ b/src/localization/estonian.ts @@ -25,6 +25,7 @@ export var estonianSurveyStrings = { requiredError: "Palun vasta küsimusele.", requiredErrorInPanel: "Palun vasta vähemalt ühele küsimusele.", requiredInAllRowsError: "Palun anna vastus igal real.", + eachRowUniqueError: "Igal real peab olema kordumatu väärtus.", numericError: "See peaks olema numbriline väärtus.", minError: "Väärtus ei tohiks olla väiksem kui {0}", maxError: "Väärtus ei tohiks olla suurem kui {0}", @@ -42,6 +43,7 @@ export var estonianSurveyStrings = { urlRequestError: "Taotlus tagastas vea „{0}”. {1}", urlGetChoicesError: "Taotlus tagastas tühjad andmed või atribuut 'path' on vale", exceedMaxSize: "Faili suurus ei tohi ületada {0}.", + noUploadFilesHandler: "Faile ei saa üles laadida. Palun lisage sündmuse \"onUploadFiles\" jaoks käitleja.", otherRequiredError: "Sisesta palun muu vastus.", uploadingFile: "Sinu fail laeb üles. Palun oota mõned sekundid ning proovi seejärel uuesti.", loadingFile: "Laen...", @@ -56,6 +58,8 @@ export var estonianSurveyStrings = { emptyRowsText: "Ridu pole.", addPanel: "Lisa uus", removePanel: "Eemalda", + showDetails: "Näita detaile", + hideDetails: "Peida üksikasjad", choices_Item: "üksus", matrix_column: "Veerg", matrix_row: "Rida", @@ -94,7 +98,9 @@ export var estonianSurveyStrings = { more: "Rohkem", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Kõik valikud on järjestatud", - selectToRankEmptyUnrankedAreaText: "Lohistage valikuid siia, et neid järjestada" + selectToRankEmptyUnrankedAreaText: "Lohistage valikuid siia, et neid järjestada", + ok: "OK", + cancel: "Tühistama" }; surveyLocalization.locales["et"] = estonianSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["et"] = "eesti keel"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Lohistage valikuid siia, et neid järjestada"// takePhotoCaption: "Take Photo" => "Pildistamine" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Kaamera abil pildistamiseks klõpsake allolevat nuppu." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Pukseerige või valige üleslaaditav fail või pildistage seda kaamera abil." -// replaceFileCaption: "Replace file" => "Asenda fail" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Asenda fail"// eachRowUniqueError: "Each row must have a unique value." => "Igal real peab olema kordumatu väärtus." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Faile ei saa üles laadida. Palun lisage sündmuse \"onUploadFiles\" jaoks käitleja." +// showDetails: "Show Details" => "Näita detaile" +// hideDetails: "Hide Details" => "Peida üksikasjad" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Tühistama" \ No newline at end of file diff --git a/src/localization/finnish.ts b/src/localization/finnish.ts index 17c4ac8b02..10883d4a8d 100644 --- a/src/localization/finnish.ts +++ b/src/localization/finnish.ts @@ -25,6 +25,7 @@ export var finnishSurveyStrings = { requiredError: "Vastaa kysymykseen, kiitos.", requiredErrorInPanel: "Vastaa ainakin yhteen kysymykseen.", requiredInAllRowsError: "Vastaa kysymyksiin kaikilla riveillä.", + eachRowUniqueError: "Jokaisella rivillä on oltava yksilöllinen arvo.", numericError: "Arvon tulee olla numeerinen.", minError: "Arvo ei saa olla pienempi kuin {0}", maxError: "Arvo ei saa olla suurempi kuin {0}", @@ -42,6 +43,7 @@ export var finnishSurveyStrings = { urlRequestError: "Pyyntö palautti virheen {0}. {1}", urlGetChoicesError: "Pyyntö palautti tyhjän tiedoston tai 'path'-asetus on väärä", exceedMaxSize: "Tiedoston koko ei saa olla suurempi kuin {0}.", + noUploadFilesHandler: "Tiedostoja ei voi ladata. Lisää käsittelijä onUploadFiles-tapahtumalle.", otherRequiredError: "Tarkenna vastaustasi tekstikenttään.", uploadingFile: "Tiedostoa lähetetään. Odota muutama sekunti ja yritä uudelleen.", loadingFile: "Ladataan...", @@ -56,6 +58,8 @@ export var finnishSurveyStrings = { emptyRowsText: "Ei rivejä", addPanel: "Lisää uusi", removePanel: "Poista", + showDetails: "Näytä tiedot", + hideDetails: "Piilota tiedot", choices_Item: "kohde", matrix_column: "Sarake", matrix_row: "Rivi", @@ -94,7 +98,9 @@ export var finnishSurveyStrings = { more: "Enemmän", tagboxDoneButtonCaption: "OKEI", selectToRankEmptyRankedAreaText: "Kaikki valinnat asetetaan paremmuusjärjestykseen", - selectToRankEmptyUnrankedAreaText: "Vedä ja pudota vaihtoehdot tähän luokitellaksesi ne" + selectToRankEmptyUnrankedAreaText: "Vedä ja pudota vaihtoehdot tähän luokitellaksesi ne", + ok: "OKEI", + cancel: "Perua" }; surveyLocalization.locales["fi"] = finnishSurveyStrings; @@ -111,4 +117,9 @@ surveyLocalization.localeNames["fi"] = "suomi"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Vedä ja pudota vaihtoehdot tähän luokitellaksesi ne"// takePhotoCaption: "Take Photo" => "Ota valokuva" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Napsauta alla olevaa painiketta ottaaksesi valokuvan kameralla." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Vedä ja pudota tai valitse ladattava tiedosto tai ota valokuva kameralla." -// replaceFileCaption: "Replace file" => "Korvaa tiedosto" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Korvaa tiedosto"// eachRowUniqueError: "Each row must have a unique value." => "Jokaisella rivillä on oltava yksilöllinen arvo." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Tiedostoja ei voi ladata. Lisää käsittelijä onUploadFiles-tapahtumalle." +// showDetails: "Show Details" => "Näytä tiedot" +// hideDetails: "Hide Details" => "Piilota tiedot" +// ok: "OK" => "OKEI" +// cancel: "Cancel" => "Perua" \ No newline at end of file diff --git a/src/localization/french.ts b/src/localization/french.ts index d6a2c3aa11..5868a98f3d 100644 --- a/src/localization/french.ts +++ b/src/localization/french.ts @@ -25,6 +25,7 @@ export var frenchSurveyStrings = { requiredError: "La réponse à cette question est obligatoire.", requiredErrorInPanel: "Merci de répondre au moins à une question.", requiredInAllRowsError: "Toutes les lignes sont obligatoires", + eachRowUniqueError: "Chaque ligne doit avoir une valeur unique.", numericError: "La réponse doit être un nombre.", minError: "La valeur ne doit pas être inférieure à {0}", maxError: "La valeur ne doit pas être supérieure à {0}", @@ -42,6 +43,7 @@ export var frenchSurveyStrings = { urlRequestError: "La requête a renvoyé une erreur '{0}'. {1}", urlGetChoicesError: "La requête a renvoyé des données vides ou la propriété 'path' est incorrecte", exceedMaxSize: "La taille du fichier ne doit pas excéder {0}.", + noUploadFilesHandler: "Les fichiers ne peuvent pas être téléchargés. Veuillez ajouter un gestionnaire pour l’événement 'onUploadFiles'.", otherRequiredError: "Merci de préciser le champ 'Autre'.", uploadingFile: "Votre fichier est en cours de chargement. Merci d'attendre quelques secondes et de réessayer.", loadingFile: "Chargement...", @@ -56,6 +58,8 @@ export var frenchSurveyStrings = { emptyRowsText: "Il n'y a pas de lignes.", addPanel: "Ajouter", removePanel: "Supprimer", + showDetails: "Afficher les détails", + hideDetails: "Masquer les détails", choices_Item: "item", matrix_column: "Colonne", matrix_row: "Ligne", @@ -94,7 +98,9 @@ export var frenchSurveyStrings = { more: "Plus", tagboxDoneButtonCaption: "D’ACCORD", selectToRankEmptyRankedAreaText: "Tous les choix sont classés", - selectToRankEmptyUnrankedAreaText: "Faites glisser et déposez les choix ici pour les classer" + selectToRankEmptyUnrankedAreaText: "Faites glisser et déposez les choix ici pour les classer", + ok: "D’ACCORD", + cancel: "Annuler" }; surveyLocalization.locales["fr"] = frenchSurveyStrings; @@ -111,4 +117,9 @@ surveyLocalization.localeNames["fr"] = "français"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Faites glisser et déposez les choix ici pour les classer"// takePhotoCaption: "Take Photo" => "Prendre une photo" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Cliquez sur le bouton ci-dessous pour prendre une photo à l’aide de l’appareil photo." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Faites glisser et déposez ou sélectionnez un fichier à télécharger ou à prendre une photo à l’aide de l’appareil photo." -// replaceFileCaption: "Replace file" => "Remplacer le fichier" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Remplacer le fichier"// eachRowUniqueError: "Each row must have a unique value." => "Chaque ligne doit avoir une valeur unique." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Les fichiers ne peuvent pas être téléchargés. Veuillez ajouter un gestionnaire pour l’événement 'onUploadFiles'." +// showDetails: "Show Details" => "Afficher les détails" +// hideDetails: "Hide Details" => "Masquer les détails" +// ok: "OK" => "D’ACCORD" +// cancel: "Cancel" => "Annuler" \ No newline at end of file diff --git a/src/localization/georgian.ts b/src/localization/georgian.ts index dcf23d5723..195fd2d990 100644 --- a/src/localization/georgian.ts +++ b/src/localization/georgian.ts @@ -25,6 +25,7 @@ export var georgianSurveyStrings = { requiredError: "გთხოვთ უპასუხეთ კითხვას.", requiredErrorInPanel: "საჭიროა პასუხი: უპასუხეთ მინიმუმ ერთ კითხვას.", requiredInAllRowsError: "საჭიროა პასუხი: უპასუხეთ კითხვებს ყველა რიგში.", + eachRowUniqueError: "თითოეულ რიგს უნდა ჰქონდეს უნიკალური მნიშვნელობა.", numericError: "პასუხი უნდა იყოს რიცხვი.", minError: "ღირებულება არ უნდა იყოს ნაკლები {0}", maxError: "ღირებულება არ უნდა იყოს {0}", @@ -42,6 +43,7 @@ export var georgianSurveyStrings = { urlRequestError: "მოთხოვნა დაუბრუნდა შეცდომას '{0}'. {1}", urlGetChoicesError: "მოთხოვნამ დაუბრუნა ცარიელი მონაცემები ან \"ბილიკის\" ქონება არასწორია", exceedMaxSize: "ფაილის ზომა არ უნდა აღემატებოდეს {0}.", + noUploadFilesHandler: "ფაილების ატვირთვა შეუძლებელია. გთხოვთ, დაამატოთ დამმუშავებელი 'onUploadFiles' ღონისძიებისთვის.", otherRequiredError: "საჭიროა პასუხი: შეიყვანეთ სხვა მნიშვნელობა.", uploadingFile: "თქვენი ფაილი ატვირთვაა. გთხოვთ დაელოდოთ რამდენიმე წამს და კიდევ სცადოთ.", loadingFile: "იტვირთება...", @@ -56,6 +58,8 @@ export var georgianSurveyStrings = { emptyRowsText: "რიგები არ არის.", addPanel: "ახალი დამატება", removePanel: "წაშლა", + showDetails: "დეტალების ჩვენება", + hideDetails: "დეტალების დამალვა", choices_Item: "ნივთი", matrix_column: "სვეტი", matrix_row: "რიგი", @@ -94,7 +98,9 @@ export var georgianSurveyStrings = { more: "სრულად", tagboxDoneButtonCaption: "კარგი", selectToRankEmptyRankedAreaText: "ყველა არჩევანი რანჟირებულია", - selectToRankEmptyUnrankedAreaText: "გადაიტანეთ და ჩამოაგდეთ არჩევანი აქ, რომ დაასახელოთ ისინი" + selectToRankEmptyUnrankedAreaText: "გადაიტანეთ და ჩამოაგდეთ არჩევანი აქ, რომ დაასახელოთ ისინი", + ok: "კარგი", + cancel: "გაუქმება" }; surveyLocalization.locales["ka"] = georgianSurveyStrings; @@ -176,4 +182,9 @@ surveyLocalization.localeNames["ka"] = "ქართული"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "გადაიტანეთ და ჩამოაგდეთ არჩევანი აქ, რომ დაასახელოთ ისინი"// takePhotoCaption: "Take Photo" => "გადაიღეთ ფოტო" // photoPlaceholder: "Click the button below to take a photo using the camera." => "დააჭირეთ ქვემოთ მოცემულ ღილაკს, რომ გადაიღოთ ფოტო კამერის გამოყენებით." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "გადაიტანეთ და ჩამოაგდეთ ან შეარჩიეთ ფაილი კამერის გამოყენებით ფოტოს ასატვირთად ან გადასაღებად." -// replaceFileCaption: "Replace file" => "ფაილის შეცვლა" \ No newline at end of file +// replaceFileCaption: "Replace file" => "ფაილის შეცვლა"// eachRowUniqueError: "Each row must have a unique value." => "თითოეულ რიგს უნდა ჰქონდეს უნიკალური მნიშვნელობა." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "ფაილების ატვირთვა შეუძლებელია. გთხოვთ, დაამატოთ დამმუშავებელი 'onUploadFiles' ღონისძიებისთვის." +// showDetails: "Show Details" => "დეტალების ჩვენება" +// hideDetails: "Hide Details" => "დეტალების დამალვა" +// ok: "OK" => "კარგი" +// cancel: "Cancel" => "გაუქმება" \ No newline at end of file diff --git a/src/localization/german.ts b/src/localization/german.ts index f44f065d64..c31474ef5b 100644 --- a/src/localization/german.ts +++ b/src/localization/german.ts @@ -25,6 +25,7 @@ export var germanSurveyStrings = { requiredError: "Bitte beantworten Sie diese Frage.", requiredErrorInPanel: "Bitte beantworten Sie mindestens eine Frage.", requiredInAllRowsError: "Bitte beantworten Sie alle Fragen.", + eachRowUniqueError: "Jede Zeile muss einen eindeutigen Wert haben.", numericError: "Der Wert muss eine Zahl sein.", minError: "Der Wert sollte nicht kleiner als {0} sein", maxError: "Der Wert sollte nicht größer als {0} sein", @@ -42,6 +43,7 @@ export var germanSurveyStrings = { urlRequestError: "Ein Netzwerkdienst hat folgenden Fehler zurückgegeben '{0}'. {1}", urlGetChoicesError: "Eine Netzwerkdienst hat ungültige Daten zurückgegeben", exceedMaxSize: "Die Datei darf nicht größer als {0} sein.", + noUploadFilesHandler: "Dateien können nicht hochgeladen werden. Fügen Sie einen Handler für das Ereignis 'onUploadFiles' hinzu.", otherRequiredError: "Bitte geben Sie einen Wert an.", uploadingFile: "Bitte warten Sie bis der Upload Ihrer Dateien abgeschlossen ist.", loadingFile: "Wird hochgeladen...", @@ -56,6 +58,8 @@ export var germanSurveyStrings = { emptyRowsText: "Es gibt keine Reihen.", addPanel: "Neu hinzufügen", removePanel: "Entfernen", + showDetails: "Details anzeigen", + hideDetails: "Details ausblenden", choices_Item: "Element", matrix_column: "Spalte", matrix_row: "Zeile", @@ -94,7 +98,9 @@ export var germanSurveyStrings = { more: "Mehr", tagboxDoneButtonCaption: "OKAY", selectToRankEmptyRankedAreaText: "Alle Auswahlmöglichkeiten sind in einer Rangfolge angeordnet", - selectToRankEmptyUnrankedAreaText: "Ziehen Sie die Auswahl hierher, um sie zu ordnen" + selectToRankEmptyUnrankedAreaText: "Ziehen Sie die Auswahl hierher, um sie zu ordnen", + ok: "OKAY", + cancel: "Abbrechen" }; surveyLocalization.locales["de"] = germanSurveyStrings; @@ -109,4 +115,9 @@ surveyLocalization.localeNames["de"] = "deutsch"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Ziehen Sie die Auswahl hierher, um sie zu ordnen"// takePhotoCaption: "Take Photo" => "Foto machen" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Klicken Sie auf die Schaltfläche unten, um ein Foto mit der Kamera aufzunehmen." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Ziehen Sie eine Datei per Drag & Drop oder wählen Sie sie aus, um sie hochzuladen oder ein Foto mit der Kamera aufzunehmen." -// replaceFileCaption: "Replace file" => "Datei ersetzen" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Datei ersetzen"// eachRowUniqueError: "Each row must have a unique value." => "Jede Zeile muss einen eindeutigen Wert haben." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Dateien können nicht hochgeladen werden. Fügen Sie einen Handler für das Ereignis 'onUploadFiles' hinzu." +// showDetails: "Show Details" => "Details anzeigen" +// hideDetails: "Hide Details" => "Details ausblenden" +// ok: "OK" => "OKAY" +// cancel: "Cancel" => "Abbrechen" \ No newline at end of file diff --git a/src/localization/greek.ts b/src/localization/greek.ts index cb1aaaf354..e2c4903200 100644 --- a/src/localization/greek.ts +++ b/src/localization/greek.ts @@ -25,6 +25,7 @@ export var greekSurveyStrings = { requiredError: "Παρακαλώ απαντήστε στην ερώτηση.", requiredErrorInPanel: "Απαντήστε σε τουλάχιστον μία ερώτηση.", requiredInAllRowsError: "Παρακαλώ απαντήστε τις ερωτήσεις σε όλες τις γραμμές.", + eachRowUniqueError: "Κάθε γραμμή πρέπει να έχει μια μοναδική τιμή.", numericError: "Η τιμή πρέπει να είναι αριθμητική.", minError: "Η τιμή δεν πρέπει να είναι μικρότερη από {0}", maxError: "Η τιμή δεν πρέπει να είναι μεγαλύτερη από {0}", @@ -42,6 +43,7 @@ export var greekSurveyStrings = { urlRequestError: "Η αίτηση επέστρεψε σφάλμα '{0}'. {1}", urlGetChoicesError: "Η αίτηση επέστρεψε κενά δεδομένα ή η ιδιότητα 'μονοπάτι/path' είναι εσφαλμένη", exceedMaxSize: "Το μέγεθος του αρχείου δεν μπορεί να υπερβαίνει τα {0}.", + noUploadFilesHandler: "Δεν είναι δυνατή η αποστολή αρχείων. Προσθέστε ένα πρόγραμμα χειρισμού για το συμβάν 'onUploadFiles'.", otherRequiredError: "Παρακαλώ συμπληρώστε την τιμή για το πεδίο 'άλλο'.", uploadingFile: "Το αρχείο σας ανεβαίνει. Παρακαλώ περιμένετε μερικά δευτερόλεπτα και δοκιμάστε ξανά.", loadingFile: "Φόρτωση...", @@ -56,6 +58,8 @@ export var greekSurveyStrings = { emptyRowsText: "Δεν υπάρχουν εγγραφές.", addPanel: "Προσθέστε νέο", removePanel: "Αφαίρεση", + showDetails: "Εμφάνιση λεπτομερειών", + hideDetails: "Απόκρυψη λεπτομερειών", choices_Item: "είδος", matrix_column: "Στήλη", matrix_row: "Γραμμή", @@ -94,7 +98,9 @@ export var greekSurveyStrings = { more: "Περισσότερα", tagboxDoneButtonCaption: "ΟΚ", selectToRankEmptyRankedAreaText: "Όλες οι επιλογές κατατάσσονται", - selectToRankEmptyUnrankedAreaText: "Σύρετε και αποθέστε επιλογές εδώ για να τις κατατάξετε" + selectToRankEmptyUnrankedAreaText: "Σύρετε και αποθέστε επιλογές εδώ για να τις κατατάξετε", + ok: "OK", + cancel: "Ακυρώνω" }; surveyLocalization.locales["gr"] = greekSurveyStrings; @@ -108,4 +114,9 @@ surveyLocalization.localeNames["gr"] = "ελληνικά"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Σύρετε και αποθέστε επιλογές εδώ για να τις κατατάξετε"// takePhotoCaption: "Take Photo" => "Λήψη φωτογραφίας" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Κάντε κλικ στο παρακάτω κουμπί για να τραβήξετε μια φωτογραφία χρησιμοποιώντας την κάμερα." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Σύρετε και αποθέστε ή επιλέξτε ένα αρχείο για αποστολή ή λήψη φωτογραφίας χρησιμοποιώντας την κάμερα." -// replaceFileCaption: "Replace file" => "Αντικατάσταση αρχείου" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Αντικατάσταση αρχείου"// eachRowUniqueError: "Each row must have a unique value." => "Κάθε γραμμή πρέπει να έχει μια μοναδική τιμή." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Δεν είναι δυνατή η αποστολή αρχείων. Προσθέστε ένα πρόγραμμα χειρισμού για το συμβάν 'onUploadFiles'." +// showDetails: "Show Details" => "Εμφάνιση λεπτομερειών" +// hideDetails: "Hide Details" => "Απόκρυψη λεπτομερειών" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Ακυρώνω" \ No newline at end of file diff --git a/src/localization/hebrew.ts b/src/localization/hebrew.ts index 60150d7db5..6aa482cfa3 100644 --- a/src/localization/hebrew.ts +++ b/src/localization/hebrew.ts @@ -25,6 +25,7 @@ export var hebrewSurveyStrings = { requiredError: "אנא השב על השאלה", requiredErrorInPanel: "אנא ענה לפחות על שאלה אחת.", requiredInAllRowsError: "אנא ענה על שאלות בכל השורות.", + eachRowUniqueError: "לכל שורה חייב להיות ערך ייחודי.", numericError: "התשובה צריכה להיות מספר.", minError: "הערך לא צריך להיות קטן מ {0}", maxError: "הערך לא צריך להיות גדול מ- {0}", @@ -42,6 +43,7 @@ export var hebrewSurveyStrings = { urlRequestError: "הבקשה החזירה את השגיאה '{0}'. {1}", urlGetChoicesError: "הבקשה החזירה נתונים ריקים או שהמאפיין 'נתיב' שגוי", exceedMaxSize: "גודל הקובץ לא יעלה על {0}.", + noUploadFilesHandler: "לא ניתן להעלות קבצים. אנא הוסף מטפל לאירוע 'onUploadFiles'.", otherRequiredError: "נא להזין נתונים בשדה \"אחר\"", uploadingFile: "הקובץ שלך נטען. המתן מספר שניות ונסה שוב.", loadingFile: "טוען...", @@ -56,6 +58,8 @@ export var hebrewSurveyStrings = { emptyRowsText: "אין שורות.", addPanel: "הוסף חדש", removePanel: "לְהַסִיר", + showDetails: "הראה פרטים", + hideDetails: "הסתר פרטים", choices_Item: "פריט", matrix_column: "טור", matrix_row: "שׁוּרָה", @@ -94,7 +98,9 @@ export var hebrewSurveyStrings = { more: "עוד", tagboxDoneButtonCaption: "אוקיי", selectToRankEmptyRankedAreaText: "כל האפשרויות מדורגות", - selectToRankEmptyUnrankedAreaText: "גרור ושחרר אפשרויות לכאן כדי לדרג אותן" + selectToRankEmptyUnrankedAreaText: "גרור ושחרר אפשרויות לכאן כדי לדרג אותן", + ok: "אוקיי", + cancel: "ביטל" }; surveyLocalization.locales["he"] = hebrewSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["he"] = "עברית"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "גרור ושחרר אפשרויות לכאן כדי לדרג אותן"// takePhotoCaption: "Take Photo" => "צלם תמונה" // photoPlaceholder: "Click the button below to take a photo using the camera." => "לחץ על הלחצן למטה כדי לצלם תמונה באמצעות המצלמה." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "גרור ושחרר או בחר קובץ כדי להעלות או לצלם תמונה באמצעות המצלמה." -// replaceFileCaption: "Replace file" => "החלפת קובץ" \ No newline at end of file +// replaceFileCaption: "Replace file" => "החלפת קובץ"// eachRowUniqueError: "Each row must have a unique value." => "לכל שורה חייב להיות ערך ייחודי." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "לא ניתן להעלות קבצים. אנא הוסף מטפל לאירוע 'onUploadFiles'." +// showDetails: "Show Details" => "הראה פרטים" +// hideDetails: "Hide Details" => "הסתר פרטים" +// ok: "OK" => "אוקיי" +// cancel: "Cancel" => "ביטל" \ No newline at end of file diff --git a/src/localization/hindi.ts b/src/localization/hindi.ts index f0057f1879..b369fb43cd 100644 --- a/src/localization/hindi.ts +++ b/src/localization/hindi.ts @@ -25,6 +25,7 @@ export var hindiStrings = { requiredError: "कृपया प्रश्न का उत्तर दें", requiredErrorInPanel: "कृपया कम से कम एक प्रश्न का उत्तर दें", requiredInAllRowsError: "कृपया सभी पंक्तियों में सवालों के जवाब दें", + eachRowUniqueError: "प्रत्येक पंक्ति का एक अद्वितीय मान होना चाहिए.", numericError: "मूल्य संख्यात्मक होना चाहिए", minError: "मान {0} से कम नहीं होना चाहिए", maxError: "मान {0} से अधिक नहीं होना चाहिए", @@ -42,6 +43,7 @@ export var hindiStrings = { urlRequestError: "अनुरोध लौटाया त्रुटि '{0}' . {1}", urlGetChoicesError: "अनुरोध ने खाली डेटा वापस कर दिया है ", exceedMaxSize: "फ़ाइल का आकार {0} से अधिक नहीं होना चाहिए या फिर 'पाथ' प्रॉपर्टी गलत है", + noUploadFilesHandler: "फ़ाइलें अपलोड नहीं की जा सकती. कृपया 'onloadFiles' ईवेंट के लिए एक हैंडलर जोड़ें.", otherRequiredError: "कृपया दूसरा मूल्य दर्ज करें", uploadingFile: "आपकी फाइल अपलोड हो रही है। कृपया कई सेकंड इंतजार करें और फिर से प्रयास करें।", loadingFile: "लोडिंग", @@ -56,6 +58,8 @@ export var hindiStrings = { emptyRowsText: "कोई पंक्तियाँ नहीं हैं.", addPanel: "नया जोड़ें", removePanel: "हटाए", + showDetails: "विवरण दिखाएँ", + hideDetails: "विवरण छुपाएँ", choices_Item: "मद", matrix_column: "कॉलम", matrix_row: "पंक्ति", @@ -94,7 +98,9 @@ export var hindiStrings = { more: "अधिक", tagboxDoneButtonCaption: "ठीक है", selectToRankEmptyRankedAreaText: "सभी विकल्पों को रैंक किया गया है", - selectToRankEmptyUnrankedAreaText: "विकल्पों को रैंक करने के लिए उन्हें यहां खींचें और छोड़ दें" + selectToRankEmptyUnrankedAreaText: "विकल्पों को रैंक करने के लिए उन्हें यहां खींचें और छोड़ दें", + ok: "ठीक है", + cancel: "रद्द करना" }; surveyLocalization.locales["hi"] = hindiStrings; @@ -124,4 +130,9 @@ surveyLocalization.localeNames["hi"] = "hindi"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "विकल्पों को रैंक करने के लिए उन्हें यहां खींचें और छोड़ दें"// takePhotoCaption: "Take Photo" => "फोटो ले लो" // photoPlaceholder: "Click the button below to take a photo using the camera." => "कैमरे का उपयोग करके फोटो लेने के लिए नीचे दिए गए बटन पर क्लिक करें।" // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "कैमरे का उपयोग करके फ़ोटो अपलोड करने या फ़ोटो लेने के लिए किसी फ़ाइल को खींचें और छोड़ें या चुनें." -// replaceFileCaption: "Replace file" => "फ़ाइल बदलें" \ No newline at end of file +// replaceFileCaption: "Replace file" => "फ़ाइल बदलें"// eachRowUniqueError: "Each row must have a unique value." => "प्रत्येक पंक्ति का एक अद्वितीय मान होना चाहिए." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "फ़ाइलें अपलोड नहीं की जा सकती. कृपया 'onloadFiles' ईवेंट के लिए एक हैंडलर जोड़ें." +// showDetails: "Show Details" => "विवरण दिखाएँ" +// hideDetails: "Hide Details" => "विवरण छुपाएँ" +// ok: "OK" => "ठीक है" +// cancel: "Cancel" => "रद्द करना" \ No newline at end of file diff --git a/src/localization/hungarian.ts b/src/localization/hungarian.ts index ae90218145..dd80b7b0a7 100644 --- a/src/localization/hungarian.ts +++ b/src/localization/hungarian.ts @@ -25,6 +25,7 @@ export var hungarianSurveyStrings = { requiredError: "Kérjük, válaszolja meg ezt a kérdést!", requiredErrorInPanel: "Kérjük, válaszoljon legalább egy kérdésre.", requiredInAllRowsError: "Kérjük adjon választ minden sorban!", + eachRowUniqueError: "Minden sornak egyedi értékkel kell rendelkeznie.", numericError: "Az érték szám kell, hogy legyen!", minError: "Az érték nem lehet kisebb, mint {0}", maxError: "Az érték nem lehet nagyobb, mint {0}", @@ -42,6 +43,7 @@ export var hungarianSurveyStrings = { urlRequestError: "A lekérdezés hibával tért vissza: '{0}'. {1}", urlGetChoicesError: "A lekérdezés üres adattal tért vissza, vagy a 'path' paraméter helytelen.", exceedMaxSize: "A méret nem lehet nagyobb, mint {0}.", + noUploadFilesHandler: "A fájlok nem tölthetők fel. Adjon hozzá egy kezelőt az \"onUploadFiles\" eseményhez.", otherRequiredError: "Adja meg az egyéb értéket!", uploadingFile: "Feltöltés folyamatban. Várjon pár másodpercet, majd próbálja újra.", loadingFile: "Betöltés...", @@ -56,6 +58,8 @@ export var hungarianSurveyStrings = { emptyRowsText: "Nincsenek sorok.", addPanel: "Új hozzáadása", removePanel: "Eltávolítás", + showDetails: "Mutasd a részleteket", + hideDetails: "Részletek elrejtése", choices_Item: "elem", matrix_column: "Oszlop", matrix_row: "Sor", @@ -94,7 +98,9 @@ export var hungarianSurveyStrings = { more: "Több", tagboxDoneButtonCaption: "OKÉ", selectToRankEmptyRankedAreaText: "Minden választási lehetőség rangsorolva van", - selectToRankEmptyUnrankedAreaText: "Húzza ide a választási lehetőségeket a rangsoroláshoz" + selectToRankEmptyUnrankedAreaText: "Húzza ide a választási lehetőségeket a rangsoroláshoz", + ok: "OKÉ", + cancel: "Érvénytelenít" }; surveyLocalization.locales["hu"] = hungarianSurveyStrings; @@ -122,4 +128,9 @@ surveyLocalization.localeNames["hu"] = "magyar"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Húzza ide a választási lehetőségeket a rangsoroláshoz"// takePhotoCaption: "Take Photo" => "Fotó készítése" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Kattintson az alábbi gombra, hogy fényképet készítsen a fényképezőgéppel." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Húzzon át vagy válasszon ki egy fájlt, amelyet fel szeretne tölteni vagy fényképet szeretne készíteni a kamerával." -// replaceFileCaption: "Replace file" => "Fájl cseréje" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Fájl cseréje"// eachRowUniqueError: "Each row must have a unique value." => "Minden sornak egyedi értékkel kell rendelkeznie." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "A fájlok nem tölthetők fel. Adjon hozzá egy kezelőt az \"onUploadFiles\" eseményhez." +// showDetails: "Show Details" => "Mutasd a részleteket" +// hideDetails: "Hide Details" => "Részletek elrejtése" +// ok: "OK" => "OKÉ" +// cancel: "Cancel" => "Érvénytelenít" \ No newline at end of file diff --git a/src/localization/icelandic.ts b/src/localization/icelandic.ts index 3bcbb6b761..bb08ca45d0 100644 --- a/src/localization/icelandic.ts +++ b/src/localization/icelandic.ts @@ -25,6 +25,7 @@ export var icelandicSurveyStrings = { requiredError: "Vinsamlegast svarið spurningunni.", requiredErrorInPanel: "Vinsamlegast svaraðu að minnsta kosti einni spurningu.", requiredInAllRowsError: "Vinsamlegast svarið spurningum í öllum röðum.", + eachRowUniqueError: "Hver lína verður að hafa einstakt gildi.", numericError: "Þetta gildi verður að vera tala.", minError: "Gildið má ekki vera lægra en {0}", maxError: "Gildið má ekki vera hærra en {0}", @@ -42,6 +43,7 @@ export var icelandicSurveyStrings = { urlRequestError: "Beiðninn skilaði eftirfaranadi villu '{0}'. {1}", urlGetChoicesError: "Beiðninng skilaði engum gögnum eða slóðinn var röng", exceedMaxSize: "Skráinn skal ekki vera stærri en {0}.", + noUploadFilesHandler: "Ekki er hægt að hlaða upp skrám. Vinsamlegast bættu við rekli fyrir 'onUploadFiles' atvikið.", otherRequiredError: "Vinamlegast fyllið út hitt gildið.", uploadingFile: "Skráinn þín var send. Vinsamlegast bíðið í nokkrar sekúndur og reynið aftur.", loadingFile: "Hleður ...", @@ -56,6 +58,8 @@ export var icelandicSurveyStrings = { emptyRowsText: "Það eru engar raðir.", addPanel: "Bæta við nýju", removePanel: "Fjarlægðu", + showDetails: "Sýna upplýsingar", + hideDetails: "Fela upplýsingar", choices_Item: "hlutur", matrix_column: "Dálkur", matrix_row: "Röð", @@ -94,7 +98,9 @@ export var icelandicSurveyStrings = { more: "Fleiri", tagboxDoneButtonCaption: "ÓKEI", selectToRankEmptyRankedAreaText: "Öllum valkostum er raðað", - selectToRankEmptyUnrankedAreaText: "Dragðu og slepptu valkostum hér til að raða þeim" + selectToRankEmptyUnrankedAreaText: "Dragðu og slepptu valkostum hér til að raða þeim", + ok: "ÓKEI", + cancel: "Afturkalla" }; surveyLocalization.locales["is"] = icelandicSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["is"] = "íslenska"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Dragðu og slepptu valkostum hér til að raða þeim"// takePhotoCaption: "Take Photo" => "Taka mynd" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Smelltu á hnappinn hér að neðan til að taka mynd með myndavélinni." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Dragðu og slepptu eða veldu skrá til að hlaða upp eða taka mynd með myndavélinni." -// replaceFileCaption: "Replace file" => "Skipta út skrá" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Skipta út skrá"// eachRowUniqueError: "Each row must have a unique value." => "Hver lína verður að hafa einstakt gildi." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Ekki er hægt að hlaða upp skrám. Vinsamlegast bættu við rekli fyrir 'onUploadFiles' atvikið." +// showDetails: "Show Details" => "Sýna upplýsingar" +// hideDetails: "Hide Details" => "Fela upplýsingar" +// ok: "OK" => "ÓKEI" +// cancel: "Cancel" => "Afturkalla" \ No newline at end of file diff --git a/src/localization/indonesian.ts b/src/localization/indonesian.ts index 5a5efb1645..d777f37502 100644 --- a/src/localization/indonesian.ts +++ b/src/localization/indonesian.ts @@ -25,6 +25,7 @@ export var indonesianStrings = { requiredError: "Silahkan jawab pertanyaan berikut.", requiredErrorInPanel: "Silahkan jawab setidaknya satu petanyaan.", requiredInAllRowsError: "Silahkan jawab pertanyaan pada semua baris.", + eachRowUniqueError: "Setiap baris harus memiliki nilai unik.", numericError: "Nilai harus berupa angka.", minError: "Nilainya tidak boleh kurang dari {0}", maxError: "Nilai tidak boleh lebih besar dari {0}", @@ -42,6 +43,7 @@ export var indonesianStrings = { urlRequestError: "Permintaan mengembalikan kesalahan '{0}'. {1}", urlGetChoicesError: "Permintaan mengembalikan data kosong atau properti 'path' salah.", exceedMaxSize: "Ukuran berkas tidak boleh melebihi {0}.", + noUploadFilesHandler: "File tidak dapat diunggah. Harap tambahkan handler untuk acara 'onUploadFiles'.", otherRequiredError: "Silahkan masukkan nilai lainnnya.", uploadingFile: "Berkas Anda sedang diunggah. Silahkan tunggu beberapa saat atau coba lagi.", loadingFile: "Memuat...", @@ -56,6 +58,8 @@ export var indonesianStrings = { emptyRowsText: "Tidak ada baris.", addPanel: "Tambah baru", removePanel: "Hapus", + showDetails: "Tampilkan Detail", + hideDetails: "Sembunyikan Detail", choices_Item: "item", matrix_column: "Kolom", matrix_row: "Baris", @@ -94,7 +98,9 @@ export var indonesianStrings = { more: "Lebih", tagboxDoneButtonCaption: "OKE", selectToRankEmptyRankedAreaText: "Semua pilihan diberi peringkat", - selectToRankEmptyUnrankedAreaText: "Seret dan lepas pilihan di sini untuk memberi peringkat" + selectToRankEmptyUnrankedAreaText: "Seret dan lepas pilihan di sini untuk memberi peringkat", + ok: "OKE", + cancel: "Membatalkan" }; surveyLocalization.locales["id"] = indonesianStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["id"] = "bahasa Indonesia"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Seret dan lepas pilihan di sini untuk memberi peringkat"// takePhotoCaption: "Take Photo" => "Ambil Foto" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Klik tombol di bawah ini untuk mengambil foto menggunakan kamera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Seret dan lepas atau pilih file untuk diunggah atau mengambil foto menggunakan kamera." -// replaceFileCaption: "Replace file" => "Ganti file" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Ganti file"// eachRowUniqueError: "Each row must have a unique value." => "Setiap baris harus memiliki nilai unik." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "File tidak dapat diunggah. Harap tambahkan handler untuk acara 'onUploadFiles'." +// showDetails: "Show Details" => "Tampilkan Detail" +// hideDetails: "Hide Details" => "Sembunyikan Detail" +// ok: "OK" => "OKE" +// cancel: "Cancel" => "Membatalkan" \ No newline at end of file diff --git a/src/localization/italian.ts b/src/localization/italian.ts index 56cb27d1cb..ab976c9806 100644 --- a/src/localization/italian.ts +++ b/src/localization/italian.ts @@ -25,6 +25,7 @@ export var italianSurveyStrings = { requiredError: "Campo obbligatorio", requiredErrorInPanel: "Per Favore, rispondi ad almeno una domanda.", requiredInAllRowsError: "Completare tutte le righe", + eachRowUniqueError: "Ogni riga deve avere un valore univoco.", numericError: "Il valore deve essere numerico", minError: "Il valore non deve essere inferiore a {0}", maxError: "Il valore non deve essere maggiore di {0}", @@ -42,6 +43,7 @@ export var italianSurveyStrings = { urlRequestError: "La richiesta ha risposto con un errore '{0}'. {1}", urlGetChoicesError: "La richiesta ha risposto null oppure il percorso non è corretto", exceedMaxSize: "Il file non può eccedere {0}", + noUploadFilesHandler: "I file non possono essere caricati. Aggiungere un gestore per l'evento 'onUploadFiles'.", otherRequiredError: "Inserire il valore 'altro'", uploadingFile: "File in caricamento. Attendi alcuni secondi e riprova", loadingFile: "Caricamento...", @@ -56,6 +58,8 @@ export var italianSurveyStrings = { emptyRowsText: "Non ci sono righe.", addPanel: "Aggiungi riga", removePanel: "Elimina", + showDetails: "Mostra dettagli", + hideDetails: "Nascondi dettagli", choices_Item: "Elemento", matrix_column: "Colonna", matrix_row: "Riga", @@ -94,7 +98,9 @@ export var italianSurveyStrings = { more: "Più", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Tutte le scelte sono classificate", - selectToRankEmptyUnrankedAreaText: "Trascina e rilascia le scelte qui per classificarle" + selectToRankEmptyUnrankedAreaText: "Trascina e rilascia le scelte qui per classificarle", + ok: "OK", + cancel: "Annulla" }; surveyLocalization.locales["it"] = italianSurveyStrings; @@ -111,4 +117,9 @@ surveyLocalization.localeNames["it"] = "italiano"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Trascina e rilascia le scelte qui per classificarle"// takePhotoCaption: "Take Photo" => "Scatta foto" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Fai clic sul pulsante qui sotto per scattare una foto utilizzando la fotocamera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Trascina e rilascia o seleziona un file da caricare o scattare una foto utilizzando la fotocamera." -// replaceFileCaption: "Replace file" => "Sostituisci file" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Sostituisci file"// eachRowUniqueError: "Each row must have a unique value." => "Ogni riga deve avere un valore univoco." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "I file non possono essere caricati. Aggiungere un gestore per l'evento 'onUploadFiles'." +// showDetails: "Show Details" => "Mostra dettagli" +// hideDetails: "Hide Details" => "Nascondi dettagli" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Annulla" \ No newline at end of file diff --git a/src/localization/japanese.ts b/src/localization/japanese.ts index 38f3e2a4f6..6e144a619f 100644 --- a/src/localization/japanese.ts +++ b/src/localization/japanese.ts @@ -25,6 +25,7 @@ export var japaneseSurveyStrings = { requiredError: "質問にお答え下さい", requiredErrorInPanel: "最低でも1つの質問に答えてください。", requiredInAllRowsError: "質問には全列で回答してください。", + eachRowUniqueError: "各行には一意の値が必要です。", numericError: "数字でご記入下さい", minError: "値は {0} 値より小さくすることはできません", maxError: "値は {0} を超えてはなりません。", @@ -42,6 +43,7 @@ export var japaneseSurveyStrings = { urlRequestError: "リクエストはエラー '{0}' を返しました。{1}", urlGetChoicesError: "リクエストが空のデータを返したか、'path' プロパティが正しくありません。", exceedMaxSize: "ファイルのサイズは{0}を超えてはいけません", + noUploadFilesHandler: "ファイルはアップロードできません。「onUploadFiles」イベントのハンドラーを追加してください。", otherRequiredError: "その他の値を入力してください。", uploadingFile: "ファイルをアップロード中です。しばらくしてから再度お試し下さい", loadingFile: "読み込み中", @@ -56,6 +58,8 @@ export var japaneseSurveyStrings = { emptyRowsText: "行はありません。", addPanel: "新規追加", removePanel: "除去", + showDetails: "詳細を表示", + hideDetails: "詳細を隠す", choices_Item: "品目", matrix_column: "コラム", matrix_row: "行", @@ -94,7 +98,9 @@ export var japaneseSurveyStrings = { more: "もっとその", tagboxDoneButtonCaption: "わかりました", selectToRankEmptyRankedAreaText: "すべての選択肢がランク付けされます", - selectToRankEmptyUnrankedAreaText: "ここに選択肢をドラッグアンドドロップしてランク付けします" + selectToRankEmptyUnrankedAreaText: "ここに選択肢をドラッグアンドドロップしてランク付けします", + ok: "わかりました", + cancel: "キャンセル" }; surveyLocalization.locales["ja"] = japaneseSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["ja"] = "日本語"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "ここに選択肢をドラッグアンドドロップしてランク付けします"// takePhotoCaption: "Take Photo" => "写真を撮る" // photoPlaceholder: "Click the button below to take a photo using the camera." => "下のボタンをクリックして、カメラを使用して写真を撮ります。" // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "アップロードするファイルをドラッグアンドドロップまたは選択するか、カメラを使用して写真を撮ります。" -// replaceFileCaption: "Replace file" => "ファイルの置換" \ No newline at end of file +// replaceFileCaption: "Replace file" => "ファイルの置換"// eachRowUniqueError: "Each row must have a unique value." => "各行には一意の値が必要です。" +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "ファイルはアップロードできません。「onUploadFiles」イベントのハンドラーを追加してください。" +// showDetails: "Show Details" => "詳細を表示" +// hideDetails: "Hide Details" => "詳細を隠す" +// ok: "OK" => "わかりました" +// cancel: "Cancel" => "キャンセル" \ No newline at end of file diff --git a/src/localization/kazakh.ts b/src/localization/kazakh.ts index 56ff1e092c..d9675c8c9f 100644 --- a/src/localization/kazakh.ts +++ b/src/localization/kazakh.ts @@ -25,6 +25,7 @@ export var kazakhStrings = { requiredError: "Өтінеміз, сұраққа жауап беріңіз.", requiredErrorInPanel: "Өтінеміз, кем дегенде бір сұраққа жауап беріңіз.", requiredInAllRowsError: "Өтінеміз, әрбір жолдың сұрағаны жауап беріңіз.", + eachRowUniqueError: "Әр жолдың бірегей мәні болуы тиіс.", numericError: "Жауап сан түрінде болуы керек.", minError: "Мәні {0} кем болмауы тиіс", maxError: "Мән {0} артық болмауы тиіс", @@ -42,6 +43,7 @@ export var kazakhStrings = { urlRequestError: "Сұратым қателікті қайтарды'{0}'. {1}", urlGetChoicesError: "Сұратымға жауап бос келді немесе 'path' қасиеті қате көрсетілген ", exceedMaxSize: "Файлдың мөлшері {0} аспау керек.", + noUploadFilesHandler: "Файлдарды кері жүктеу мүмкін емес. 'OnUploadFiles' оқиғасына өңдеушіні қосуыңызды сұраймыз.", otherRequiredError: "Өтінеміз, “Басқа” жолына деректі енгізіңіз", uploadingFile: "Сіздің файлыңыз жүктеліп жатыр. Бірнеше секунд тосып, қайтадан байқап көріңіз.", loadingFile: "Жүктеу...", @@ -56,6 +58,8 @@ export var kazakhStrings = { emptyRowsText: "Қатарлар жоқ.", addPanel: "Жаңа қосу", removePanel: "Өшіру", + showDetails: "Егжей-тегжейін көрсету", + hideDetails: "Егжей- тегжейін жасы", choices_Item: "Нұсқа", matrix_column: "Бағана", matrix_row: "Жол", @@ -94,7 +98,9 @@ export var kazakhStrings = { more: "Қосымша", tagboxDoneButtonCaption: "ЖАҚСЫ", selectToRankEmptyRankedAreaText: "Барлық таңдаулар ранжирленген", - selectToRankEmptyUnrankedAreaText: "Таңдауды рангтеу үшін осында апарып тастау" + selectToRankEmptyUnrankedAreaText: "Таңдауды рангтеу үшін осында апарып тастау", + ok: "ЖАҚСЫ", + cancel: "Болдырмау" }; surveyLocalization.locales["kk"] = kazakhStrings; @@ -122,4 +128,9 @@ surveyLocalization.localeNames["kk"] = "Kazakh"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Таңдауды рангтеу үшін осында апарып тастау"// takePhotoCaption: "Take Photo" => "Фотосуретке түсу" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Камераны пайдаланып суретке түсу үшін төмендегі түймені басыңыз." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Фотоаппаратты пайдаланып кері жүктеу немесе суретке түсіру үшін файлды апарып тастаыңыз немесе таңдаңыз." -// replaceFileCaption: "Replace file" => "Файлды ауыстыру" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Файлды ауыстыру"// eachRowUniqueError: "Each row must have a unique value." => "Әр жолдың бірегей мәні болуы тиіс." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Файлдарды кері жүктеу мүмкін емес. 'OnUploadFiles' оқиғасына өңдеушіні қосуыңызды сұраймыз." +// showDetails: "Show Details" => "Егжей-тегжейін көрсету" +// hideDetails: "Hide Details" => "Егжей- тегжейін жасы" +// ok: "OK" => "ЖАҚСЫ" +// cancel: "Cancel" => "Болдырмау" \ No newline at end of file diff --git a/src/localization/korean.ts b/src/localization/korean.ts index 7b541535f6..ba33e54372 100644 --- a/src/localization/korean.ts +++ b/src/localization/korean.ts @@ -25,6 +25,7 @@ export var koreanStrings = { requiredError: "질문에 답하시오.", requiredErrorInPanel: "하나 이상의 질문에 답하십시오.", requiredInAllRowsError: "모든 행에 있는 질문에 답하십시오.", + eachRowUniqueError: "각 행에는 고유한 값이 있어야 합니다.", numericError: "값은 숫자여야 합니다.", minError: "값은 {0}보다 작으면 안됩니다.", maxError: "값은 {0}보다 클 수 없습니다.", @@ -42,6 +43,7 @@ export var koreanStrings = { urlRequestError: "'{0}'으로 잘못된 요청입니다. {1}", urlGetChoicesError: "비어있는 데이터를 요청했거나 잘못된 속성의 경로입니다.", exceedMaxSize: "파일 크기가 {0}을 초과 할 수 없습니다.", + noUploadFilesHandler: "파일을 업로드할 수 없습니다. 'onUploadFiles'이벤트에 대한 핸들러를 추가하십시오.", otherRequiredError: "다른 질문을 작성하십시오.", uploadingFile: "파일 업로드 중입니다. 잠시 후 다시 시도하십시오.", loadingFile: "로드 중...", @@ -56,6 +58,8 @@ export var koreanStrings = { emptyRowsText: "행이 없습니다.", addPanel: "추가", removePanel: "제거", + showDetails: "세부 정보 표시", + hideDetails: "세부 정보 숨기기", choices_Item: "항목", matrix_column: "열", matrix_row: "행", @@ -94,7 +98,9 @@ export var koreanStrings = { more: "더보기", tagboxDoneButtonCaption: "그래", selectToRankEmptyRankedAreaText: "모든 선택 항목이 순위가 매겨집니다.", - selectToRankEmptyUnrankedAreaText: "여기에 선택 항목을 끌어다 놓아 순위를 매깁니다." + selectToRankEmptyUnrankedAreaText: "여기에 선택 항목을 끌어다 놓아 순위를 매깁니다.", + ok: "그래", + cancel: "취소" }; surveyLocalization.locales["ko"] = koreanStrings; @@ -110,4 +116,9 @@ surveyLocalization.localeNames["ko"] = "한국어"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "여기에 선택 항목을 끌어다 놓아 순위를 매깁니다."// takePhotoCaption: "Take Photo" => "사진 찍기" // photoPlaceholder: "Click the button below to take a photo using the camera." => "아래 버튼을 클릭하여 카메라로 사진을 찍습니다." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "업로드할 파일을 드래그 앤 드롭하거나 선택하거나 카메라를 사용하여 사진을 찍습니다." -// replaceFileCaption: "Replace file" => "파일 바꾸기" \ No newline at end of file +// replaceFileCaption: "Replace file" => "파일 바꾸기"// eachRowUniqueError: "Each row must have a unique value." => "각 행에는 고유한 값이 있어야 합니다." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "파일을 업로드할 수 없습니다. 'onUploadFiles'이벤트에 대한 핸들러를 추가하십시오." +// showDetails: "Show Details" => "세부 정보 표시" +// hideDetails: "Hide Details" => "세부 정보 숨기기" +// ok: "OK" => "그래" +// cancel: "Cancel" => "취소" \ No newline at end of file diff --git a/src/localization/latvian.ts b/src/localization/latvian.ts index ce2c90a0e7..c95c994314 100644 --- a/src/localization/latvian.ts +++ b/src/localization/latvian.ts @@ -25,6 +25,7 @@ export var latvianSurveyStrings = { requiredError: "Lūdzu, atbildiet uz jautājumu!", requiredErrorInPanel: "Lūdzu, atbildiet uz vismaz vienu jautājumu.", requiredInAllRowsError: "Lūdzu, atbildiet uz jautājumiem visās rindās.", + eachRowUniqueError: "Katrai rindai jābūt unikālai vērtībai.", numericError: "Atbildei ir jābūt skaitlim.", minError: "Vērtība nedrīkst būt mazāka par {0}", maxError: "Vērtība nedrīkst būt lielāka par {0}", @@ -42,6 +43,7 @@ export var latvianSurveyStrings = { urlRequestError: "Pieprasījumā tika atgriezta kļūda “{0}”. {1}", urlGetChoicesError: "Pieprasījums atgrieza tukšus datus vai rekvizīts “path” ir nepareizs", exceedMaxSize: "Faila lielums nedrīkst pārsniegt {0}.", + noUploadFilesHandler: "Failus nevar augšupielādēt. Lūdzu, pievienojiet apdarinātāju notikumam \"onUploadFiles\".", otherRequiredError: "Lūdzu, ievadiet datus laukā 'Cits'", uploadingFile: "Jūsu fails tiek augšupielādēts. Lūdzu, uzgaidiet dažas sekundes un mēģiniet vēlreiz.", loadingFile: "Notiek ielāde ...", @@ -56,6 +58,8 @@ export var latvianSurveyStrings = { emptyRowsText: "Nav rindu.", addPanel: "Pievieno jaunu", removePanel: "Noņemt", + showDetails: "Rādīt detalizētu informāciju", + hideDetails: "Slēpt detaļas", choices_Item: "vienums", matrix_column: "Sleja", matrix_row: "Rinda", @@ -94,7 +98,9 @@ export var latvianSurveyStrings = { more: "Vairāk", tagboxDoneButtonCaption: "LABI", selectToRankEmptyRankedAreaText: "Visas izvēles ir sarindotas", - selectToRankEmptyUnrankedAreaText: "Velciet un nometiet izvēles iespējas šeit, lai tās sarindotu" + selectToRankEmptyUnrankedAreaText: "Velciet un nometiet izvēles iespējas šeit, lai tās sarindotu", + ok: "LABI", + cancel: "Atcelt" }; surveyLocalization.locales["lv"] = latvianSurveyStrings; @@ -111,4 +117,9 @@ surveyLocalization.localeNames["lv"] = "latviešu"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Velciet un nometiet izvēles iespējas šeit, lai tās sarindotu"// takePhotoCaption: "Take Photo" => "Uzņemt fotoattēlu" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Noklikšķiniet uz pogas zemāk, lai uzņemtu fotoattēlu, izmantojot kameru." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Velciet un nometiet vai atlasiet failu, ko augšupielādēt vai uzņemt fotoattēlu, izmantojot kameru." -// replaceFileCaption: "Replace file" => "Aizstāt failu" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Aizstāt failu"// eachRowUniqueError: "Each row must have a unique value." => "Katrai rindai jābūt unikālai vērtībai." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Failus nevar augšupielādēt. Lūdzu, pievienojiet apdarinātāju notikumam \"onUploadFiles\"." +// showDetails: "Show Details" => "Rādīt detalizētu informāciju" +// hideDetails: "Hide Details" => "Slēpt detaļas" +// ok: "OK" => "LABI" +// cancel: "Cancel" => "Atcelt" \ No newline at end of file diff --git a/src/localization/lithuanian.ts b/src/localization/lithuanian.ts index 07143fb482..127172c228 100644 --- a/src/localization/lithuanian.ts +++ b/src/localization/lithuanian.ts @@ -25,6 +25,7 @@ export var lithuaniaSurveyStrings = { requiredError: "Būtina atsakyti į šį klausimą.", requiredErrorInPanel: "Būtina atsakyti bent į vieną klausimą.", requiredInAllRowsError: "Prašome atsakyti į klausimus visose eilutėse.", + eachRowUniqueError: "Kiekviena eilutė turi turėti unikalią reikšmę.", numericError: "Turi būti skaičiai.", minError: "Vertė neturėtų būti mažesnė nei {0}", maxError: "Vertė neturėtų būti didesnė nei {0}", @@ -42,6 +43,7 @@ export var lithuaniaSurveyStrings = { urlRequestError: "Užklausa grąžino klaidą'{0}'. {1}", urlGetChoicesError: "Užklausa grąžino tuščius duomenis arba 'path' savybė yra neteisinga", exceedMaxSize: "Failo dydis neturi viršyti {0}.", + noUploadFilesHandler: "Failų įkelti negalima. Pridėkite įvykio \"onUploadFiles\" tvarkytoją.", otherRequiredError: "Įveskite kitą reikšmę.", uploadingFile: "Jūsų failas yra keliamas. Palaukite keletą sekundžių ir bandykite dar kartą.", loadingFile: "Prašome palaukti...", @@ -56,6 +58,8 @@ export var lithuaniaSurveyStrings = { emptyRowsText: "Eilių nėra.", addPanel: "Pridėti naują", removePanel: "Ištrinti", + showDetails: "Rodyti išsamią informaciją", + hideDetails: "Slėpti išsamią informaciją", choices_Item: "elementas", matrix_column: "Stulpelis", matrix_row: "Eilutė", @@ -94,7 +98,9 @@ export var lithuaniaSurveyStrings = { more: "Daugiau", tagboxDoneButtonCaption: "GERAI", selectToRankEmptyRankedAreaText: "Visi pasirinkimai yra reitinguojami", - selectToRankEmptyUnrankedAreaText: "Nuvilkite pasirinkimus čia, kad juos reitinguotumėte" + selectToRankEmptyUnrankedAreaText: "Nuvilkite pasirinkimus čia, kad juos reitinguotumėte", + ok: "GERAI", + cancel: "Atšaukti" }; surveyLocalization.locales["lt"] = lithuaniaSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["lt"] = "lietuvių"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Nuvilkite pasirinkimus čia, kad juos reitinguotumėte"// takePhotoCaption: "Take Photo" => "Fotografuoti" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Spustelėkite žemiau esantį mygtuką, kad nufotografuotumėte fotoaparatu." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Nuvilkite arba pasirinkite failą, kurį norite įkelti arba nufotografuoti naudodami fotoaparatą." -// replaceFileCaption: "Replace file" => "Pakeiskite failą" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Pakeiskite failą"// eachRowUniqueError: "Each row must have a unique value." => "Kiekviena eilutė turi turėti unikalią reikšmę." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Failų įkelti negalima. Pridėkite įvykio \"onUploadFiles\" tvarkytoją." +// showDetails: "Show Details" => "Rodyti išsamią informaciją" +// hideDetails: "Hide Details" => "Slėpti išsamią informaciją" +// ok: "OK" => "GERAI" +// cancel: "Cancel" => "Atšaukti" \ No newline at end of file diff --git a/src/localization/macedonian.ts b/src/localization/macedonian.ts index a94bb7ceb8..c86fd65dca 100644 --- a/src/localization/macedonian.ts +++ b/src/localization/macedonian.ts @@ -25,6 +25,7 @@ export var macedonianSurveyStrings = { requiredError: "Ве молам, одговорете на прашањето.", requiredErrorInPanel: "Ве молам, одговорете барем на едно прашање.", requiredInAllRowsError: "Ве молиме, одговорете на прашања во сите редови.", + eachRowUniqueError: "Секој ред мора да има уникатна вредност.", numericError: "Вредноста треба да биде нумеричка.", minError: "Вредноста не треба да биде помала од {0}", maxError: "Вредноста не треба да биде поголема од {0}", @@ -42,6 +43,7 @@ export var macedonianSurveyStrings = { urlRequestError: "Барањето врати грешка '{0}'. {1} ", urlGetChoicesError: "Барањето врати празни податоци или својството 'path' е неточно", exceedMaxSize: "Големината на датотеката не треба да надминува {0}.", + noUploadFilesHandler: "Фајловите не можат да се качуваат. Ве молиме додадете раководител за настанот 'onUploadFiles'.", otherRequiredError: "Внесете ја другата вредност.", uploadingFile: "Вашата датотека се поставува. Ве молиме почекајте неколку секунди и обидете се повторно.", loadingFile: "Се вчитува ...", @@ -56,6 +58,8 @@ export var macedonianSurveyStrings = { emptyRowsText: "Нема редови.", addPanel: "Додади ново", removePanel: "Отстрани", + showDetails: "Прикажување на деталите", + hideDetails: "Сокриј ги деталите.", choices_Item: "ставка", matrix_column: "Колона", matrix_row: "Ред", @@ -94,7 +98,9 @@ export var macedonianSurveyStrings = { more: "Повеќе", tagboxDoneButtonCaption: "ДОБРО", selectToRankEmptyRankedAreaText: "Сите избори се рангирани", - selectToRankEmptyUnrankedAreaText: "Влечете и фрлете го изборот овде за да ги рангирате" + selectToRankEmptyUnrankedAreaText: "Влечете и фрлете го изборот овде за да ги рангирате", + ok: "ДОБРО", + cancel: "Откажи" }; surveyLocalization.locales["mk"] = macedonianSurveyStrings; @@ -117,4 +123,9 @@ surveyLocalization.localeNames["mk"] = "Македонски"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Влечете и фрлете го изборот овде за да ги рангирате"// takePhotoCaption: "Take Photo" => "Фотографирајте" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Кликнете на копчето подолу за да фотографирате користејќи ја камерата." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Влечете и фрлајте или изберете датотека за качување или фотографирање користејќи ја камерата." -// replaceFileCaption: "Replace file" => "Заменете го фајлот." \ No newline at end of file +// replaceFileCaption: "Replace file" => "Заменете го фајлот."// eachRowUniqueError: "Each row must have a unique value." => "Секој ред мора да има уникатна вредност." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Фајловите не можат да се качуваат. Ве молиме додадете раководител за настанот 'onUploadFiles'." +// showDetails: "Show Details" => "Прикажување на деталите" +// hideDetails: "Hide Details" => "Сокриј ги деталите." +// ok: "OK" => "ДОБРО" +// cancel: "Cancel" => "Откажи" \ No newline at end of file diff --git a/src/localization/malay.ts b/src/localization/malay.ts index 4cf78fde82..a74d0f89bd 100644 --- a/src/localization/malay.ts +++ b/src/localization/malay.ts @@ -25,6 +25,7 @@ export var malaySurveyStrings = { requiredError: "Respons diperlukan.", requiredErrorInPanel: "Respons diperlukan: jawab sekurang-kurangnya satu soalan.", requiredInAllRowsError: "Respons diperlukan: jawab soalan dalam semua baris.", + eachRowUniqueError: "Setiap baris mesti mempunyai nilai yang unik.", numericError: "Nilai mestilah numerik.", minError: "Nilai tidak boleh kurang daripada {0}", maxError: "Nilai tidak boleh lebih besar daripada {0}", @@ -42,6 +43,7 @@ export var malaySurveyStrings = { urlRequestError: "Permintaan mengembalikan ralat '{0}'. {1}", urlGetChoicesError: "Permintaan mengembalikan data kosong atau ciri 'laluan' salah", exceedMaxSize: "Saiz fail hendaklah tidak melebihi {0}.", + noUploadFilesHandler: "Fail tidak boleh dimuat naik. Sila tambah pengendali untuk acara 'onUploadFiles'.", otherRequiredError: "Respons diperlukan: masukkan nilai lain.", uploadingFile: "Fail anda sedang dimuat naik. Sila tunggu beberapa saat dan cuba lagi.", loadingFile: "Memuat...", @@ -56,6 +58,8 @@ export var malaySurveyStrings = { emptyRowsText: "Tiada baris.", addPanel: "Tambah baharu", removePanel: "Alih keluar", + showDetails: "Tunjukkan Butiran", + hideDetails: "Sembunyikan Butiran", choices_Item: "item", matrix_column: "Lajur", matrix_row: "Baris", @@ -94,7 +98,9 @@ export var malaySurveyStrings = { more: "Lebih banyak", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Semua pilihan disenaraikan", - selectToRankEmptyUnrankedAreaText: "Seret dan lepaskan pilihan di sini untuk meletakkannya" + selectToRankEmptyUnrankedAreaText: "Seret dan lepaskan pilihan di sini untuk meletakkannya", + ok: "OK", + cancel: "Batal" }; surveyLocalization.locales["ms"] = malaySurveyStrings; @@ -113,4 +119,9 @@ surveyLocalization.localeNames["ms"] = "melayu"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Seret dan lepaskan pilihan di sini untuk meletakkannya"// takePhotoCaption: "Take Photo" => "Ambil gambar" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Klik butang di bawah untuk mengambil gambar menggunakan kamera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Seret dan lepas atau pilih fail untuk memuat naik atau mengambil foto menggunakan kamera." -// replaceFileCaption: "Replace file" => "Gantikan fail" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Gantikan fail"// eachRowUniqueError: "Each row must have a unique value." => "Setiap baris mesti mempunyai nilai yang unik." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Fail tidak boleh dimuat naik. Sila tambah pengendali untuk acara 'onUploadFiles'." +// showDetails: "Show Details" => "Tunjukkan Butiran" +// hideDetails: "Hide Details" => "Sembunyikan Butiran" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Batal" \ No newline at end of file diff --git a/src/localization/norwegian.ts b/src/localization/norwegian.ts index ac04eecc3b..c5c43b6267 100644 --- a/src/localization/norwegian.ts +++ b/src/localization/norwegian.ts @@ -25,6 +25,7 @@ export var norwegianSurveyStrings = { requiredError: "Vennligst svar på spørsmålet.", requiredErrorInPanel: "Vennligst svar på minst ett spørsmål.", requiredInAllRowsError: "Vennligst svar på spørsmål i alle rader.", + eachRowUniqueError: "Hver rad må ha en unik verdi.", numericError: "Verdien skal være numerisk.", minError: "Verdien bør ikke være mindre enn {0}", maxError: "Verdien bør ikke være større enn {0}", @@ -42,6 +43,7 @@ export var norwegianSurveyStrings = { urlRequestError: "Forespørselen returnerte feilen '{0}'. {1}", urlGetChoicesError: "Forespørselen returnerte tomme data, eller 'sti' -egenskapen er feil", exceedMaxSize: "Filstørrelsen bør ikke overstige {0}.", + noUploadFilesHandler: "Filer kan ikke lastes opp. Legg til et behandlingsprogram for onUploadFiles-hendelsen.", otherRequiredError: "Vennligst skriv inn den andre verdien.", uploadingFile: "Filen din lastes opp. Vennligst vent noen sekunder og prøv igjen.", loadingFile: "Laster inn ...", @@ -56,6 +58,8 @@ export var norwegianSurveyStrings = { emptyRowsText: "Det er ingen rader.", addPanel: "Legg til ny", removePanel: "Fjerne", + showDetails: "Vis detaljer", + hideDetails: "Skjul detaljer", choices_Item: "element", matrix_column: "Kolonne", matrix_row: "Rad", @@ -94,7 +98,9 @@ export var norwegianSurveyStrings = { more: "Mer", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Alle valg er rangert", - selectToRankEmptyUnrankedAreaText: "Dra og slipp valg her for å rangere dem" + selectToRankEmptyUnrankedAreaText: "Dra og slipp valg her for å rangere dem", + ok: "OK", + cancel: "Annullere" }; surveyLocalization.locales["no"] = norwegianSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["no"] = "norsk"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Dra og slipp valg her for å rangere dem"// takePhotoCaption: "Take Photo" => "Ta bilde" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Klikk på knappen nedenfor for å ta et bilde med kameraet." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Dra og slipp eller velg en fil for å laste opp eller ta et bilde med kameraet." -// replaceFileCaption: "Replace file" => "Erstatt fil" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Erstatt fil"// eachRowUniqueError: "Each row must have a unique value." => "Hver rad må ha en unik verdi." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Filer kan ikke lastes opp. Legg til et behandlingsprogram for onUploadFiles-hendelsen." +// showDetails: "Show Details" => "Vis detaljer" +// hideDetails: "Hide Details" => "Skjul detaljer" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Annullere" \ No newline at end of file diff --git a/src/localization/persian.ts b/src/localization/persian.ts index 5c149dc990..ae5f2ea8be 100644 --- a/src/localization/persian.ts +++ b/src/localization/persian.ts @@ -25,6 +25,7 @@ export var persianSurveyStrings = { requiredError: "لطفا به سوال پاسخ دهید", requiredErrorInPanel: "لطفا حداقل به یک سوال پاسخ دهید.", requiredInAllRowsError: "لطفا سوالات تمام سطرها را پاسخ دهید.", + eachRowUniqueError: "هر سطر باید یک مقدار منحصر به فرد داشته باشد.", numericError: "مقدار باید عددی باشد", minError: "ارزش نباید کمتر از {0}", maxError: "ارزش نباید بیشتر از {0}", @@ -42,6 +43,7 @@ export var persianSurveyStrings = { urlRequestError: "درخواست با خطا روبرو شد: '{0}'. {1}", urlGetChoicesError: "درخواست مسیری خالی بازگشت داده یا مسیر درست تنظیم نشده", exceedMaxSize: "بیشترین حجم مجاز فایل: {0}", + noUploadFilesHandler: "پروندهها را نمیتوان بارگذاری کرد. لطفا یک گرداننده برای رویداد \"onUploadFiles\" اضافه کنید.", otherRequiredError: "مقدار 'دیگر' را وارد کنید", uploadingFile: "فایل در حال آیلود است. لطفا صبر کنید.", loadingFile: "بارگیری...", @@ -56,6 +58,8 @@ export var persianSurveyStrings = { emptyRowsText: "هیچ ردیفی وجود ندارد.", addPanel: "جدید", removePanel: "حذف", + showDetails: "نمایش جزئیات", + hideDetails: "مخفی کردن جزئیات", choices_Item: "آیتم", matrix_column: "ستون", matrix_row: "سطر", @@ -94,7 +98,9 @@ export var persianSurveyStrings = { more: "بیشتر", tagboxDoneButtonCaption: "باشه", selectToRankEmptyRankedAreaText: "همه انتخاب ها رتبه بندی می شوند", - selectToRankEmptyUnrankedAreaText: "انتخاب های کشیدن و رها کردن در اینجا برای رتبه بندی انها" + selectToRankEmptyUnrankedAreaText: "انتخاب های کشیدن و رها کردن در اینجا برای رتبه بندی انها", + ok: "باشه", + cancel: "لغو" }; surveyLocalization.locales["fa"] = persianSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["fa"] = "فارْسِى"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "انتخاب های کشیدن و رها کردن در اینجا برای رتبه بندی انها"// takePhotoCaption: "Take Photo" => "گرفتن عکس" // photoPlaceholder: "Click the button below to take a photo using the camera." => "روی دکمه زیر کلیک کنید تا با استفاده از دوربین عکس بگیرید." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "کشیدن و رها کردن یا انتخاب یک فایل برای اپلود یا گرفتن عکس با استفاده از دوربین." -// replaceFileCaption: "Replace file" => "جایگزینی پرونده" \ No newline at end of file +// replaceFileCaption: "Replace file" => "جایگزینی پرونده"// eachRowUniqueError: "Each row must have a unique value." => "هر سطر باید یک مقدار منحصر به فرد داشته باشد." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "پروندهها را نمیتوان بارگذاری کرد. لطفا یک گرداننده برای رویداد \"onUploadFiles\" اضافه کنید." +// showDetails: "Show Details" => "نمایش جزئیات" +// hideDetails: "Hide Details" => "مخفی کردن جزئیات" +// ok: "OK" => "باشه" +// cancel: "Cancel" => "لغو" \ No newline at end of file diff --git a/src/localization/polish.ts b/src/localization/polish.ts index 97707e130a..d2386da2ce 100644 --- a/src/localization/polish.ts +++ b/src/localization/polish.ts @@ -25,6 +25,7 @@ export var polishSurveyStrings = { requiredError: "Proszę odpowiedzieć na to pytanie.", requiredErrorInPanel: "Proszę odpowiedzieć na co najmniej jedno pytanie.", requiredInAllRowsError: "Proszę odpowiedzieć na wszystkie pytania.", + eachRowUniqueError: "Każdy wiersz musi mieć unikatową wartość.", numericError: "W tym polu można wpisać tylko liczby.", minError: "Wartość nie powinna być mniejsza niż {0}", maxError: "Wartość nie powinna być większa niż {0}", @@ -42,6 +43,7 @@ export var polishSurveyStrings = { urlRequestError: "Żądanie zwróciło błąd '{0}'. {1}", urlGetChoicesError: "Żądanie nie zwróciło danych albo ścieżka jest nieprawidłowa", exceedMaxSize: "Rozmiar przesłanego pliku nie może przekraczać {0}.", + noUploadFilesHandler: "Nie można przesłać plików. Dodaj moduł obsługi zdarzenia \"onUploadFiles\".", otherRequiredError: "Proszę podać inną odpowiedź.", uploadingFile: "Trwa przenoszenie Twojego pliku, proszę spróbować ponownie za kilka sekund.", loadingFile: "Ładowanie...", @@ -56,6 +58,8 @@ export var polishSurveyStrings = { emptyRowsText: "Nie ma rzędów.", addPanel: "Dodaj panel", removePanel: "Usuń", + showDetails: "Pokaż szczegóły", + hideDetails: "Ukryj szczegóły", choices_Item: "element", matrix_column: "Kolumna", matrix_row: "Wiersz", @@ -94,7 +98,9 @@ export var polishSurveyStrings = { more: "Więcej", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Wszystkie wybory są uszeregowane", - selectToRankEmptyUnrankedAreaText: "Przeciągnij i upuść tutaj wybory, aby je uszeregować" + selectToRankEmptyUnrankedAreaText: "Przeciągnij i upuść tutaj wybory, aby je uszeregować", + ok: "OK", + cancel: "Anuluj" }; surveyLocalization.locales["pl"] = polishSurveyStrings; @@ -111,4 +117,9 @@ surveyLocalization.localeNames["pl"] = "polski"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Przeciągnij i upuść tutaj wybory, aby je uszeregować"// takePhotoCaption: "Take Photo" => "Zrób zdjęcie" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Kliknij przycisk poniżej, aby zrobić zdjęcie aparatem." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Przeciągnij i upuść lub wybierz plik, który chcesz przesłać lub zrobić zdjęcie za pomocą aparatu." -// replaceFileCaption: "Replace file" => "Zastąp plik" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Zastąp plik"// eachRowUniqueError: "Each row must have a unique value." => "Każdy wiersz musi mieć unikatową wartość." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Nie można przesłać plików. Dodaj moduł obsługi zdarzenia \"onUploadFiles\"." +// showDetails: "Show Details" => "Pokaż szczegóły" +// hideDetails: "Hide Details" => "Ukryj szczegóły" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Anuluj" \ No newline at end of file diff --git a/src/localization/portuguese-br.ts b/src/localization/portuguese-br.ts index 3cf631a0ac..e1aeb344a8 100644 --- a/src/localization/portuguese-br.ts +++ b/src/localization/portuguese-br.ts @@ -27,6 +27,7 @@ export var portugueseBrSurveyStrings = { requiredError: "Por favor, responda a pergunta.", requiredErrorInPanel: "Por favor, responda pelo menos uma pergunta.", requiredInAllRowsError: "Por favor, responda as perguntas em todas as linhas.", + eachRowUniqueError: "Cada linha deve ter um valor exclusivo.", numericError: "O valor deve ser numérico.", minError: "O valor não deve ser inferior a {0}", maxError: "O valor não deve ser maior que {0}", @@ -44,6 +45,7 @@ export var portugueseBrSurveyStrings = { urlRequestError: "A requisição retornou o erro '{0}'. {1}", urlGetChoicesError: "A requisição não retornou dados ou o 'caminho' da requisição não está correto", exceedMaxSize: "O tamanho do arquivo não deve exceder {0}.", + noUploadFilesHandler: "Os arquivos não podem ser carregados. Adicione um manipulador para o evento 'onUploadFiles'.", otherRequiredError: "Por favor, informe o outro valor.", uploadingFile: "Seu arquivo está sendo carregado. Por favor, aguarde alguns segundos e tente novamente.", loadingFile: "Carregando...", @@ -58,6 +60,8 @@ export var portugueseBrSurveyStrings = { emptyRowsText: "Não há filas.", addPanel: "Adicionar novo", removePanel: "Retirar", + showDetails: "Mostrar detalhes", + hideDetails: "Ocultar detalhes", choices_Item: "item", matrix_column: "Coluna", matrix_row: "Remar", @@ -96,7 +100,9 @@ export var portugueseBrSurveyStrings = { more: "Mais", tagboxDoneButtonCaption: "OKEY", selectToRankEmptyRankedAreaText: "Todas as opções são classificadas", - selectToRankEmptyUnrankedAreaText: "Arraste e solte as opções aqui para classificá-las" + selectToRankEmptyUnrankedAreaText: "Arraste e solte as opções aqui para classificá-las", + ok: "OKEY", + cancel: "Cancelar" }; surveyLocalization.locales["pt-br"] = portugueseBrSurveyStrings; @@ -172,4 +178,9 @@ surveyLocalization.localeNames["pt-br"] = "português brasileiro"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Arraste e solte as opções aqui para classificá-las"// takePhotoCaption: "Take Photo" => "Tirar foto" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Clique no botão abaixo para tirar uma foto usando a câmera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Arraste e solte ou selecione um arquivo para carregar ou tirar uma foto usando a câmera." -// replaceFileCaption: "Replace file" => "Substituir arquivo" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Substituir arquivo"// eachRowUniqueError: "Each row must have a unique value." => "Cada linha deve ter um valor exclusivo." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Os arquivos não podem ser carregados. Adicione um manipulador para o evento 'onUploadFiles'." +// showDetails: "Show Details" => "Mostrar detalhes" +// hideDetails: "Hide Details" => "Ocultar detalhes" +// ok: "OK" => "OKEY" +// cancel: "Cancel" => "Cancelar" \ No newline at end of file diff --git a/src/localization/portuguese.ts b/src/localization/portuguese.ts index 3cd89f81e9..4c69ce2ced 100644 --- a/src/localization/portuguese.ts +++ b/src/localization/portuguese.ts @@ -25,6 +25,7 @@ export var portugueseSurveyStrings = { requiredError: "Por favor, responda à pergunta.", requiredErrorInPanel: "Por favor, responda pelo menos a uma pergunta.", requiredInAllRowsError: "Por favor, responda às perguntas em todas as linhas.", + eachRowUniqueError: "Cada linha deve ter um valor exclusivo.", numericError: "O valor deve ser numérico.", minError: "O valor não deverá ser menor que {0}", maxError: "O valor não deverá ser maior que {0}", @@ -42,6 +43,7 @@ export var portugueseSurveyStrings = { urlRequestError: "O pedido retornou o erro '{0}'. {1}", urlGetChoicesError: "O pedido não retornou dados ou o 'caminho' do pedido não está correto", exceedMaxSize: "O tamanho do arquivo não deve exceder {0}.", + noUploadFilesHandler: "Os arquivos não podem ser carregados. Adicione um manipulador para o evento 'onUploadFiles'.", otherRequiredError: "Por favor, insira o outro valor.", uploadingFile: "O seu ficheiro está a carregar. Por favor, aguarde alguns segundos e tente novamente.", loadingFile: "A carregar...", @@ -56,6 +58,8 @@ export var portugueseSurveyStrings = { emptyRowsText: "Não existem linhas.", addPanel: "Adicionar novo", removePanel: "Remover", + showDetails: "Mostrar detalhes", + hideDetails: "Ocultar detalhes", choices_Item: "item", matrix_column: "Coluna", matrix_row: "Linha", @@ -94,7 +98,9 @@ export var portugueseSurveyStrings = { more: "Mais", tagboxDoneButtonCaption: "Terminado", selectToRankEmptyRankedAreaText: "Todas as opções são classificadas", - selectToRankEmptyUnrankedAreaText: "Arraste e solte as opções aqui para classificá-las" + selectToRankEmptyUnrankedAreaText: "Arraste e solte as opções aqui para classificá-las", + ok: "OKEY", + cancel: "Cancelar" }; surveyLocalization.locales["pt"] = portugueseSurveyStrings; @@ -108,4 +114,9 @@ surveyLocalization.localeNames["pt"] = "português"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Arraste e solte as opções aqui para classificá-las"// takePhotoCaption: "Take Photo" => "Tirar foto" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Clique no botão abaixo para tirar uma foto usando a câmera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Arraste e solte ou selecione um arquivo para carregar ou tirar uma foto usando a câmera." -// replaceFileCaption: "Replace file" => "Substituir arquivo" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Substituir arquivo"// eachRowUniqueError: "Each row must have a unique value." => "Cada linha deve ter um valor exclusivo." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Os arquivos não podem ser carregados. Adicione um manipulador para o evento 'onUploadFiles'." +// showDetails: "Show Details" => "Mostrar detalhes" +// hideDetails: "Hide Details" => "Ocultar detalhes" +// ok: "OK" => "OKEY" +// cancel: "Cancel" => "Cancelar" \ No newline at end of file diff --git a/src/localization/romanian.ts b/src/localization/romanian.ts index 2f26e315bf..3c8a49f64e 100644 --- a/src/localization/romanian.ts +++ b/src/localization/romanian.ts @@ -25,6 +25,7 @@ export var romanianSurveyStrings: any = { requiredError: "Răspunsul la această întrebare este obligatoriu.", requiredErrorInPanel: "Vă rugăm să răspundeți la cel puțin o întrebare.", requiredInAllRowsError: "Toate răspunsurile sunt obligatorii", + eachRowUniqueError: "Fiecare rând trebuie să aibă o valoare unică.", numericError: "Răspunsul trebuie să fie numeric.", minError: "Valoarea nu trebuie să fie mai mică de {0}", maxError: "Valoarea nu trebuie să fie mai mare de {0}", @@ -42,6 +43,7 @@ export var romanianSurveyStrings: any = { urlRequestError: "Request-ul a returnat eroarea '{0}'. {1}", urlGetChoicesError: "Request-ul nu a returnat date sau proprietatea 'path' este incorectă", exceedMaxSize: "Dimensiunea fişierului nu trebuie să depăşească {0}.", + noUploadFilesHandler: "Fișierele nu pot fi încărcate. Vă rugăm să adăugați un handler pentru evenimentul \"onUploadFiles\".", otherRequiredError: "Trebuie să completați câmpul 'Altul'.", uploadingFile: "Fișierul dumneavoastră este în curs de încărcare. Vă rugăm așteptați câteva secunde și reveniți apoi.", loadingFile: "Se încarcă...", @@ -56,6 +58,8 @@ export var romanianSurveyStrings: any = { emptyRowsText: "Nu există rânduri.", addPanel: "Adăugare", removePanel: "Ștergere", + showDetails: "Arată detalii", + hideDetails: "Ascunde detalii", choices_Item: "opțiune", matrix_column: "Coloană", matrix_row: "Rând", @@ -94,7 +98,9 @@ export var romanianSurveyStrings: any = { more: "Mai mult", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Toate opțiunile sunt clasificate", - selectToRankEmptyUnrankedAreaText: "Glisați și fixați opțiunile aici pentru a le clasifica" + selectToRankEmptyUnrankedAreaText: "Glisați și fixați opțiunile aici pentru a le clasifica", + ok: "OK", + cancel: "Anula" }; surveyLocalization.locales["ro"] = romanianSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["ro"] = "română"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Glisați și fixați opțiunile aici pentru a le clasifica"// takePhotoCaption: "Take Photo" => "Faceți o fotografie" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Faceți clic pe butonul de mai jos pentru a face o fotografie folosind camera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Glisați și fixați sau selectați un fișier pentru a încărca sau a face o fotografie folosind camera." -// replaceFileCaption: "Replace file" => "Înlocuire fișier" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Înlocuire fișier"// eachRowUniqueError: "Each row must have a unique value." => "Fiecare rând trebuie să aibă o valoare unică." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Fișierele nu pot fi încărcate. Vă rugăm să adăugați un handler pentru evenimentul \"onUploadFiles\"." +// showDetails: "Show Details" => "Arată detalii" +// hideDetails: "Hide Details" => "Ascunde detalii" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Anula" \ No newline at end of file diff --git a/src/localization/russian.ts b/src/localization/russian.ts index f3e9d2dc26..83e32f6ba1 100644 --- a/src/localization/russian.ts +++ b/src/localization/russian.ts @@ -25,6 +25,7 @@ export var russianSurveyStrings = { requiredError: "Пожалуйста, ответьте на вопрос.", requiredErrorInPanel: "Пожалуйста, ответьте по крайней мере на один вопрос.", requiredInAllRowsError: "Пожалуйста, ответьте на вопросы в каждой строке.", + eachRowUniqueError: "Каждая строка должна иметь уникальное значение.", numericError: "Ответ должен быть числом.", minError: "Значение не должно быть меньше {0}.", maxError: "Значение не должно превышать {0}.", @@ -42,6 +43,7 @@ export var russianSurveyStrings = { urlRequestError: "Запрос вернул ошибку '{0}'. {1}", urlGetChoicesError: "Ответ на запрос пришел пустой или свойство 'path' указано неверно", exceedMaxSize: "Размер файла не должен превышать {0}.", + noUploadFilesHandler: "Файлы не могут быть загружены. Пожалуйста, добавьте обработчик для события 'onUploadFiles'.", otherRequiredError: "Пожалуйста, введите данные в поле 'Другое'", uploadingFile: "Ваш файл загружается. Подождите несколько секунд и попробуйте снова.", loadingFile: "Загрузка...", @@ -56,6 +58,8 @@ export var russianSurveyStrings = { emptyRowsText: "Рядов нет.", addPanel: "Добавить новую", removePanel: "Удалить", + showDetails: "Показать подробности", + hideDetails: "Скрыть подробности", choices_Item: "Вариант", matrix_column: "Колонка", matrix_row: "Строка", @@ -94,7 +98,9 @@ export var russianSurveyStrings = { more: "Больше", tagboxDoneButtonCaption: "ХОРОШО", selectToRankEmptyRankedAreaText: "Все варианты ранжируются", - selectToRankEmptyUnrankedAreaText: "Перетащите сюда варианты, чтобы ранжировать их" + selectToRankEmptyUnrankedAreaText: "Перетащите сюда варианты, чтобы ранжировать их", + ok: "ХОРОШО", + cancel: "Отмена" }; surveyLocalization.locales["ru"] = russianSurveyStrings; @@ -111,4 +117,9 @@ surveyLocalization.localeNames["ru"] = "русский"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Перетащите сюда варианты, чтобы ранжировать их"// takePhotoCaption: "Take Photo" => "Сделать фото" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Нажмите кнопку ниже, чтобы сделать снимок с помощью камеры." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Перетащите или выберите файл для загрузки или съемки с помощью камеры." -// replaceFileCaption: "Replace file" => "Заменить файл" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Заменить файл"// eachRowUniqueError: "Each row must have a unique value." => "Каждая строка должна иметь уникальное значение." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Файлы не могут быть загружены. Пожалуйста, добавьте обработчик для события 'onUploadFiles'." +// showDetails: "Show Details" => "Показать подробности" +// hideDetails: "Hide Details" => "Скрыть подробности" +// ok: "OK" => "ХОРОШО" +// cancel: "Cancel" => "Отмена" \ No newline at end of file diff --git a/src/localization/serbian.ts b/src/localization/serbian.ts index 37b5a8baa0..5eda76cc44 100644 --- a/src/localization/serbian.ts +++ b/src/localization/serbian.ts @@ -25,6 +25,7 @@ export var serbianStrings = { requiredError: "Molimo odgovorite na ovo pitanje.", requiredErrorInPanel: "Molimo odgovorite na bar jedno pitanje.", requiredInAllRowsError: "Molimo odgovorite na pitanja u svim redovima.", + eachRowUniqueError: "Svaki red mora imati jedinstvenu vrednost.", numericError: "Vrednost bi trebalo da bude numerička.", minError: "Vrednost ne bi trebalo da bude manja od {0}", maxError: "Vrednost ne bi trebalo da bude veća od {0}", @@ -42,6 +43,7 @@ export var serbianStrings = { urlRequestError: "Zahtev je naišao na grešku '{0}'. {1}", urlGetChoicesError: "Zahtev nije pronašao podatke, ili je putanja netačna", exceedMaxSize: "Veličina fajla ne bi trebalo da prelazi {0}.", + noUploadFilesHandler: "Nije moguće otpremiti datoteke. Dodajte rukovaoca za događaj \"onUploadFiles\".", otherRequiredError: "Molimo unesite drugu vrednost.", uploadingFile: "Fajl se šalje. Molimo sačekajte neko vreme i pokušajte ponovo.", loadingFile: "Učitavanje...", @@ -56,6 +58,8 @@ export var serbianStrings = { emptyRowsText: "Nema redova.", addPanel: "Dodaj novo", removePanel: "Ukloni", + showDetails: "Prikaži detalje", + hideDetails: "Sakrij detalje", choices_Item: "stavka", matrix_column: "Kolona", matrix_row: "Red", @@ -94,7 +98,9 @@ export var serbianStrings = { more: "Viљe", tagboxDoneButtonCaption: "U redu", selectToRankEmptyRankedAreaText: "Svi izbori su rangirani", - selectToRankEmptyUnrankedAreaText: "Prevucite i otpustite izbor ovde da biste ih rangirali" + selectToRankEmptyUnrankedAreaText: "Prevucite i otpustite izbor ovde da biste ih rangirali", + ok: "U redu", + cancel: "Otkaži" }; //Uncomment these two lines on creating a translation file. You should replace "en" and enStrings with your locale ("fr", "de" and so on) and your variable. @@ -118,4 +124,9 @@ surveyLocalization.localeNames["rs"] = "Srpski"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Prevucite i otpustite izbor ovde da biste ih rangirali"// takePhotoCaption: "Take Photo" => "Fotografisanje" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Kliknite na dugme ispod da biste snimili fotografiju pomoću fotoaparata." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Prevucite i otpustite ili izaberite datoteku za otpremanje ili snimanje fotografije pomoću fotoaparata." -// replaceFileCaption: "Replace file" => "Zameni datoteku" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Zameni datoteku"// eachRowUniqueError: "Each row must have a unique value." => "Svaki red mora imati jedinstvenu vrednost." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Nije moguće otpremiti datoteke. Dodajte rukovaoca za događaj \"onUploadFiles\"." +// showDetails: "Show Details" => "Prikaži detalje" +// hideDetails: "Hide Details" => "Sakrij detalje" +// ok: "OK" => "U redu" +// cancel: "Cancel" => "Otkaži" \ No newline at end of file diff --git a/src/localization/simplified-chinese.ts b/src/localization/simplified-chinese.ts index 68d7523a41..4fcd06250f 100644 --- a/src/localization/simplified-chinese.ts +++ b/src/localization/simplified-chinese.ts @@ -25,6 +25,7 @@ export var simplifiedChineseSurveyStrings = { requiredError: "请填写此问题", requiredErrorInPanel: "至少回答一题.", requiredInAllRowsError: "请填写所有行中问题", + eachRowUniqueError: "每行必须具有唯一值。", numericError: "答案必须是个数字", minError: "该值不能小于 {0}", maxError: "该值不能大于 {0}", @@ -42,6 +43,7 @@ export var simplifiedChineseSurveyStrings = { urlRequestError: "载入选项时发生错误 '{0}': {1}", urlGetChoicesError: "未能载入有效的选项或请求参数路径有误", exceedMaxSize: "文件大小不能超过 {0}", + noUploadFilesHandler: "无法上传文件。请为“onUploadFiles”事件添加处理程序。", otherRequiredError: "请完成其他问题", uploadingFile: "文件上传中... 请耐心等待几秒后重试", loadingFile: "加载...", @@ -56,6 +58,8 @@ export var simplifiedChineseSurveyStrings = { emptyRowsText: "无内容", addPanel: "新添", removePanel: "删除", + showDetails: "显示详细信息", + hideDetails: "隐藏详细信息", choices_Item: "选项", matrix_column: "列", matrix_row: "行", @@ -94,7 +98,9 @@ export var simplifiedChineseSurveyStrings = { more: "更多", tagboxDoneButtonCaption: "还行", selectToRankEmptyRankedAreaText: "所有选择均已排名", - selectToRankEmptyUnrankedAreaText: "将选项拖放到此处进行排名" + selectToRankEmptyUnrankedAreaText: "将选项拖放到此处进行排名", + ok: "还行", + cancel: "取消" }; surveyLocalization.locales["zh-cn"] = simplifiedChineseSurveyStrings; @@ -117,4 +123,9 @@ surveyLocalization.localeNames["zh-cn"] = "简体中文"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "将选项拖放到此处进行排名"// takePhotoCaption: "Take Photo" => "拍照" // photoPlaceholder: "Click the button below to take a photo using the camera." => "单击下面的按钮使用相机拍照。" // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "拖放或选择要上传的文件或使用相机拍摄照片。" -// replaceFileCaption: "Replace file" => "替换文件" \ No newline at end of file +// replaceFileCaption: "Replace file" => "替换文件"// eachRowUniqueError: "Each row must have a unique value." => "每行必须具有唯一值。" +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "无法上传文件。请为“onUploadFiles”事件添加处理程序。" +// showDetails: "Show Details" => "显示详细信息" +// hideDetails: "Hide Details" => "隐藏详细信息" +// ok: "OK" => "还行" +// cancel: "Cancel" => "取消" \ No newline at end of file diff --git a/src/localization/slovak.ts b/src/localization/slovak.ts index 709d0ae145..2a4eee32b5 100644 --- a/src/localization/slovak.ts +++ b/src/localization/slovak.ts @@ -25,6 +25,7 @@ export var slovakSurveyStrings = { requiredError: "Požaduje sa odozva.", requiredErrorInPanel: "Požaduje sa odozva: zodpovedajte aspoň jednu otázku.", requiredInAllRowsError: "Požaduje sa odozva: zodpovedajte otázky vo všetkých riadkoch.", + eachRowUniqueError: "Každý riadok musí mať jedinečnú hodnotu.", numericError: "Hodnota má byť číselná.", minError: "Hodnota nemá byť nižšia než {0}", maxError: "Hodnota nemá byť vyššia než {0}", @@ -42,6 +43,7 @@ export var slovakSurveyStrings = { urlRequestError: "Požiadavky vrátila hodnotu „{0}“. {1}", urlGetChoicesError: "Požiadavka vrátila prázdne údaje alebo je vlastnosť „cesta“ nesprávna", exceedMaxSize: "Veľkosť súboru nemá prekročiť {0}.", + noUploadFilesHandler: "Súbory nie je možné nahrať. Pridajte obslužný program pre udalosť \"onUploadFiles\".", otherRequiredError: "Požaduje sa odozva: zadajte inú hodnotu.", uploadingFile: "Súbor sa odovzdáva. Počkajte niekoľko sekúnd a skúste to znova.", loadingFile: "Načítanie...", @@ -56,6 +58,8 @@ export var slovakSurveyStrings = { emptyRowsText: "K dispozícii nie sú žiadne riadky.", addPanel: "Pridať nové", removePanel: "Odstrániť", + showDetails: "Zobraziť podrobnosti", + hideDetails: "Skryť podrobnosti", choices_Item: "položka", matrix_column: "Stĺpec", matrix_row: "Riadok", @@ -94,7 +98,9 @@ export var slovakSurveyStrings = { more: "Viacej", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Všetky možnosti sú zoradené", - selectToRankEmptyUnrankedAreaText: "Presuňte sem voľby, aby ste ich zoradili" + selectToRankEmptyUnrankedAreaText: "Presuňte sem voľby, aby ste ich zoradili", + ok: "OK", + cancel: "Zrušiť" }; surveyLocalization.locales["sk"] = slovakSurveyStrings; @@ -113,4 +119,9 @@ surveyLocalization.localeNames["sk"] = "slovenčina"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Presuňte sem voľby, aby ste ich zoradili"// takePhotoCaption: "Take Photo" => "Odfotiť" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Kliknutím na tlačidlo nižšie nasnímate fotografiu pomocou fotoaparátu." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Presuňte myšou alebo vyberte súbor, ktorý chcete nahrať alebo nasnímať fotografiu pomocou fotoaparátu." -// replaceFileCaption: "Replace file" => "Nahradenie súboru" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Nahradenie súboru"// eachRowUniqueError: "Each row must have a unique value." => "Každý riadok musí mať jedinečnú hodnotu." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Súbory nie je možné nahrať. Pridajte obslužný program pre udalosť \"onUploadFiles\"." +// showDetails: "Show Details" => "Zobraziť podrobnosti" +// hideDetails: "Hide Details" => "Skryť podrobnosti" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Zrušiť" \ No newline at end of file diff --git a/src/localization/spanish.ts b/src/localization/spanish.ts index cd83be14e9..2180c73fca 100644 --- a/src/localization/spanish.ts +++ b/src/localization/spanish.ts @@ -25,6 +25,7 @@ export var spanishSurveyStrings = { requiredError: "Por favor conteste la pregunta.", requiredErrorInPanel: "Por favor, responda al menos una pregunta.", requiredInAllRowsError: "Por favor conteste las preguntas en cada hilera.", + eachRowUniqueError: "Cada fila debe tener un valor único.", numericError: "La estimación debe ser numérica.", minError: "La estimación no debe ser menor que {0}", maxError: "La estimación no debe ser mayor que {0}", @@ -42,6 +43,7 @@ export var spanishSurveyStrings = { urlRequestError: "La solicitud regresó error '{0}'. {1}", urlGetChoicesError: "La solicitud regresó vacío de data o la propiedad 'trayectoria' no es correcta", exceedMaxSize: "El tamaño del archivo no debe de exceder {0}.", + noUploadFilesHandler: "Los archivos no se pueden cargar. Agregue un controlador para el evento 'onUploadFiles'.", otherRequiredError: "Por favor agregue la otra estimación.", uploadingFile: "Su archivo se está subiendo. Por favor espere unos segundos e intente de nuevo.", loadingFile: "Cargando...", @@ -56,6 +58,8 @@ export var spanishSurveyStrings = { emptyRowsText: "No hay hileras.", addPanel: "Añadir nuevo", removePanel: "Retire", + showDetails: "Mostrar detalles", + hideDetails: "Ocultar detalles", choices_Item: "artículo", matrix_column: "Columna", matrix_row: "Hilera", @@ -94,7 +98,9 @@ export var spanishSurveyStrings = { more: "Más", tagboxDoneButtonCaption: "De acuerdo", selectToRankEmptyRankedAreaText: "Todas las opciones están clasificadas", - selectToRankEmptyUnrankedAreaText: "Arrastra y suelta opciones aquí para clasificarlas" + selectToRankEmptyUnrankedAreaText: "Arrastra y suelta opciones aquí para clasificarlas", + ok: "De acuerdo", + cancel: "Cancelar" }; surveyLocalization.locales["es"] = spanishSurveyStrings; @@ -111,4 +117,9 @@ surveyLocalization.localeNames["es"] = "español"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Arrastra y suelta opciones aquí para clasificarlas"// takePhotoCaption: "Take Photo" => "Tomar foto" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Haga clic en el botón de abajo para tomar una foto con la cámara." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Arrastre y suelte o seleccione un archivo para cargar o tomar una foto con la cámara." -// replaceFileCaption: "Replace file" => "Reemplazar archivo" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Reemplazar archivo"// eachRowUniqueError: "Each row must have a unique value." => "Cada fila debe tener un valor único." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Los archivos no se pueden cargar. Agregue un controlador para el evento 'onUploadFiles'." +// showDetails: "Show Details" => "Mostrar detalles" +// hideDetails: "Hide Details" => "Ocultar detalles" +// ok: "OK" => "De acuerdo" +// cancel: "Cancel" => "Cancelar" \ No newline at end of file diff --git a/src/localization/swahili.ts b/src/localization/swahili.ts index 1f95fa767b..29a1f0b6f6 100644 --- a/src/localization/swahili.ts +++ b/src/localization/swahili.ts @@ -25,6 +25,7 @@ export var swahiliStrings = { requiredError: "Tafadhali jibu hili swali.", requiredErrorInPanel: "Tafadhali jibu swali angalau moja.", requiredInAllRowsError: "Tafadhali jibu maswali katika safu zote.", + eachRowUniqueError: "Kila safu lazima iwe na thamani ya kipekee.", numericError: "Thamani inapaswa kuwa ya nambari.", minError: "Thamani haipaswi kuwa chini ya {0}", maxError: "Thamani haipaswi kuwa kubwa kuliko {0}", @@ -42,6 +43,7 @@ export var swahiliStrings = { urlRequestError: "Ombi lina kosa '{0}'. {1}", urlGetChoicesError: "Ombi lilirudisha data tupu au the 'path' mali ya njia sio sahihi", exceedMaxSize: "Saizi ya faili haipaswi kuzidi {0}.", + noUploadFilesHandler: "Faili haziwezi kupakiwa. Tafadhali ongeza kishiko kwa tukio la 'onUploadFiles'.", otherRequiredError: "Tafadhali ingiza thamani nyingine.", uploadingFile: "Faili yako inapakia.Tafadhali subiri sekunde kadhaa na ujaribu tena.", loadingFile: "Inapakia...", @@ -56,6 +58,8 @@ export var swahiliStrings = { emptyRowsText: "Hakuna safu.", addPanel: "Ongeza mpya", removePanel: "Toa", + showDetails: "Onyesha Maelezo", + hideDetails: "Ficha Maelezo", choices_Item: "kitu", matrix_column: "Kolamu", matrix_row: "Safu", @@ -94,7 +98,9 @@ export var swahiliStrings = { more: "Zaidi", tagboxDoneButtonCaption: "Sawa kabisa", selectToRankEmptyRankedAreaText: "Chaguzi zote zimeorodheshwa", - selectToRankEmptyUnrankedAreaText: "Buruta na uache uchaguzi hapa ili kuziorodhesha" + selectToRankEmptyUnrankedAreaText: "Buruta na uache uchaguzi hapa ili kuziorodhesha", + ok: "Sawa kabisa", + cancel: "Katisha" }; surveyLocalization.locales["sw"] = swahiliStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["sw"] = "swahili"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Buruta na uache uchaguzi hapa ili kuziorodhesha"// takePhotoCaption: "Take Photo" => "Chukua Picha" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Bonyeza kitufe hapa chini ili kupiga picha kwa kutumia kamera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Drag na kuacha au kuchagua faili kupakia au kuchukua picha kwa kutumia kamera." -// replaceFileCaption: "Replace file" => "Badilisha faili" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Badilisha faili"// eachRowUniqueError: "Each row must have a unique value." => "Kila safu lazima iwe na thamani ya kipekee." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Faili haziwezi kupakiwa. Tafadhali ongeza kishiko kwa tukio la 'onUploadFiles'." +// showDetails: "Show Details" => "Onyesha Maelezo" +// hideDetails: "Hide Details" => "Ficha Maelezo" +// ok: "OK" => "Sawa kabisa" +// cancel: "Cancel" => "Katisha" \ No newline at end of file diff --git a/src/localization/swedish.ts b/src/localization/swedish.ts index 24d799d689..7d2ee91d20 100644 --- a/src/localization/swedish.ts +++ b/src/localization/swedish.ts @@ -25,6 +25,7 @@ export var swedishSurveyStrings = { requiredError: "Frågan är obligatorisk.", requiredErrorInPanel: "Vänligen svara på minst en fråga.", requiredInAllRowsError: "Var vänlig besvara frågorna på alla rader.", + eachRowUniqueError: "Varje rad måste ha ett unikt värde.", numericError: "Värdet ska vara numeriskt.", minError: "Värdet får inte vara mindre än {0}", maxError: "Värdet får inte vara större än {0}", @@ -42,6 +43,7 @@ export var swedishSurveyStrings = { urlRequestError: "Förfrågan returnerade felet '{0}'. {1}", urlGetChoicesError: "Antingen returnerade förfrågan ingen data eller så är egenskapen 'path' inte korrekt", exceedMaxSize: "Filstorleken får ej överstiga {0}.", + noUploadFilesHandler: "Filer kan inte laddas upp. Lägg till en hanterare för händelsen 'onUploadFiles'.", otherRequiredError: "Var vänlig ange det andra värdet.", uploadingFile: "Din fil laddas upp. Var vänlig vänta några sekunder och försök sedan igen.", loadingFile: "Laddar...", @@ -56,6 +58,8 @@ export var swedishSurveyStrings = { emptyRowsText: "Det finns inga rader.", addPanel: "Lägg till ny", removePanel: "Ta bort", + showDetails: "Detaljer", + hideDetails: "Göm detaljer", choices_Item: "Artikel", matrix_column: "Kolumn", matrix_row: "Rad", @@ -94,7 +98,9 @@ export var swedishSurveyStrings = { more: "Mer", tagboxDoneButtonCaption: "OKEJ", selectToRankEmptyRankedAreaText: "Alla val rangordnas", - selectToRankEmptyUnrankedAreaText: "Dra och släpp val här för att rangordna dem" + selectToRankEmptyUnrankedAreaText: "Dra och släpp val här för att rangordna dem", + ok: "OKEJ", + cancel: "Annullera" }; surveyLocalization.locales["sv"] = swedishSurveyStrings; @@ -111,4 +117,9 @@ surveyLocalization.localeNames["sv"] = "svenska"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Dra och släpp val här för att rangordna dem"// takePhotoCaption: "Take Photo" => "Ta foto" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Klicka på knappen nedan för att ta ett foto med kameran." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Dra och släpp eller välj en fil att ladda upp eller ta ett foto med kameran." -// replaceFileCaption: "Replace file" => "Ersätt fil" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Ersätt fil"// eachRowUniqueError: "Each row must have a unique value." => "Varje rad måste ha ett unikt värde." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Filer kan inte laddas upp. Lägg till en hanterare för händelsen 'onUploadFiles'." +// showDetails: "Show Details" => "Detaljer" +// hideDetails: "Hide Details" => "Göm detaljer" +// ok: "OK" => "OKEJ" +// cancel: "Cancel" => "Annullera" \ No newline at end of file diff --git a/src/localization/telugu.ts b/src/localization/telugu.ts index ce4b3559c8..ee6b2d2de8 100644 --- a/src/localization/telugu.ts +++ b/src/localization/telugu.ts @@ -25,6 +25,7 @@ export var teluguStrings = { requiredError: "దయచేసి ప్రశ్నకు జవాబు ఇవ్వండి", requiredErrorInPanel: "దయచేసి కనీసం ఒక్క ప్రశ్నకైనా జవాబు ఇవ్వండి", requiredInAllRowsError: "దయచేసి అన్ని వరుసలలో ఉన్న ప్రశ్నలకు జవాబు ఇవ్వండి", + eachRowUniqueError: "ప్రతి వరుసకు ఒక ప్రత్యేకమైన విలువ ఉండాలి.", numericError: "విలువను సంఖ్యలలో తెలియజేయండి", minError: "విలువ {0} కంటే తక్కువగా ఉండకూడదు.", maxError: "విలువ {0} కంటే ఎక్కువ ఉండకూడదు.", @@ -42,6 +43,7 @@ export var teluguStrings = { urlRequestError: "విన్నపము {0} ని తప్పుగా గుర్తించింది {1}", urlGetChoicesError: "విన్నపము ఖాళీ డేటాని తిరిగిచ్చింది, లేదా path తప్పైన ది", exceedMaxSize: "ఫైల్ పరిమాణం{0} కంటే పెద్దదిగా ఉండకూడదు", + noUploadFilesHandler: "ఫైళ్లను అప్ లోడ్ చేయలేం. దయచేసి 'ఆన్ అప్ లోడ్ ఫైల్స్' ఈవెంట్ కొరకు ఒక హ్యాండ్లర్ ని జోడించండి.", otherRequiredError: "దయచేసి ఇతర విలువలను నమో దించండి", uploadingFile: "మీ ఫైల్ అప్లోడ్ అవుతున్నది దయచేసి కొన్ని సెకండ్లు వేచి ఉండండి మరియు మళ్లీ ప్రయత్నించండి", loadingFile: "లోడ్ అవుతున్నది", @@ -56,6 +58,8 @@ export var teluguStrings = { emptyRowsText: "వరుసలు లేవు.", addPanel: "కొత్త దాన్ని చేర్పించండి", removePanel: "తీసేయండి", + showDetails: "వివరాలు చూపించు", + hideDetails: "వివరాలను దాచండి", choices_Item: "వస్తువులు", matrix_column: "కాలం ", matrix_row: "వరుస", @@ -94,7 +98,9 @@ export var teluguStrings = { more: "ఎక్కువ", tagboxDoneButtonCaption: "సరే", selectToRankEmptyRankedAreaText: "అన్ని ఎంపికలు ర్యాంక్ చేయబడతాయి", - selectToRankEmptyUnrankedAreaText: "వాటిని ర్యాంక్ చేయడం కొరకు ఎంపికలను ఇక్కడ డ్రాగ్ మరియు డ్రాప్ చేయండి" + selectToRankEmptyUnrankedAreaText: "వాటిని ర్యాంక్ చేయడం కొరకు ఎంపికలను ఇక్కడ డ్రాగ్ మరియు డ్రాప్ చేయండి", + ok: "సరే", + cancel: "రద్దు" }; surveyLocalization.locales["tel"] = teluguStrings; @@ -124,4 +130,9 @@ surveyLocalization.localeNames["tel"] = "Telugu"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "వాటిని ర్యాంక్ చేయడం కొరకు ఎంపికలను ఇక్కడ డ్రాగ్ మరియు డ్రాప్ చేయండి"// takePhotoCaption: "Take Photo" => "ఫోటో తీసుకోండి" // photoPlaceholder: "Click the button below to take a photo using the camera." => "కెమెరాను ఉపయోగించి ఫోటో తీయడానికి దిగువ బటన్ మీద క్లిక్ చేయండి." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "కెమెరాను ఉపయోగించి ఫోటోను అప్ లోడ్ చేయడానికి లేదా తీయడానికి ఫైల్ ను డ్రాగ్ మరియు డ్రాప్ చేయండి లేదా ఎంచుకోండి." -// replaceFileCaption: "Replace file" => "ఫైలు మార్చండి" \ No newline at end of file +// replaceFileCaption: "Replace file" => "ఫైలు మార్చండి"// eachRowUniqueError: "Each row must have a unique value." => "ప్రతి వరుసకు ఒక ప్రత్యేకమైన విలువ ఉండాలి." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "ఫైళ్లను అప్ లోడ్ చేయలేం. దయచేసి 'ఆన్ అప్ లోడ్ ఫైల్స్' ఈవెంట్ కొరకు ఒక హ్యాండ్లర్ ని జోడించండి." +// showDetails: "Show Details" => "వివరాలు చూపించు" +// hideDetails: "Hide Details" => "వివరాలను దాచండి" +// ok: "OK" => "సరే" +// cancel: "Cancel" => "రద్దు" \ No newline at end of file diff --git a/src/localization/thai.ts b/src/localization/thai.ts index 8203924c91..3e39eb2919 100644 --- a/src/localization/thai.ts +++ b/src/localization/thai.ts @@ -25,6 +25,7 @@ export var thaiStrings = { requiredError: "กรุณาตอบคำถาม", requiredErrorInPanel: "กรุณาตอบขั้นต่ำหนึ่งคำถาม", requiredInAllRowsError: "กรุณาตอบคำถามในทุกๆแถว", + eachRowUniqueError: "แต่ละแถวต้องมีค่าที่ไม่ซ้ํากัน", numericError: "ข้อมูลที่ใส่ต้องเป็นตัวเลข", minError: "ค่าไม่ควรน้อยกว่า {0}", maxError: "ค่าไม่ควรเกิน{0}", @@ -42,6 +43,7 @@ export var thaiStrings = { urlRequestError: "รีเควสรีเทิร์น error '{0}'. {1}", urlGetChoicesError: "รีเควสรีเทิร์นข้อมูลว่างเปล่า หรือ 'path' property ไม่ถูกต้อง", exceedMaxSize: "ขนาดไฟล์ต้องไม่เกิน {0}.", + noUploadFilesHandler: "ไม่สามารถอัปโหลดไฟล์ได้ โปรดเพิ่มตัวจัดการสําหรับเหตุการณ์ 'onUploadFiles'", otherRequiredError: "กรุณาใส่ค่าอื่น", uploadingFile: "ไฟล์ของคุณกำลังอัพโหลดอยู่. กรุณารอสักครู่แล้วทำการลองอีกครั้ง", loadingFile: "กำลังโหลด...", @@ -56,6 +58,8 @@ export var thaiStrings = { emptyRowsText: "ไม่มีแถว", addPanel: "เพิ่ม", removePanel: "ลบ", + showDetails: "แสดงรายละเอียด", + hideDetails: "ซ่อนรายละเอียด", choices_Item: "ชิ้น", matrix_column: "คอลัมน์", matrix_row: "แถว", @@ -94,7 +98,9 @@ export var thaiStrings = { more: "อีก", tagboxDoneButtonCaption: "ตกลง, ได้", selectToRankEmptyRankedAreaText: "ตัวเลือกทั้งหมดจะถูกจัดอันดับ", - selectToRankEmptyUnrankedAreaText: "ลากและวางตัวเลือกที่นี่เพื่อจัดอันดับ" + selectToRankEmptyUnrankedAreaText: "ลากและวางตัวเลือกที่นี่เพื่อจัดอันดับ", + ok: "ตกลง, ได้", + cancel: "ยกเลิก" }; surveyLocalization.locales["th"] = thaiStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["th"] = "ไทย"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "ลากและวางตัวเลือกที่นี่เพื่อจัดอันดับ"// takePhotoCaption: "Take Photo" => "ถ่ายรูป" // photoPlaceholder: "Click the button below to take a photo using the camera." => "คลิกปุ่มด้านล่างเพื่อถ่ายภาพโดยใช้กล้อง" // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "ลากและวางหรือเลือกไฟล์ที่จะอัปโหลดหรือถ่ายภาพโดยใช้กล้อง" -// replaceFileCaption: "Replace file" => "แทนที่ไฟล์" \ No newline at end of file +// replaceFileCaption: "Replace file" => "แทนที่ไฟล์"// eachRowUniqueError: "Each row must have a unique value." => "แต่ละแถวต้องมีค่าที่ไม่ซ้ํากัน" +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "ไม่สามารถอัปโหลดไฟล์ได้ โปรดเพิ่มตัวจัดการสําหรับเหตุการณ์ 'onUploadFiles'" +// showDetails: "Show Details" => "แสดงรายละเอียด" +// hideDetails: "Hide Details" => "ซ่อนรายละเอียด" +// ok: "OK" => "ตกลง, ได้" +// cancel: "Cancel" => "ยกเลิก" \ No newline at end of file diff --git a/src/localization/traditional-chinese.ts b/src/localization/traditional-chinese.ts index 8e4cd7e798..8e1d3e6daf 100644 --- a/src/localization/traditional-chinese.ts +++ b/src/localization/traditional-chinese.ts @@ -25,6 +25,7 @@ export var traditionalChineseSurveyStrings = { requiredError: "請填寫此問題", requiredErrorInPanel: "需要回答:至少回答一個問題。", requiredInAllRowsError: "請填寫所有行中問題", + eachRowUniqueError: "每行必須具有唯一值。", numericError: "答案必須是個數字", minError: "該值不應小於 {0}", maxError: "該值不應大於 {0}", @@ -42,6 +43,7 @@ export var traditionalChineseSurveyStrings = { urlRequestError: "載入選項時發生錯誤 '{0}': {1}", urlGetChoicesError: "未能載入有效的選項或請求參數路徑有誤", exceedMaxSize: "文件大小不能超過 {0}", + noUploadFilesHandler: "無法上傳檔。請為「onUploadFiles」事件添加處理程式。", otherRequiredError: "請完成其他問題", uploadingFile: "文件上傳中... 請耐心等待幾秒後重試", loadingFile: "裝載。。。", @@ -56,6 +58,8 @@ export var traditionalChineseSurveyStrings = { emptyRowsText: "沒有行。", addPanel: "新增", removePanel: "刪除", + showDetails: "顯示詳細資訊", + hideDetails: "隱藏詳細資訊", choices_Item: "選項", matrix_column: "列", matrix_row: "行", @@ -94,7 +98,9 @@ export var traditionalChineseSurveyStrings = { more: "更多", tagboxDoneButtonCaption: "還行", selectToRankEmptyRankedAreaText: "所有選擇均已排名", - selectToRankEmptyUnrankedAreaText: "將選項拖放到此處進行排名" + selectToRankEmptyUnrankedAreaText: "將選項拖放到此處進行排名", + ok: "還行", + cancel: "取消" }; surveyLocalization.locales["zh-tw"] = traditionalChineseSurveyStrings; @@ -158,4 +164,9 @@ surveyLocalization.localeNames["zh-tw"] = "繁體中文"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "將選項拖放到此處進行排名"// takePhotoCaption: "Take Photo" => "拍照" // photoPlaceholder: "Click the button below to take a photo using the camera." => "按下下面的按鈕使用相機拍照。" // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "拖放或選擇要上傳的檔或使用相機拍攝照片。" -// replaceFileCaption: "Replace file" => "替換檔" \ No newline at end of file +// replaceFileCaption: "Replace file" => "替換檔"// eachRowUniqueError: "Each row must have a unique value." => "每行必須具有唯一值。" +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "無法上傳檔。請為「onUploadFiles」事件添加處理程式。" +// showDetails: "Show Details" => "顯示詳細資訊" +// hideDetails: "Hide Details" => "隱藏詳細資訊" +// ok: "OK" => "還行" +// cancel: "Cancel" => "取消" \ No newline at end of file diff --git a/src/localization/turkish.ts b/src/localization/turkish.ts index 684186120d..2e8cc21902 100644 --- a/src/localization/turkish.ts +++ b/src/localization/turkish.ts @@ -25,6 +25,7 @@ export var turkishSurveyStrings = { requiredError: "Lütfen soruya cevap verin.", requiredErrorInPanel: "Lütfen en az bir soruyu yanıtlayın.", requiredInAllRowsError: "Lütfen tüm satırlardaki soruları cevaplayın.", + eachRowUniqueError: "Her satırın benzersiz bir değeri olmalıdır.", numericError: "Değer sayısal olmalıdır.", minError: "Değer {0}'den küçük olmamalıdır", maxError: "Değer {0}'dan büyük olmamalıdır", @@ -42,6 +43,7 @@ export var turkishSurveyStrings = { urlRequestError: "İstek '{0}' hatasını döndürdü. {1}", urlGetChoicesError: "İstek boş veri döndürdü veya 'path' özelliği yanlış", exceedMaxSize: "Dosya boyutu {0} değerini geçemez.", + noUploadFilesHandler: "Dosyalar yüklenemiyor. Lütfen 'onUploadFiles' olayı için bir işleyici ekleyin.", otherRequiredError: "Lütfen diğer değerleri girin.", uploadingFile: "Dosyanız yükleniyor. Lütfen birkaç saniye bekleyin ve tekrar deneyin.", loadingFile: "Yükleniyor...", @@ -56,6 +58,8 @@ export var turkishSurveyStrings = { emptyRowsText: "Satır yok.", addPanel: "Yeni ekle", removePanel: "Kaldır", + showDetails: "Detayları göster", + hideDetails: "Detayları Gizle", choices_Item: "öğe", matrix_column: "Sütun", matrix_row: "Satır", @@ -94,7 +98,9 @@ export var turkishSurveyStrings = { more: "Daha fazla", tagboxDoneButtonCaption: "TAMAM", selectToRankEmptyRankedAreaText: "Tüm seçenekler sıralanmıştır", - selectToRankEmptyUnrankedAreaText: "Seçimleri sıralamak için buraya sürükleyip bırakın" + selectToRankEmptyUnrankedAreaText: "Seçimleri sıralamak için buraya sürükleyip bırakın", + ok: "TAMAM", + cancel: "İptal" }; surveyLocalization.locales["tr"] = turkishSurveyStrings; @@ -105,4 +111,9 @@ surveyLocalization.localeNames["tr"] = "türkçe"; // takePhotoCaption: "Take Photo" => "Fotoğraf Çekin" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Kamerayı kullanarak fotoğraf çekmek için aşağıdaki düğmeyi tıklayın." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Kamerayı kullanarak fotoğraf yüklemek veya fotoğraf çekmek için bir dosyayı sürükleyip bırakın veya seçin." -// replaceFileCaption: "Replace file" => "Dosyayı değiştir" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Dosyayı değiştir"// eachRowUniqueError: "Each row must have a unique value." => "Her satırın benzersiz bir değeri olmalıdır." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Dosyalar yüklenemiyor. Lütfen 'onUploadFiles' olayı için bir işleyici ekleyin." +// showDetails: "Show Details" => "Detayları göster" +// hideDetails: "Hide Details" => "Detayları Gizle" +// ok: "OK" => "TAMAM" +// cancel: "Cancel" => "İptal" \ No newline at end of file diff --git a/src/localization/ukrainian.ts b/src/localization/ukrainian.ts index 5b177123bc..5a43adac1a 100644 --- a/src/localization/ukrainian.ts +++ b/src/localization/ukrainian.ts @@ -25,6 +25,7 @@ export var ukrainianSurveyStrings = { requiredError: "Будь ласка, дайте відповідь.", requiredErrorInPanel: "Будь ласка, дайте відповідь хоча б на одне питання.", requiredInAllRowsError: "Будь ласка, дайте відповідь на питання в кожному рядку.", + eachRowUniqueError: "Кожен рядок повинен мати унікальне значення.", numericError: "Відповідь повинна бути числом.", minError: "Значення не повинно бути менше {0}", maxError: "Значення не повинно бути більше {0}", @@ -42,6 +43,7 @@ export var ukrainianSurveyStrings = { urlRequestError: "Запит повернув помилку '{0}'. {1}", urlGetChoicesError: "Відповідь на запит повернулась порожньою або властивіть 'path' вказано невірно", exceedMaxSize: "Розмір файлу не повинен перевищувати {0}.", + noUploadFilesHandler: "Файли не можна завантажити. Будь ласка, додайте обробник для події 'onUploadFiles'.", otherRequiredError: "Будь ласка, введіть дані в поле 'Інше'", uploadingFile: "Ваш файл завантажується. Зачекайте декілька секунд і спробуйте знову.", loadingFile: "Завантаження...", @@ -56,6 +58,8 @@ export var ukrainianSurveyStrings = { emptyRowsText: "Рядів немає.", addPanel: "Додати нову", removePanel: "Видалити", + showDetails: "Показати подробиці", + hideDetails: "Сховати подробиці", choices_Item: "Варіант", matrix_column: "Колонка", matrix_row: "Рядок", @@ -94,7 +98,9 @@ export var ukrainianSurveyStrings = { more: "Більше", tagboxDoneButtonCaption: "ГАРАЗД", selectToRankEmptyRankedAreaText: "Всі варіанти ранжуються", - selectToRankEmptyUnrankedAreaText: "Перетягніть варіанти тут, щоб оцінити їх" + selectToRankEmptyUnrankedAreaText: "Перетягніть варіанти тут, щоб оцінити їх", + ok: "ГАРАЗД", + cancel: "Скасувати" }; surveyLocalization.locales["ua"] = ukrainianSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["ua"] = "українська"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Перетягніть варіанти тут, щоб оцінити їх"// takePhotoCaption: "Take Photo" => "Зробити фото" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Натисніть кнопку нижче, щоб зробити фото за допомогою камери." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Перетягніть або виберіть файл, щоб завантажити або зробити фотографію за допомогою камери." -// replaceFileCaption: "Replace file" => "Замінити файл" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Замінити файл"// eachRowUniqueError: "Each row must have a unique value." => "Кожен рядок повинен мати унікальне значення." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Файли не можна завантажити. Будь ласка, додайте обробник для події 'onUploadFiles'." +// showDetails: "Show Details" => "Показати подробиці" +// hideDetails: "Hide Details" => "Сховати подробиці" +// ok: "OK" => "ГАРАЗД" +// cancel: "Cancel" => "Скасувати" \ No newline at end of file diff --git a/src/localization/urdu.ts b/src/localization/urdu.ts index 54b70bae75..40940fd104 100644 --- a/src/localization/urdu.ts +++ b/src/localization/urdu.ts @@ -25,6 +25,7 @@ export var urduSurveyStrings = { requiredError: "براہ کرم سوال کا جواب دیں۔", requiredErrorInPanel: "براہ کرم کم از کم ایک سوال کا جواب دیں۔", requiredInAllRowsError: "براہ کرم تمام قطاروں میں سوالات کے جوابات دیں۔", + eachRowUniqueError: "ہر قطار کی ایک منفرد قدر ہونی چاہئے۔", numericError: "اس کا جواب عدد میں ہونا چاہئے۔", minError: "عدد صفر سے کم نہیں ہونی چاہئے", maxError: "عدد صفر سے زیادہ نہیں ہونی چاہیے", @@ -42,6 +43,7 @@ export var urduSurveyStrings = { urlRequestError: "درخواست نے غلطی '{0}' لوٹائی۔ {1}", urlGetChoicesError: "درخواست نے خالی ڈیٹا واپس کر دیا۔ یا 'راستہ' پراپرٹی غلط ہے۔", exceedMaxSize: "فائل کا سائز {0} سے زیادہ نہیں ہونا چاہیے.", + noUploadFilesHandler: "فائلیں اپ لوڈ نہیں کی جا سکتیں۔ براہ کرم 'آن اپ لوڈ فائلز' ایونٹ کے لئے ایک ہینڈلر شامل کریں۔", otherRequiredError: "براہ کرم دوسری عدد درج کریں۔ ", uploadingFile: "آپ کی فائل اپ لوڈ ہو رہی ہے۔ براہ کرم چند سیکنڈ انتظار کریں اور دوبارہ کوشش کریں۔", loadingFile: "..لوڈ ہو رہا ہے۔", @@ -56,6 +58,8 @@ export var urduSurveyStrings = { emptyRowsText: "کوئی قطار نہیں ہیں۔ ", addPanel: "نیا شامل کریں", removePanel: "مٹائے", + showDetails: "تفصیلات دکھائیں", + hideDetails: "تفصیلات چھپائیں", choices_Item: "آئٹم", matrix_column: "کالم۔", matrix_row: "قطار۔", @@ -94,7 +98,9 @@ export var urduSurveyStrings = { more: "زیادہ", tagboxDoneButtonCaption: "ٹھيک ہے", selectToRankEmptyRankedAreaText: "تمام اختیارات کی درجہ بندی کی جاتی ہے", - selectToRankEmptyUnrankedAreaText: "انہیں درجہ دینے کے لئے انتخاب کو یہاں گھسیٹیں اور چھوڑیں" + selectToRankEmptyUnrankedAreaText: "انہیں درجہ دینے کے لئے انتخاب کو یہاں گھسیٹیں اور چھوڑیں", + ok: "ٹھيک ہے", + cancel: "منسوخ" }; //Uncomment these two lines on creating a translation file. You should replace "en" and enStrings with your locale ("fr", "de" and so on) and your variable. @@ -116,4 +122,9 @@ surveyLocalization.localeNames["ur"] = "Urdu"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "انہیں درجہ دینے کے لئے انتخاب کو یہاں گھسیٹیں اور چھوڑیں"// takePhotoCaption: "Take Photo" => "تصویر لیں" // photoPlaceholder: "Click the button below to take a photo using the camera." => "کیمرے کا استعمال کرتے ہوئے تصویر لینے کے لئے نیچے دیئے گئے بٹن پر کلک کریں۔" // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "کیمرے کا استعمال کرتے ہوئے تصویر اپ لوڈ کرنے یا لینے کے لئے فائل کو گھسیٹیں اور چھوڑیں یا منتخب کریں۔" -// replaceFileCaption: "Replace file" => "فائل کو تبدیل کریں" \ No newline at end of file +// replaceFileCaption: "Replace file" => "فائل کو تبدیل کریں"// eachRowUniqueError: "Each row must have a unique value." => "ہر قطار کی ایک منفرد قدر ہونی چاہئے۔" +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "فائلیں اپ لوڈ نہیں کی جا سکتیں۔ براہ کرم 'آن اپ لوڈ فائلز' ایونٹ کے لئے ایک ہینڈلر شامل کریں۔" +// showDetails: "Show Details" => "تفصیلات دکھائیں" +// hideDetails: "Hide Details" => "تفصیلات چھپائیں" +// ok: "OK" => "ٹھيک ہے" +// cancel: "Cancel" => "منسوخ" \ No newline at end of file diff --git a/src/localization/vietnamese.ts b/src/localization/vietnamese.ts index 2e4c96cef7..ff6901eafb 100644 --- a/src/localization/vietnamese.ts +++ b/src/localization/vietnamese.ts @@ -25,6 +25,7 @@ export var vietnameseSurveyStrings = { requiredError: "Vui lòng trả lời câu hỏi.", requiredErrorInPanel: "Vui lòng trả lời ít nhất một câu hỏi.", requiredInAllRowsError: "Vui lòng trả lời các câu hỏi trên tất cả các dòng.", + eachRowUniqueError: "Mỗi hàng phải có một giá trị duy nhất.", numericError: "Giá trị nên là kiểu số.", minError: "Giá trị không được nhỏ hơn {0}", maxError: "Giá trị không được lớn hơn {0}", @@ -42,6 +43,7 @@ export var vietnameseSurveyStrings = { urlRequestError: "Yêu cầu trả về lỗi '{0}'. {1}", urlGetChoicesError: "Yêu cầu trả về dữ liệu trống hoặc thuộc tính 'path' không đúng", exceedMaxSize: "Kích thước tập tin không nên vượt quá {0}.", + noUploadFilesHandler: "Không thể tải tệp lên. Vui lòng thêm trình xử lý cho sự kiện 'onUploadFiles'.", otherRequiredError: "Vui lòng điền giá trị khác.", uploadingFile: "Tập tin đang được tải lên. Vui lòng chờ một lúc và thử lại.", loadingFile: "Đang tải...", @@ -56,6 +58,8 @@ export var vietnameseSurveyStrings = { emptyRowsText: "Không có hàng.", addPanel: "Thêm mới", removePanel: "Xóa", + showDetails: "Hiển thị chi tiết", + hideDetails: "Ẩn chi tiết", choices_Item: "mục", matrix_column: "Cột", matrix_row: "Dòng", @@ -94,7 +98,9 @@ export var vietnameseSurveyStrings = { more: "Nhiều hơn", tagboxDoneButtonCaption: "OK", selectToRankEmptyRankedAreaText: "Tất cả các lựa chọn được xếp hạng", - selectToRankEmptyUnrankedAreaText: "Kéo và thả các lựa chọn vào đây để xếp hạng chúng" + selectToRankEmptyUnrankedAreaText: "Kéo và thả các lựa chọn vào đây để xếp hạng chúng", + ok: "OK", + cancel: "Hủy" }; //Uncomment these two lines on creating a translation file. You should replace "en" and enStrings with your locale ("fr", "de" and so on) and your variable. @@ -124,4 +130,9 @@ surveyLocalization.localeNames["vi"] = "Việt Nam"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Kéo và thả các lựa chọn vào đây để xếp hạng chúng"// takePhotoCaption: "Take Photo" => "Chụp ảnh" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Nhấp vào nút bên dưới để chụp ảnh bằng máy ảnh." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Kéo và thả hoặc chọn tệp để tải lên hoặc chụp ảnh bằng máy ảnh." -// replaceFileCaption: "Replace file" => "Thay thế tập tin" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Thay thế tập tin"// eachRowUniqueError: "Each row must have a unique value." => "Mỗi hàng phải có một giá trị duy nhất." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Không thể tải tệp lên. Vui lòng thêm trình xử lý cho sự kiện 'onUploadFiles'." +// showDetails: "Show Details" => "Hiển thị chi tiết" +// hideDetails: "Hide Details" => "Ẩn chi tiết" +// ok: "OK" => "OK" +// cancel: "Cancel" => "Hủy" \ No newline at end of file diff --git a/src/localization/welsh.ts b/src/localization/welsh.ts index 182946d4c9..9e562bd836 100644 --- a/src/localization/welsh.ts +++ b/src/localization/welsh.ts @@ -25,6 +25,7 @@ export var welshSurveyStrings = { requiredError: "Atebwch y cwestiwn.", requiredErrorInPanel: "Atebwch o leiaf un cwestiwn.", requiredInAllRowsError: "Atebwch y cwestiynau ym mhob rhes.", + eachRowUniqueError: "Rhaid i bob rhes fod â gwerth unigryw.", numericError: "Dylai’r gwerth fod yn rhif.", minError: "Ni ddylai'r gwerth fod yn llai na {0}", maxError: "Ni ddylai'r gwerth fod yn fwy na {0}", @@ -42,6 +43,7 @@ export var welshSurveyStrings = { urlRequestError: "Roedd y cais wedi arwain at y gwall '{0}'. {1}", urlGetChoicesError: "Roedd y cais wedi arwain at ddata gwag neu mae priodwedd y ‘path’ yn anghywir ", exceedMaxSize: "Ddylai’r ffeil ddim bod yn fwy na {0}.", + noUploadFilesHandler: "Ni ellir llwytho ffeiliau i fyny. Ychwanegwch handler ar gyfer y digwyddiad 'onUploadFiles'.", otherRequiredError: "Rhowch y gwerth arall.", uploadingFile: "Mae eich ffeil wrthi’n llwytho i fyny. Arhoswch ychydig o eiliadau a rhoi cynnig arall arni.", loadingFile: "Wrthi’n llwytho...", @@ -56,6 +58,8 @@ export var welshSurveyStrings = { emptyRowsText: "Nid oes unrhyw ffraeau.", addPanel: "Ychwanegu o’r newydd", removePanel: "Tynnu", + showDetails: "Dangos manylion", + hideDetails: "Manylion Cuddio", choices_Item: "eitem", matrix_column: "Colofn", matrix_row: "Rhes", @@ -94,7 +98,9 @@ export var welshSurveyStrings = { more: "Rhagor", tagboxDoneButtonCaption: "OCÊ", selectToRankEmptyRankedAreaText: "Mae'r holl ddewisiadau yn cael eu rhestru", - selectToRankEmptyUnrankedAreaText: "Dewisiadau llusgo a gollwng yma i'w graddio" + selectToRankEmptyUnrankedAreaText: "Dewisiadau llusgo a gollwng yma i'w graddio", + ok: "OCÊ", + cancel: "Canslo" }; surveyLocalization.locales["cy"] = welshSurveyStrings; @@ -123,4 +129,9 @@ surveyLocalization.localeNames["cy"] = "cymraeg"; // selectToRankEmptyUnrankedAreaText: "Drag and drop choices here to rank them" => "Dewisiadau llusgo a gollwng yma i'w graddio"// takePhotoCaption: "Take Photo" => "Tynnu Llun" // photoPlaceholder: "Click the button below to take a photo using the camera." => "Cliciwch y botwm isod i dynnu llun gan ddefnyddio'r camera." // fileOrPhotoPlaceholder: "Drag and drop or select a file to upload or take a photo using the camera." => "Llusgwch a gollwng neu dewiswch ffeil i lanlwytho neu dynnu llun gan ddefnyddio'r camera." -// replaceFileCaption: "Replace file" => "Amnewid ffeil" \ No newline at end of file +// replaceFileCaption: "Replace file" => "Amnewid ffeil"// eachRowUniqueError: "Each row must have a unique value." => "Rhaid i bob rhes fod â gwerth unigryw." +// noUploadFilesHandler: "Files cannot be uploaded. Please add a handler for the 'onUploadFiles' event." => "Ni ellir llwytho ffeiliau i fyny. Ychwanegwch handler ar gyfer y digwyddiad 'onUploadFiles'." +// showDetails: "Show Details" => "Dangos manylion" +// hideDetails: "Hide Details" => "Manylion Cuddio" +// ok: "OK" => "OCÊ" +// cancel: "Cancel" => "Canslo" \ No newline at end of file diff --git a/src/question_matrix.ts b/src/question_matrix.ts index 82e34e81d8..cd906898cb 100644 --- a/src/question_matrix.ts +++ b/src/question_matrix.ts @@ -1,11 +1,11 @@ -import { Helpers } from "./helpers"; +import { HashTable, Helpers } from "./helpers"; import { ItemValue } from "./itemvalue"; import { QuestionMatrixBaseModel } from "./martixBase"; import { JsonObject, Serializer } from "./jsonobject"; import { Base } from "./base"; import { SurveyError } from "./survey-error"; import { surveyLocalization } from "./surveyStrings"; -import { RequiredInAllRowsError } from "./error"; +import { RequiredInAllRowsError, EachRowUniqueError } from "./error"; import { QuestionFactory } from "./questionfactory"; import { LocalizableString, ILocalizableOwner } from "./localizablestring"; import { QuestionDropdownModel } from "./question_dropdown"; @@ -18,6 +18,7 @@ import { IPlainDataOptions } from "./base-interfaces"; export interface IMatrixData { onMatrixRowChanged(row: MatrixRowModel): void; getCorrectedRowValue(value: any): any; + hasErrorInRow(row: MatrixRowModel): boolean; } export class MatrixRowModel extends Base { @@ -51,18 +52,17 @@ export class MatrixRowModel extends Base { public get locText(): LocalizableString { return this.item.locText; } - public get value() { + public get value(): any { return this.getPropertyValue("value"); } - public set value(newValue: any) { - newValue = this.data.getCorrectedRowValue(newValue); - this.setPropertyValue("value", newValue); + public set value(val: any) { + val = this.data.getCorrectedRowValue(val); + this.setPropertyValue("value", val); } public get rowClasses(): string { const cssClasses = (this.data).cssClasses; - const hasError = !!(this.data).getErrorByType("requiredinallrowserror"); return new CssClassBuilder().append(cssClasses.row) - .append(cssClasses.rowError, hasError && this.isValueEmpty(this.value)) + .append(cssClasses.rowError, this.data.hasErrorInRow(this)) .toString(); } } @@ -261,6 +261,12 @@ export class QuestionMatrixModel public set isAllRowRequired(val: boolean) { this.setPropertyValue("isAllRowRequired", val); } + public get eachRowUnique(): boolean { + return this.getPropertyValue("eachRowUnique"); + } + public set eachRowUnique(val: boolean) { + this.setPropertyValue("eachRowUnique", val); + } public get hasRows(): boolean { return this.rows.length > 0; } @@ -423,30 +429,63 @@ export class QuestionMatrixModel supportGoNextPageAutomatic(): boolean { return this.isMouseDown === true && this.hasValuesInAllRows(); } - protected onCheckForErrors( - errors: Array, - isOnValueChanged: boolean - ) { + private errorsInRow: HashTable; + protected onCheckForErrors(errors: Array, isOnValueChanged: boolean): void { super.onCheckForErrors(errors, isOnValueChanged); - if ( - (!isOnValueChanged || this.hasCssError()) && - this.hasErrorInRows() - ) { - errors.push(new RequiredInAllRowsError(null, this)); + this.errorsInRow = undefined; + if (!isOnValueChanged || this.hasCssError()) { + if(this.hasErrorAllRowsRequired()) { + errors.push(new RequiredInAllRowsError(null, this)); + } + if(this.hasErrorEachRowUnique()) { + errors.push(new EachRowUniqueError(null, this)); + } } } - private hasErrorInRows(): boolean { - if (!this.isAllRowRequired) return false; - return !this.hasValuesInAllRows(); + private hasErrorAllRowsRequired(): boolean { + return this.isAllRowRequired && !this.hasValuesInAllRows(); + } + private hasErrorEachRowUnique(): boolean { + return this.eachRowUnique && this.hasNonUniqueValueInRow(); } private hasValuesInAllRows(): boolean { var rows = this.generatedVisibleRows; if (!rows) rows = this.visibleRows; if (!rows) return true; + let res = true; for (var i = 0; i < rows.length; i++) { - if (this.isValueEmpty(rows[i].value)) return false; + const row = rows[i]; + const hasValue = !this.isValueEmpty(row.value); + if(!hasValue) { + this.addErrorIntoRow(row); + } + res = res && hasValue; } - return true; + return res; + } + private hasNonUniqueValueInRow(): boolean { + var rows = this.generatedVisibleRows; + if (!rows) rows = this.visibleRows; + if (!rows) return false; + const hash: HashTable = {}; + let res = true; + for (var i = 0; i < rows.length; i++) { + const val = rows[i].value; + const isEmpty = this.isValueEmpty(val); + const isUnique = isEmpty || hash[val] !== true; + if(!isUnique) { + this.addErrorIntoRow(rows[i]); + } + res = res && isUnique; + if(!isEmpty) { + hash[val] = true; + } + } + return !res; + } + private addErrorIntoRow(row: MatrixRowModel): void { + if(!this.errorsInRow) this.errorsInRow = {}; + this.errorsInRow[row.name] = true; } protected getIsAnswered(): boolean { return super.getIsAnswered() && this.hasValuesInAllRows(); @@ -597,6 +636,9 @@ export class QuestionMatrixModel } return value; } + hasErrorInRow(row: MatrixRowModel): boolean { + return !!this.errorsInRow && !!this.errorsInRow[row.name]; + } protected getSearchableItemValueKeys(keys: Array) { keys.push("columns"); keys.push("rows"); @@ -654,6 +696,7 @@ Serializer.addClass( choices: ["initial", "random"], }, "isAllRowRequired:boolean", + { name: "eachRowUnique:boolean", category: "validation" }, "hideIfRowsEmpty:boolean", { name: "cellComponent", visible: false, default: "survey-matrix-cell" } ], diff --git a/tests/question_matrix_tests.ts b/tests/question_matrix_tests.ts index 6fc2f6856f..3afc6fffa4 100644 --- a/tests/question_matrix_tests.ts +++ b/tests/question_matrix_tests.ts @@ -4,6 +4,123 @@ import { SurveyModel } from "../src/survey"; export default QUnit.module("Survey_QuestionMatrix"); +QUnit.test("Matrix Question isAllRowRequired property", function (assert) { + var matrix = new QuestionMatrixModel("q1"); + matrix.rows = ["row1", "row2"]; + matrix.columns = ["col1", "col2"]; + assert.equal(matrix.hasErrors(), false, "There is no errors by default"); + matrix.isAllRowRequired = true; + assert.equal(matrix.hasErrors(), true, "There is no errors by default"); +}); +QUnit.test( + "Matrix Question isAllRowRequired property, value is zero, Bug#2332", + function (assert) { + var matrix = new QuestionMatrixModel("q1"); + matrix.fromJSON({ + type: "matrix", + name: "question", + isRequired: true, + columns: [ + { + value: 0, + text: "No", + }, + { + value: 1, + text: "Maybe", + }, + { + value: 2, + text: "Yes", + }, + ], + rows: ["item1", "item2"], + isAllRowRequired: true, + }); + var rows = matrix.visibleRows; + assert.equal(matrix.hasErrors(), true, "is Required error"); + rows[0].value = 0; + assert.equal(matrix.hasErrors(), true, "isAllRowRequired error"); + rows[1].value = 0; + assert.deepEqual( + matrix.value, + { item1: 0, item2: 0 }, + "value set correctly" + ); + assert.equal(rows[0].value, 0, "First row value set correctly"); + assert.equal(rows[1].value, 0, "Second row value set correctly"); + assert.equal(matrix.hasErrors(), false, "There is no errors"); + } +); +QUnit.test("Matrix Question eachRowUnique property", function (assert) { + var matrix = new QuestionMatrixModel("q1"); + matrix.rows = ["row1", "row2"]; + matrix.columns = ["col1", "col2"]; + assert.equal(matrix.validate(), true, "validate #1"); + matrix.eachRowUnique = true; + assert.equal(matrix.validate(), true, "validate #2"); + matrix.value = { row1: "col1" }; + assert.equal(matrix.validate(), true, "validate #3"); + matrix.value = { row2: "col1" }; + assert.equal(matrix.validate(), true, "validate #4"); + matrix.value = { row1: "col1", row2: "col1" }; + assert.equal(matrix.validate(), false, "validate #5"); + matrix.value = { row1: "col1", row2: "col2" }; + assert.equal(matrix.validate(), true, "validate #6"); + matrix.value = { row1: "col2", row2: "col2" }; + assert.equal(matrix.validate(), false, "validate #7"); +}); +QUnit.test("matirix row, rowClasses property, isAllRowRequired", function (assert) { + var survey = new SurveyModel({ + elements: [ + { + type: "matrix", + name: "q1", + columns: ["col1", "col2"], + rows: ["row1", "row2"], + isAllRowRequired: true, + }, + ], + }); + survey.css = { matrix: { row: "row", rowError: "row_error" } }; + var question = survey.getQuestionByName("q1"); + assert.ok(question.cssClasses.row, "Row class is not empty"); + assert.equal(question.visibleRows[0].rowClasses, "row", "Set row class"); + question.validate(); + assert.equal(question.visibleRows[0].rowClasses, "row row_error", "Error for the first row"); + question.visibleRows[0].value = "col1"; + assert.equal(question.visibleRows[0].rowClasses, "row", "first row value is set"); + assert.equal(question.visibleRows[1].rowClasses, "row row_error", "Error for the second row"); +}); +QUnit.test("matirix row, rowClasses property, eachRowUnique", function (assert) { + const survey = new SurveyModel({ + elements: [ + { + type: "matrix", + name: "q1", + columns: ["col1", "col2"], + rows: ["row1", "row2"], + eachRowUnique: true, + }, + ], + }); + survey.css = { matrix: { row: "row", rowError: "row_error" } }; + const question = survey.getQuestionByName("q1"); + assert.ok(question.cssClasses.row, "Row class is not empty"); + assert.equal(question.hasErrorInRow(question.visibleRows[0]), false, "hasErrorInRow(0)"); + assert.equal(question.visibleRows[0].rowClasses, "row", "Set row class"); + question.value = { row1: "col1", row2: "col1" }; + question.validate(); + assert.equal(question.hasErrorInRow(question.visibleRows[0]), false, "hasErrorInRow(0) #1"); + assert.equal(question.visibleRows[0].rowClasses, "row", "first row #1"); + assert.equal(question.hasErrorInRow(question.visibleRows[1]), true, "hasErrorInRow(1) #1"); + assert.equal(question.visibleRows[1].rowClasses, "row row_error", "second row #1"); + question.visibleRows[1].value = "col2"; + assert.equal(question.hasErrorInRow(question.visibleRows[0]), false, "hasErrorInRow(0) #1"); + assert.equal(question.visibleRows[0].rowClasses, "row", "first row #2"); + assert.equal(question.hasErrorInRow(question.visibleRows[1]), false, "hasErrorInRow(1) #2"); + assert.equal(question.visibleRows[1].rowClasses, "row", "second row #2"); +}); QUnit.test("check row randomization in design mode", (assert) => { var json = { diff --git a/tests/surveyquestiontests.ts b/tests/surveyquestiontests.ts index 7a849d94d6..b1eb00308d 100644 --- a/tests/surveyquestiontests.ts +++ b/tests/surveyquestiontests.ts @@ -493,54 +493,6 @@ QUnit.test("Matrix Question sortVisibleRows", function (assert) { var rows = matrix.visibleRows; assert.equal(rows[0].name, "row2", "rows has been reordered"); }); -QUnit.test("Matrix Question isAllRowRequired property", function (assert) { - var matrix = new QuestionMatrixModel("q1"); - matrix.rows = ["row1", "row2"]; - matrix.columns = ["col1", "col2"]; - assert.equal(matrix.hasErrors(), false, "There is no errors by default"); - matrix.isAllRowRequired = true; - assert.equal(matrix.hasErrors(), true, "There is no errors by default"); -}); -QUnit.test( - "Matrix Question isAllRowRequired property, value is zero, Bug#2332", - function (assert) { - var matrix = new QuestionMatrixModel("q1"); - matrix.fromJSON({ - type: "matrix", - name: "question", - isRequired: true, - columns: [ - { - value: 0, - text: "No", - }, - { - value: 1, - text: "Maybe", - }, - { - value: 2, - text: "Yes", - }, - ], - rows: ["item1", "item2"], - isAllRowRequired: true, - }); - var rows = matrix.visibleRows; - assert.equal(matrix.hasErrors(), true, "is Required error"); - rows[0].value = 0; - assert.equal(matrix.hasErrors(), true, "isAllRowRequired error"); - rows[1].value = 0; - assert.deepEqual( - matrix.value, - { item1: 0, item2: 0 }, - "value set correctly" - ); - assert.equal(rows[0].value, 0, "First row value set correctly"); - assert.equal(rows[1].value, 0, "Second row value set correctly"); - assert.equal(matrix.hasErrors(), false, "There is no errors"); - } -); QUnit.test("Matrix Question supportGoNextPageAutomatic property", function ( assert ) { @@ -4912,40 +4864,6 @@ QUnit.test("question.isInputTextUpdate", function (assert) { question.inputType = "number"; assert.equal(question.isInputTextUpdate, true, "inputType = number"); }); -QUnit.test("matirix row, rowClasses property", function (assert) { - var survey = new SurveyModel({ - elements: [ - { - type: "matrix", - name: "q1", - columns: ["col1", "col2"], - rows: ["row1", "row2"], - isAllRowRequired: true, - }, - ], - }); - survey.css = { matrix: { row: "row", rowError: "row_error" } }; - var question = survey.getQuestionByName("q1"); - assert.ok(question.cssClasses.row, "Row class is not empty"); - assert.equal(question.visibleRows[0].rowClasses, "row", "Set row class"); - question.hasErrors(); - assert.equal( - question.visibleRows[0].rowClasses, - "row row_error", - "Error for the first row" - ); - question.visibleRows[0].value = "col1"; - assert.equal( - question.visibleRows[0].rowClasses, - "row", - "first row value is set" - ); - assert.equal( - question.visibleRows[1].rowClasses, - "row row_error", - "Error for the second row" - ); -}); QUnit.test("matirix and survey.onValueChanged event, Bug#2408", function ( assert ) { From 5498beb4a4793a5a5d54c6c2512ed04c6b77e544 Mon Sep 17 00:00:00 2001 From: RomanTsukanov Date: Thu, 11 Jan 2024 13:08:18 +0400 Subject: [PATCH 3/3] Describe `eachRowUnique --- src/question_matrix.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/question_matrix.ts b/src/question_matrix.ts index cd906898cb..938be8742b 100644 --- a/src/question_matrix.ts +++ b/src/question_matrix.ts @@ -254,6 +254,8 @@ export class QuestionMatrixModel /** * Specifies whether each row requires an answer. If a respondent skips a row, the question displays a validation error. * @see isRequired + * @see eachRowUnique + * @see validators */ public get isAllRowRequired(): boolean { return this.getPropertyValue("isAllRowRequired"); @@ -261,6 +263,11 @@ export class QuestionMatrixModel public set isAllRowRequired(val: boolean) { this.setPropertyValue("isAllRowRequired", val); } + /** + * Specifies whether answers in all rows should be unique. If any answers duplicate, the question displays a validation error. + * @see isAllRowRequired + * @see validators + */ public get eachRowUnique(): boolean { return this.getPropertyValue("eachRowUnique"); }