UNPKG

gherkin

Version:
3,050 lines (2,997 loc) 133 kB
/* The MIT License (MIT) Copyright (c) 2014-2015 Cucumber Ltd, Gaspar Nagy, TechTalk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ (function (root, factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define([], factory); } else if (typeof window === 'object') { // Browser globals (root is window) window.Gherkin = factory(); } else { // Node.js/IO.js module.exports = factory(); } }(this, function () { return { Parser: require('./lib/gherkin/parser'), TokenScanner: require('./lib/gherkin/token_scanner'), TokenMatcher: require('./lib/gherkin/token_matcher'), AstBuilder: require('./lib/gherkin/ast_builder') }; })); },{"./lib/gherkin/ast_builder":2,"./lib/gherkin/parser":7,"./lib/gherkin/token_matcher":9,"./lib/gherkin/token_scanner":10}],2:[function(require,module,exports){ var AstNode = require('./ast_node'); var Errors = require('./errors'); module.exports = function AstBuilder () { var stack = [new AstNode('None')]; var comments = []; this.reset = function () { stack = [new AstNode('None')]; comments = []; }; this.startRule = function (ruleType) { stack.push(new AstNode(ruleType)); }; this.endRule = function (ruleType) { var node = stack.pop(); var transformedNode = transformNode(node); currentNode().add(node.ruleType, transformedNode); }; this.build = function (token) { if(token.matchedType === 'Comment') { comments.push({ type: 'Comment', location: getLocation(token), text: token.matchedText }); } else { currentNode().add(token.matchedType, token); } }; this.getResult = function () { return currentNode().getSingle('Feature'); }; function currentNode () { return stack[stack.length - 1]; } function getLocation (token, column) { return !column ? token.location : {line: token.location.line, column: column}; } function getTags (node) { var tags = []; var tagsNode = node.getSingle('Tags'); if (!tagsNode) return tags; tagsNode.getTokens('TagLine').forEach(function (token) { token.matchedItems.forEach(function (tagItem) { tags.push({ type: 'Tag', location: getLocation(token, tagItem.column), name: tagItem.text }); }); }); return tags; } function getCells(tableRowToken) { return tableRowToken.matchedItems.map(function (cellItem) { return { type: 'TableCell', location: getLocation(tableRowToken, cellItem.column), value: cellItem.text } }); } function getDescription (node) { return node.getSingle('Description'); } function getSteps (node) { return node.getItems('Step'); } function getTableRows(node) { var rows = node.getTokens('TableRow').map(function (token) { return { type: 'TableRow', location: getLocation(token), cells: getCells(token) }; }); ensureCellCount(rows); return rows; } function ensureCellCount(rows) { if(rows.length == 0) return; var cellCount = rows[0].cells.length; rows.forEach(function (row) { if (row.cells.length != cellCount) { throw Errors.AstBuilderException.create("inconsistent cell count within the table", row.location); } }); } function transformNode(node) { switch(node.ruleType) { case 'Step': var stepLine = node.getToken('StepLine'); var stepArgument = node.getSingle('DataTable') || node.getSingle('DocString') || undefined; return { type: node.ruleType, location: getLocation(stepLine), keyword: stepLine.matchedKeyword, text: stepLine.matchedText, argument: stepArgument } case 'DocString': var separatorToken = node.getTokens('DocStringSeparator')[0]; var contentType = separatorToken.matchedText; var lineTokens = node.getTokens('Other'); var content = lineTokens.map(function (t) {return t.matchedText}).join("\n"); return { type: node.ruleType, location: getLocation(separatorToken), contentType: contentType, content: content }; case 'DataTable': var rows = getTableRows(node); return { type: node.ruleType, location: rows[0].location, rows: rows, } case 'Background': var backgroundLine = node.getToken('BackgroundLine'); var description = getDescription(node); var steps = getSteps(node); return { type: node.ruleType, location: getLocation(backgroundLine), keyword: backgroundLine.matchedKeyword, name: backgroundLine.matchedText, description: description, steps: steps }; case 'Scenario_Definition': var tags = getTags(node); var scenarioNode = node.getSingle('Scenario'); if(scenarioNode) { var scenarioLine = scenarioNode.getToken('ScenarioLine'); var description = getDescription(scenarioNode); var steps = getSteps(scenarioNode); return { type: scenarioNode.ruleType, tags: tags, location: getLocation(scenarioLine), keyword: scenarioLine.matchedKeyword, name: scenarioLine.matchedText, description: description, steps: steps }; } else { var scenarioOutlineNode = node.getSingle('ScenarioOutline'); if(!scenarioOutlineNode) throw new Error('Internal grammar error'); var scenarioOutlineLine = scenarioOutlineNode.getToken('ScenarioOutlineLine'); var description = getDescription(scenarioOutlineNode); var steps = getSteps(scenarioOutlineNode); var examples = scenarioOutlineNode.getItems('Examples_Definition'); return { type: scenarioOutlineNode.ruleType, tags: tags, location: getLocation(scenarioOutlineLine), keyword: scenarioOutlineLine.matchedKeyword, name: scenarioOutlineLine.matchedText, description: description, steps: steps, examples: examples }; } case 'Examples_Definition': var tags = getTags(node); var examplesNode = node.getSingle('Examples'); var examplesLine = examplesNode.getToken('ExamplesLine'); var description = getDescription(examplesNode); var rows = getTableRows(examplesNode) return { type: examplesNode.ruleType, tags: tags, location: getLocation(examplesLine), keyword: examplesLine.matchedKeyword, name: examplesLine.matchedText, description: description, tableHeader: rows[0], tableBody: rows.slice(1) }; case 'Description': var lineTokens = node.getTokens('Other'); // Trim trailing empty lines var end = lineTokens.length; while (end > 0 && lineTokens[end-1].line.trimmedLineText === '') { end--; } lineTokens = lineTokens.slice(0, end); var description = lineTokens.map(function (token) { return token.matchedText}).join("\n"); return description; case 'Feature': var header = node.getSingle('Feature_Header'); if(!header) return null; var tags = getTags(header); var featureLine = header.getToken('FeatureLine'); if(!featureLine) return null; var background = node.getSingle('Background'); var scenariodefinitions = node.getItems('Scenario_Definition'); var description = getDescription(header); var language = featureLine.matchedGherkinDialect; return { type: node.ruleType, tags: tags, location: getLocation(featureLine), language: language, keyword: featureLine.matchedKeyword, name: featureLine.matchedText, description: description, background: background, scenarioDefinitions: scenariodefinitions, comments: comments }; default: return node; } } }; },{"./ast_node":3,"./errors":4}],3:[function(require,module,exports){ function AstNode (ruleType) { this.ruleType = ruleType; this._subItems = {}; } AstNode.prototype.add = function (ruleType, obj) { var items = this._subItems[ruleType]; if(items === undefined) this._subItems[ruleType] = items = []; items.push(obj); } AstNode.prototype.getSingle = function (ruleType) { return (this._subItems[ruleType] || [])[0]; } AstNode.prototype.getItems = function (ruleType) { return this._subItems[ruleType] || []; } AstNode.prototype.getToken = function (tokenType) { return this.getSingle(tokenType); } AstNode.prototype.getTokens = function (tokenType) { return this._subItems[tokenType] || []; } module.exports = AstNode; },{}],4:[function(require,module,exports){ var Errors = {}; [ 'ParserException', 'CompositeParserException', 'UnexpectedTokenException', 'UnexpectedEOFException', 'AstBuilderException', 'NoSuchLanguageException' ].forEach(function (name) { function ErrorProto (message) { this.message = message || ('Unspecified ' + name); if (Error.captureStackTrace) { Error.captureStackTrace(this, arguments.callee); } } ErrorProto.prototype = Object.create(Error.prototype); ErrorProto.prototype.name = name; ErrorProto.prototype.constructor = ErrorProto; Errors[name] = ErrorProto; }); Errors.CompositeParserException.create = function(errors) { var message = "Parser errors:\n" + errors.map(function (e) { return e.message; }).join("\n"); var err = new Errors.CompositeParserException(message); err.errors = errors; return err; }; Errors.UnexpectedTokenException.create = function(token, expectedTokenTypes, stateComment) { var message = "expected: " + expectedTokenTypes.join(', ') + ", got '" + token.getTokenValue().trim() + "'"; var location = !token.location.column ? {line: token.location.line, column: token.line.indent + 1 } : token.location; return createError(Errors.UnexpectedEOFException, message, location); }; Errors.UnexpectedEOFException.create = function(token, expectedTokenTypes, stateComment) { var message = "unexpected end of file, expected: " + expectedTokenTypes.join(', '); return createError(Errors.UnexpectedTokenException, message, token.location); }; Errors.AstBuilderException.create = function(message, location) { return createError(Errors.AstBuilderException, message, location); }; Errors.NoSuchLanguageException.create = function(language, location) { var message = "Language not supported: " + language; return createError(Errors.NoSuchLanguageException, message, location); }; function createError(Ctor, message, location) { var fullMessage = "(" + location.line + ":" + location.column + "): " + message; var error = new Ctor(fullMessage); error.location = location; return error; } module.exports = Errors; },{}],5:[function(require,module,exports){ module.exports={ "af": { "and": [ "* ", "En " ], "background": [ "Agtergrond" ], "but": [ "* ", "Maar " ], "examples": [ "Voorbeelde" ], "feature": [ "Funksie", "Besigheid Behoefte", "Vermoë" ], "given": [ "* ", "Gegewe " ], "name": "Afrikaans", "native": "Afrikaans", "scenario": [ "Situasie" ], "scenarioOutline": [ "Situasie Uiteensetting" ], "then": [ "* ", "Dan " ], "when": [ "* ", "Wanneer " ] }, "am": { "and": [ "* ", "Եվ " ], "background": [ "Կոնտեքստ" ], "but": [ "* ", "Բայց " ], "examples": [ "Օրինակներ" ], "feature": [ "Ֆունկցիոնալություն", "Հատկություն" ], "given": [ "* ", "Դիցուք " ], "name": "Armenian", "native": "հայերեն", "scenario": [ "Սցենար" ], "scenarioOutline": [ "Սցենարի կառուցվացքը" ], "then": [ "* ", "Ապա " ], "when": [ "* ", "Եթե ", "Երբ " ] }, "ar": { "and": [ "* ", "و " ], "background": [ "الخلفية" ], "but": [ "* ", "لكن " ], "examples": [ "امثلة" ], "feature": [ "خاصية" ], "given": [ "* ", "بفرض " ], "name": "Arabic", "native": "العربية", "scenario": [ "سيناريو" ], "scenarioOutline": [ "سيناريو مخطط" ], "then": [ "* ", "اذاً ", "ثم " ], "when": [ "* ", "متى ", "عندما " ] }, "bg": { "and": [ "* ", "И " ], "background": [ "Предистория" ], "but": [ "* ", "Но " ], "examples": [ "Примери" ], "feature": [ "Функционалност" ], "given": [ "* ", "Дадено " ], "name": "Bulgarian", "native": "български", "scenario": [ "Сценарий" ], "scenarioOutline": [ "Рамка на сценарий" ], "then": [ "* ", "То " ], "when": [ "* ", "Когато " ] }, "bm": { "and": [ "* ", "Dan " ], "background": [ "Latar Belakang" ], "but": [ "* ", "Tetapi ", "Tapi " ], "examples": [ "Contoh" ], "feature": [ "Fungsi" ], "given": [ "* ", "Diberi ", "Bagi " ], "name": "Malay", "native": "Bahasa Melayu", "scenario": [ "Senario", "Situai", "Keadaan" ], "scenarioOutline": [ "Template Senario", "Template Situai", "Template Keadaan", "Menggariskan Senario" ], "then": [ "* ", "Maka ", "Kemudian " ], "when": [ "* ", "Apabila " ] }, "bs": { "and": [ "* ", "I ", "A " ], "background": [ "Pozadina" ], "but": [ "* ", "Ali " ], "examples": [ "Primjeri" ], "feature": [ "Karakteristika" ], "given": [ "* ", "Dato " ], "name": "Bosnian", "native": "Bosanski", "scenario": [ "Scenariju", "Scenario" ], "scenarioOutline": [ "Scenariju-obris", "Scenario-outline" ], "then": [ "* ", "Zatim " ], "when": [ "* ", "Kada " ] }, "ca": { "and": [ "* ", "I " ], "background": [ "Rerefons", "Antecedents" ], "but": [ "* ", "Però " ], "examples": [ "Exemples" ], "feature": [ "Característica", "Funcionalitat" ], "given": [ "* ", "Donat ", "Donada ", "Atès ", "Atesa " ], "name": "Catalan", "native": "català", "scenario": [ "Escenari" ], "scenarioOutline": [ "Esquema de l'escenari" ], "then": [ "* ", "Aleshores ", "Cal " ], "when": [ "* ", "Quan " ] }, "cs": { "and": [ "* ", "A také ", "A " ], "background": [ "Pozadí", "Kontext" ], "but": [ "* ", "Ale " ], "examples": [ "Příklady" ], "feature": [ "Požadavek" ], "given": [ "* ", "Pokud ", "Za předpokladu " ], "name": "Czech", "native": "Česky", "scenario": [ "Scénář" ], "scenarioOutline": [ "Náčrt Scénáře", "Osnova scénáře" ], "then": [ "* ", "Pak " ], "when": [ "* ", "Když " ] }, "cy-GB": { "and": [ "* ", "A " ], "background": [ "Cefndir" ], "but": [ "* ", "Ond " ], "examples": [ "Enghreifftiau" ], "feature": [ "Arwedd" ], "given": [ "* ", "Anrhegedig a " ], "name": "Welsh", "native": "Cymraeg", "scenario": [ "Scenario" ], "scenarioOutline": [ "Scenario Amlinellol" ], "then": [ "* ", "Yna " ], "when": [ "* ", "Pryd " ] }, "da": { "and": [ "* ", "Og " ], "background": [ "Baggrund" ], "but": [ "* ", "Men " ], "examples": [ "Eksempler" ], "feature": [ "Egenskab" ], "given": [ "* ", "Givet " ], "name": "Danish", "native": "dansk", "scenario": [ "Scenarie" ], "scenarioOutline": [ "Abstrakt Scenario" ], "then": [ "* ", "Så " ], "when": [ "* ", "Når " ] }, "de": { "and": [ "* ", "Und " ], "background": [ "Grundlage" ], "but": [ "* ", "Aber " ], "examples": [ "Beispiele" ], "feature": [ "Funktionalität" ], "given": [ "* ", "Angenommen ", "Gegeben sei ", "Gegeben seien " ], "name": "German", "native": "Deutsch", "scenario": [ "Szenario" ], "scenarioOutline": [ "Szenariogrundriss" ], "then": [ "* ", "Dann " ], "when": [ "* ", "Wenn " ] }, "el": { "and": [ "* ", "Και " ], "background": [ "Υπόβαθρο" ], "but": [ "* ", "Αλλά " ], "examples": [ "Παραδείγματα", "Σενάρια" ], "feature": [ "Δυνατότητα", "Λειτουργία" ], "given": [ "* ", "Δεδομένου " ], "name": "Greek", "native": "Ελληνικά", "scenario": [ "Σενάριο" ], "scenarioOutline": [ "Περιγραφή Σεναρίου" ], "then": [ "* ", "Τότε " ], "when": [ "* ", "Όταν " ] }, "en": { "and": [ "* ", "And " ], "background": [ "Background" ], "but": [ "* ", "But " ], "examples": [ "Examples", "Scenarios" ], "feature": [ "Feature", "Business Need", "Ability" ], "given": [ "* ", "Given " ], "name": "English", "native": "English", "scenario": [ "Scenario" ], "scenarioOutline": [ "Scenario Outline", "Scenario Template" ], "then": [ "* ", "Then " ], "when": [ "* ", "When " ] }, "en-Scouse": { "and": [ "* ", "An " ], "background": [ "Dis is what went down" ], "but": [ "* ", "Buh " ], "examples": [ "Examples" ], "feature": [ "Feature" ], "given": [ "* ", "Givun ", "Youse know when youse got " ], "name": "Scouse", "native": "Scouse", "scenario": [ "The thing of it is" ], "scenarioOutline": [ "Wharrimean is" ], "then": [ "* ", "Dun ", "Den youse gotta " ], "when": [ "* ", "Wun ", "Youse know like when " ] }, "en-au": { "and": [ "* ", "Too right " ], "background": [ "First off" ], "but": [ "* ", "Yeah nah " ], "examples": [ "You'll wanna" ], "feature": [ "Pretty much" ], "given": [ "* ", "Y'know " ], "name": "Australian", "native": "Australian", "scenario": [ "Awww, look mate" ], "scenarioOutline": [ "Reckon it's like" ], "then": [ "* ", "But at the end of the day I reckon " ], "when": [ "* ", "It's just unbelievable " ] }, "en-lol": { "and": [ "* ", "AN " ], "background": [ "B4" ], "but": [ "* ", "BUT " ], "examples": [ "EXAMPLZ" ], "feature": [ "OH HAI" ], "given": [ "* ", "I CAN HAZ " ], "name": "LOLCAT", "native": "LOLCAT", "scenario": [ "MISHUN" ], "scenarioOutline": [ "MISHUN SRSLY" ], "then": [ "* ", "DEN " ], "when": [ "* ", "WEN " ] }, "en-old": { "and": [ "* ", "Ond ", "7 " ], "background": [ "Aer", "Ær" ], "but": [ "* ", "Ac " ], "examples": [ "Se the", "Se þe", "Se ðe" ], "feature": [ "Hwaet", "Hwæt" ], "given": [ "* ", "Thurh ", "Þurh ", "Ðurh " ], "name": "Old English", "native": "Englisc", "scenario": [ "Swa" ], "scenarioOutline": [ "Swa hwaer swa", "Swa hwær swa" ], "then": [ "* ", "Tha ", "Þa ", "Ða ", "Tha the ", "Þa þe ", "Ða ðe " ], "when": [ "* ", "Tha ", "Þa ", "Ða " ] }, "en-pirate": { "and": [ "* ", "Aye " ], "background": [ "Yo-ho-ho" ], "but": [ "* ", "Avast! " ], "examples": [ "Dead men tell no tales" ], "feature": [ "Ahoy matey!" ], "given": [ "* ", "Gangway! " ], "name": "Pirate", "native": "Pirate", "scenario": [ "Heave to" ], "scenarioOutline": [ "Shiver me timbers" ], "then": [ "* ", "Let go and haul " ], "when": [ "* ", "Blimey! " ] }, "eo": { "and": [ "* ", "Kaj " ], "background": [ "Fono" ], "but": [ "* ", "Sed " ], "examples": [ "Ekzemploj" ], "feature": [ "Trajto" ], "given": [ "* ", "Donitaĵo ", "Komence " ], "name": "Esperanto", "native": "Esperanto", "scenario": [ "Scenaro", "Kazo" ], "scenarioOutline": [ "Konturo de la scenaro", "Skizo", "Kazo-skizo" ], "then": [ "* ", "Do " ], "when": [ "* ", "Se " ] }, "es": { "and": [ "* ", "Y ", "E " ], "background": [ "Antecedentes" ], "but": [ "* ", "Pero " ], "examples": [ "Ejemplos" ], "feature": [ "Característica" ], "given": [ "* ", "Dado ", "Dada ", "Dados ", "Dadas " ], "name": "Spanish", "native": "español", "scenario": [ "Escenario" ], "scenarioOutline": [ "Esquema del escenario" ], "then": [ "* ", "Entonces " ], "when": [ "* ", "Cuando " ] }, "et": { "and": [ "* ", "Ja " ], "background": [ "Taust" ], "but": [ "* ", "Kuid " ], "examples": [ "Juhtumid" ], "feature": [ "Omadus" ], "given": [ "* ", "Eeldades " ], "name": "Estonian", "native": "eesti keel", "scenario": [ "Stsenaarium" ], "scenarioOutline": [ "Raamstsenaarium" ], "then": [ "* ", "Siis " ], "when": [ "* ", "Kui " ] }, "fa": { "and": [ "* ", "و " ], "background": [ "زمینه" ], "but": [ "* ", "اما " ], "examples": [ "نمونه ها" ], "feature": [ "وِیژگی" ], "given": [ "* ", "با فرض " ], "name": "Persian", "native": "فارسی", "scenario": [ "سناریو" ], "scenarioOutline": [ "الگوی سناریو" ], "then": [ "* ", "آنگاه " ], "when": [ "* ", "هنگامی " ] }, "fi": { "and": [ "* ", "Ja " ], "background": [ "Tausta" ], "but": [ "* ", "Mutta " ], "examples": [ "Tapaukset" ], "feature": [ "Ominaisuus" ], "given": [ "* ", "Oletetaan " ], "name": "Finnish", "native": "suomi", "scenario": [ "Tapaus" ], "scenarioOutline": [ "Tapausaihio" ], "then": [ "* ", "Niin " ], "when": [ "* ", "Kun " ] }, "fr": { "and": [ "* ", "Et " ], "background": [ "Contexte" ], "but": [ "* ", "Mais " ], "examples": [ "Exemples" ], "feature": [ "Fonctionnalité" ], "given": [ "* ", "Soit ", "Etant donné ", "Etant donnée ", "Etant donnés ", "Etant données ", "Étant donné ", "Étant donnée ", "Étant donnés ", "Étant données " ], "name": "French", "native": "français", "scenario": [ "Scénario" ], "scenarioOutline": [ "Plan du scénario", "Plan du Scénario" ], "then": [ "* ", "Alors " ], "when": [ "* ", "Quand ", "Lorsque ", "Lorsqu'" ] }, "ga": { "and": [ "* ", "Agus" ], "background": [ "Cúlra" ], "but": [ "* ", "Ach" ], "examples": [ "Samplaí" ], "feature": [ "Gné" ], "given": [ "* ", "Cuir i gcás go", "Cuir i gcás nach", "Cuir i gcás gur", "Cuir i gcás nár" ], "name": "Irish", "native": "Gaeilge", "scenario": [ "Cás" ], "scenarioOutline": [ "Cás Achomair" ], "then": [ "* ", "Ansin" ], "when": [ "* ", "Nuair a", "Nuair nach", "Nuair ba", "Nuair nár" ] }, "gj": { "and": [ "* ", "અને " ], "background": [ "બેકગ્રાઉન્ડ" ], "but": [ "* ", "પણ " ], "examples": [ "ઉદાહરણો" ], "feature": [ "લક્ષણ", "વ્યાપાર જરૂર", "ક્ષમતા" ], "given": [ "* ", "આપેલ છે " ], "name": "Gujarati", "native": "ગુજરાતી", "scenario": [ "સ્થિતિ" ], "scenarioOutline": [ "પરિદ્દશ્ય રૂપરેખા", "પરિદ્દશ્ય ઢાંચો" ], "then": [ "* ", "પછી " ], "when": [ "* ", "ક્યારે " ] }, "gl": { "and": [ "* ", "E " ], "background": [ "Contexto" ], "but": [ "* ", "Mais ", "Pero " ], "examples": [ "Exemplos" ], "feature": [ "Característica" ], "given": [ "* ", "Dado ", "Dada ", "Dados ", "Dadas " ], "name": "Galician", "native": "galego", "scenario": [ "Escenario" ], "scenarioOutline": [ "Esbozo do escenario" ], "then": [ "* ", "Entón ", "Logo " ], "when": [ "* ", "Cando " ] }, "he": { "and": [ "* ", "וגם " ], "background": [ "רקע" ], "but": [ "* ", "אבל " ], "examples": [ "דוגמאות" ], "feature": [ "תכונה" ], "given": [ "* ", "בהינתן " ], "name": "Hebrew", "native": "עברית", "scenario": [ "תרחיש" ], "scenarioOutline": [ "תבנית תרחיש" ], "then": [ "* ", "אז ", "אזי " ], "when": [ "* ", "כאשר " ] }, "hi": { "and": [ "* ", "और ", "तथा " ], "background": [ "पृष्ठभूमि" ], "but": [ "* ", "पर ", "परन्तु ", "किन्तु " ], "examples": [ "उदाहरण" ], "feature": [ "रूप लेख" ], "given": [ "* ", "अगर ", "यदि ", "चूंकि " ], "name": "Hindi", "native": "हिंदी", "scenario": [ "परिदृश्य" ], "scenarioOutline": [ "परिदृश्य रूपरेखा" ], "then": [ "* ", "तब ", "तदा " ], "when": [ "* ", "जब ", "कदा " ] }, "hr": { "and": [ "* ", "I " ], "background": [ "Pozadina" ], "but": [ "* ", "Ali " ], "examples": [ "Primjeri", "Scenariji" ], "feature": [ "Osobina", "Mogućnost", "Mogucnost" ], "given": [ "* ", "Zadan ", "Zadani ", "Zadano " ], "name": "Croatian", "native": "hrvatski", "scenario": [ "Scenarij" ], "scenarioOutline": [ "Skica", "Koncept" ], "then": [ "* ", "Onda " ], "when": [ "* ", "Kada ", "Kad " ] }, "ht": { "and": [ "* ", "Ak ", "Epi ", "E " ], "background": [ "Kontèks", "Istorik" ], "but": [ "* ", "Men " ], "examples": [ "Egzanp" ], "feature": [ "Karakteristik", "Mak", "Fonksyonalite" ], "given": [ "* ", "Sipoze ", "Sipoze ke ", "Sipoze Ke " ], "name": "Creole", "native": "kreyòl", "scenario": [ "Senaryo" ], "scenarioOutline": [ "Plan senaryo", "Plan Senaryo", "Senaryo deskripsyon", "Senaryo Deskripsyon", "Dyagram senaryo", "Dyagram Senaryo" ], "then": [ "* ", "Lè sa a ", "Le sa a " ], "when": [ "* ", "Lè ", "Le " ] }, "hu": { "and": [ "* ", "És " ], "background": [ "Háttér" ], "but": [ "* ", "De " ], "examples": [ "Példák" ], "feature": [ "Jellemző" ], "given": [ "* ", "Amennyiben ", "Adott " ], "name": "Hungarian", "native": "magyar", "scenario": [ "Forgatókönyv" ], "scenarioOutline": [ "Forgatókönyv vázlat" ], "then": [ "* ", "Akkor " ], "when": [ "* ", "Majd ", "Ha ", "Amikor " ] }, "id": { "and": [ "* ", "Dan " ], "background": [ "Dasar" ], "but": [ "* ", "Tapi " ], "examples": [ "Contoh" ], "feature": [ "Fitur" ], "given": [ "* ", "Dengan " ], "name": "Indonesian", "native": "Bahasa Indonesia", "scenario": [ "Skenario" ], "scenarioOutline": [ "Skenario konsep" ], "then": [ "* ", "Maka " ], "when": [ "* ", "Ketika " ] }, "is": { "and": [ "* ", "Og " ], "background": [ "Bakgrunnur" ], "but": [ "* ", "En " ], "examples": [ "Dæmi", "Atburðarásir" ], "feature": [ "Eiginleiki" ], "given": [ "* ", "Ef " ], "name": "Icelandic", "native": "Íslenska", "scenario": [ "Atburðarás" ], "scenarioOutline": [ "Lýsing Atburðarásar", "Lýsing Dæma" ], "then": [ "* ", "Þá " ], "when": [ "* ", "Þegar " ] }, "it": { "and": [ "* ", "E " ], "background": [ "Contesto" ], "but": [ "* ", "Ma " ], "examples": [ "Esempi" ], "feature": [ "Funzionalità" ], "given": [ "* ", "Dato ", "Data ", "Dati ", "Date " ], "name": "Italian", "native": "italiano", "scenario": [ "Scenario" ], "scenarioOutline": [ "Schema dello scenario" ], "then": [ "* ", "Allora " ], "when": [ "* ", "Quando " ] }, "ja": { "and": [ "* ", "かつ" ], "background": [ "背景" ], "but": [ "* ", "しかし", "但し", "ただし" ], "examples": [ "例", "サンプル" ], "feature": [ "フィーチャ", "機能" ], "given": [ "* ", "前提" ], "name": "Japanese", "native": "日本語", "scenario": [ "シナリオ" ], "scenarioOutline": [ "シナリオアウトライン", "シナリオテンプレート", "テンプレ", "シナリオテンプレ" ], "then": [ "* ", "ならば" ], "when": [ "* ", "もし" ] }, "jv": { "and": [ "* ", "Lan " ], "background": [ "Dasar" ], "but": [ "* ", "Tapi ", "Nanging ", "Ananging " ], "examples": [ "Conto", "Contone" ], "feature": [ "Fitur" ], "given": [ "* ", "Nalika ", "Nalikaning " ], "name": "Javanese", "native": "Basa Jawa", "scenario": [ "Skenario" ], "scenarioOutline": [ "Konsep skenario" ], "then": [ "* ", "Njuk ", "Banjur " ], "when": [ "* ", "Manawa ", "Menawa " ] }, "kn": { "and": [ "* ", "ಮತ್ತು " ], "background": [ "ಹಿನ್ನೆಲೆ" ], "but": [ "* ", "ಆದರೆ " ], "examples": [ "ಉದಾಹರಣೆಗಳು" ], "feature": [ "ಹೆಚ್ಚಳ" ], "given": [ "* ", "ನೀಡಿದ " ], "name": "Kannada", "native": "ಕನ್ನಡ", "scenario": [ "ಕಥಾಸಾರಾಂಶ" ], "scenarioOutline": [ "ವಿವರಣೆ" ], "then": [ "* ", "ನಂತರ " ], "when": [ "* ", "ಸ್ಥಿತಿಯನ್ನು " ] }, "ko": { "and": [ "* ", "그리고" ], "background": [ "배경" ], "but": [ "* ", "하지만", "단" ], "examples": [ "예" ], "feature": [ "기능" ], "given": [ "* ", "조건", "먼저" ], "name": "Korean", "native": "한국어", "scenario": [ "시나리오" ], "scenarioOutline": [ "시나리오 개요" ], "then": [ "* ", "그러면" ], "when": [ "* ", "만일", "만약" ] }, "lt": { "and": [ "* ", "Ir " ], "background": [ "Kontekstas" ], "but": [ "* ", "Bet " ], "examples": [ "Pavyzdžiai", "Scenarijai", "Variantai" ], "feature": [ "Savybė" ], "given": [ "* ", "Duota " ], "name": "Lithuanian", "native": "lietuvių kalba", "scenario": [ "Scenarijus" ], "scenarioOutline": [ "Scenarijaus šablonas" ], "then": [ "* ", "Tada " ], "when": [ "* ", "Kai " ] }, "lu": { "and": [ "* ", "an ", "a " ], "background": [ "Hannergrond" ], "but": [ "* ", "awer ", "mä " ], "examples": [ "Beispiller" ], "feature": [ "Funktionalitéit" ], "given": [ "* ", "ugeholl " ], "name": "Luxemburgish", "native": "Lëtzebuergesch", "scenario": [ "Szenario" ], "scenarioOutline": [ "Plang vum Szenario" ], "then": [ "* ", "dann " ], "when": [ "* ", "wann " ] }, "lv": { "and": [ "* ", "Un " ], "background": [ "Konteksts", "Situācija" ], "but": [ "* ", "Bet " ], "examples": [ "Piemēri", "Paraugs" ], "feature": [ "Funkcionalitāte", "Fīča" ], "given": [ "* ", "Kad " ], "name": "Latvian", "native": "latviešu", "scenario": [ "Scenārijs" ], "scenarioOutline": [ "Scenārijs pēc parauga" ], "then": [ "* ", "Tad " ], "when": [ "* ", "Ja " ] }, "nl": { "and": [ "* ", "En " ], "background": [ "Achtergrond" ], "but": [ "* ", "Maar " ], "examples": [ "Voorbeelden" ], "feature": [ "Functionaliteit" ], "given": [ "* ", "Gegeven ", "Stel " ], "name": "Dutch", "native": "Nederlands", "scenario": [ "Scenario" ], "scenarioOutline": [ "Abstract Scenario" ], "then": [ "* ", "Dan " ], "when": [ "* ", "Als " ] }, "no": { "and": [ "* ", "Og " ], "background": [ "Bakgrunn" ], "but": [ "* ", "Men " ], "examples": [ "Eksempler" ], "feature": [ "Egenskap" ], "given": [ "* ", "Gitt " ], "name": "Norwegian", "native": "norsk", "scenario": [ "Scenario" ], "scenarioOutline": [ "Scenariomal", "Abstrakt Scenario" ], "then": [ "* ", "Så " ], "when": [ "* ", "Når " ] }, "pa": { "and": [ "* ", "ਅਤੇ " ], "background": [ "ਪਿਛੋਕੜ" ], "but": [ "* ", "ਪਰ " ], "examples": [ "ਉਦਾਹਰਨਾਂ" ], "feature": [ "ਖਾਸੀਅਤ", "ਮੁਹਾਂਦਰਾ", "ਨਕਸ਼ ਨੁਹਾਰ" ], "given": [ "* ", "ਜੇਕਰ ", "ਜਿਵੇਂ ਕਿ " ], "name": "Panjabi", "native": "ਪੰਜਾਬੀ", "scenario": [ "ਪਟਕਥਾ" ], "scenarioOutline": [ "ਪਟਕਥਾ ਢਾਂਚਾ", "ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ" ], "then": [ "* ", "ਤਦ " ], "when": [ "* ", "ਜਦੋਂ " ] }, "pl": { "and": [ "* ", "Oraz ", "I " ], "background": [ "Założenia" ], "but": [ "* ", "Ale " ], "examples": [ "Przykłady" ], "feature": [ "Właściwość", "Funkcja", "Aspekt", "Potrzeba biznesowa" ], "given": [ "* ", "Zakładając ", "Mając ", "Zakładając, że " ], "name": "Polish", "native": "polski", "scenario": [ "Scenariusz" ], "scenarioOutline": [ "Szablon scenariusza" ], "then": [ "* ", "Wtedy " ], "when": [ "* ", "Jeżeli ", "Jeśli ", "Gdy ", "Kiedy " ] }, "pt": { "and": [ "* ", "E " ], "background": [ "Contexto", "Cenário de Fundo", "Cenario de Fundo", "Fundo" ], "but": [ "* ", "Mas " ], "examples": [ "Exemplos", "Cenários", "Cenarios" ], "feature": [ "Funcionalidade", "Característica", "Caracteristica" ], "given": [ "* ", "Dado ", "Dada ", "Dados ", "Dadas " ], "name": "Portuguese", "native": "português", "scenario": [ "Cenário", "Cenario" ], "scenarioOutline": [ "Esquema do Cenário", "Esquema do Cenario", "Delineação do Cenário", "Delineacao do Cenario" ], "then": [ "* ", "Então ", "Entao " ], "when": [ "* ", "Quando " ] }, "ro": { "and": [ "* ", "Si ", "Și ", "Şi " ], "background": [ "Context" ], "but": [ "* ", "Dar " ], "examples": [ "Exemple" ], "feature": [ "Functionalitate", "Funcționalitate", "Funcţionalitate" ], "given": [ "* ", "Date fiind ", "Dat fiind ", "Dati fiind ", "Dați fiind ", "Daţi fiind " ], "name": "Romanian", "native": "română", "scenario": [ "Scenariu" ], "scenarioOutline": [ "Structura scenariu", "Structură scenariu" ], "then": [ "* ", "Atunci " ], "when": [ "* ", "Cand ", "Când " ] }, "ru": { "and": [ "* ", "И ", "К тому же ", "Также " ], "background": [ "Предыстория", "Контекст" ], "but": [ "* ", "Но ", "А " ], "examples": [ "Примеры" ], "feature": [ "Функция", "Функционал", "Свойство" ], "given": [ "* ", "Допустим ", "Дано ", "Пусть " ], "name": "Russian", "native": "русский", "scenario": [ "Сценарий" ], "scenarioOutline": [ "Структура сценария" ], "then": [ "* ", "То ", "Тогда " ], "when": [ "* ", "Если ", "Когда " ] }, "sk": { "and": [ "* ", "A ", "A tiež ", "A taktiež ", "A zároveň " ], "background": [ "Pozadie" ], "but": [ "* ", "Ale " ], "examples": [ "Príklady" ], "feature": [ "Požiadavka", "Funkcia", "Vlastnosť" ], "given": [ "* ", "Pokiaľ ", "Za predpokladu " ], "name": "Slovak", "native": "Slovensky", "scenario": [ "Scenár" ], "scenarioOutline": [ "Náčrt Scenáru", "Náčrt Scenára", "Osnova Scenára" ], "then": [ "* ", "Tak ", "Potom " ], "when": [ "* ", "Keď ", "Ak " ] }, "sl": { "and": [ "In ", "Ter " ], "background": [ "Kontekst", "Osnova", "Ozadje" ], "but": [ "Toda ", "Ampak ", "Vendar " ], "examples": [ "Primeri", "Scenariji" ], "feature": [ "Funkcionalnost", "Funkcija", "Možnosti", "Moznosti", "Lastnost", "Značilnost" ], "given": [ "Dano ", "Podano ", "Zaradi ", "Privzeto " ], "name": "Slovenian", "native": "Slovenski", "scenario": [ "Scenarij", "Primer" ], "scenarioOutline": [ "Struktura scenarija", "Skica", "Koncept", "Oris scenarija", "Osnutek" ], "then": [ "Nato ", "Potem ", "Takrat " ], "when": [ "Ko ", "Ce ", "Če ", "Kadar " ] }, "sr-Cyrl": { "and": [ "* ", "И " ], "background": [ "Контекст", "Основа", "Позадина" ], "but": [ "* ", "Али " ], "examples": [ "Примери", "Сценарији" ], "feature": [ "Функционалност", "Могућност", "Особина" ], "given": [ "* ", "За дато ", "За дате ", "За дати " ], "name": "Serbian", "native": "Српски", "scenario": [ "Сценарио", "Пример" ], "scenarioOutline": [ "Структура сценарија", "Скица", "Концепт" ], "then": [ "* ", "Онда " ], "when": [ "* ", "Када ", "Кад " ] }, "sr-Latn": { "and": [ "* ", "I " ], "background": [ "Kontekst", "Osnova", "Pozadina" ], "but": [ "* ", "Ali " ], "examples": [ "Primeri", "Scenariji" ], "feature": [ "Funkcionalnost", "Mogućnost", "Mogucnost", "Osobina" ], "given": [ "* ", "Za dato ", "Za date ", "Za dati " ], "name": "Serbian (Latin)", "native": "Srpski (Latinica)", "scenario": [ "Scenario", "Primer" ], "scenarioOutline": [ "Struktura scenarija", "Skica", "Koncept" ], "then": [ "* ", "Onda " ], "when": [ "* ", "Kada ", "Kad " ] }, "sv": { "and": [ "* ", "Och " ], "background": [ "Bakgrund" ], "but": [ "* ", "Men " ], "examples": [ "Exempel" ], "feature": [ "Egenskap" ], "given": [ "* ", "Givet " ], "name": "Swedish", "native": "Svenska", "scenario": [ "Scenario" ], "scenarioOutline": [ "Abstrakt Scenario", "Scenariomall" ], "then": [ "* ", "Så " ], "when": [ "* ", "När " ] }, "ta": { "and": [ "* ", "மேலும் ", "மற்றும் " ], "background": [ "பின்னணி" ], "but": [ "* ", "ஆனால் " ], "examples": [ "எடுத்துக்காட்டுகள்", "காட்சிகள்", " நிலைமைகளில்" ], "feature": [ "அம்சம்", "வணிக தேவை", "திறன்" ], "given": [ "* ", "கொடுக்கப்பட்ட " ], "name": "Tamil", "native": "தமிழ்", "scenario": [ "காட்சி" ], "scenarioOutline": [ "காட்சி சுருக்கம்", "காட்சி வார்ப்புரு" ], "then": [ "* ", "அப்பொழுது " ], "when": [ "* ", "எப்போது " ] }, "th": { "and": [ "* ", "และ " ], "background": [ "แนวคิด" ], "but": [ "* ", "แต่ " ], "examples": [ "ชุดของตัวอย่าง", "ชุดของเหตุการณ์" ], "feature": [ "โครงหลัก", "ความต้องการทางธุรกิจ", "ความสามารถ" ], "given": [ "* ", "กำหนดให้ " ], "name": "Thai", "native": "ไทย", "scenario": [ "เหตุการณ์" ], "scenarioOutline": [ "สรุปเหตุการณ์", "โครงสร้างของเหตุการณ์" ], "then": [ "* ", "ดังนั้น " ], "when": [ "* ", "เมื่อ " ] }, "tl": { "and": [ "* ", "మరియు " ], "background": [ "నేపథ్యం" ], "but": [ "* ", "కాని " ], "examples": [ "ఉదాహరణలు" ], "feature": [ "గుణము" ], "given": [ "* ", "చెప్పబడినది " ], "name": "Telugu", "native": "తెలుగు", "scenario": [ "సన్నివేశం" ], "scenarioOutline": [ "కథనం" ], "then": [ "* ", "అప్పుడు " ], "when": [ "* ", "ఈ పరిస్థితిలో " ] }, "tlh": { "and": [ "* ", "'ej ", "latlh " ], "background": [ "mo'" ], "but": [ "* ", "'ach ", "'a " ], "examples": [ "ghantoH", "lutmey" ], "feature": [ "Qap", "Qu'meH 'ut", "perbogh", "poQbogh malja'", "laH" ], "given": [ "* ", "ghu' noblu' ", "DaH ghu' bejlu' " ], "name": "Klingon", "native": "tlhIngan", "scenario": [ "lut" ], "scenarioOutline": [ "lut chovnatlh" ], "then": [ "* ", "vaj " ], "when": [ "* ", "qaSDI' " ] }, "tr": { "and": [ "* ", "Ve " ], "background": [ "Geçmiş" ], "but": [ "* ", "Fakat ", "Ama " ], "examples": [ "Örnekler" ], "feature": [ "Özellik" ], "given": [ "* ", "Diyelim ki " ], "name": "Turkish", "native": "Türkçe", "scenario": [ "Senaryo" ], "scenarioOutline": [ "Senaryo taslağı" ], "then": [ "* ", "O zaman " ], "when": [ "* ", "Eğer ki " ] }, "tt": { "and": [ "* ", "Һәм ", "Вә " ], "background": [ "Кереш" ], "but": [ "* ", "Ләкин ", "Әмма " ], "examples": [ "Үрнәкләр", "Мисаллар" ], "feature": [ "Мөмкинлек", "Үзенчәлеклелек" ], "given": [ "* ", "Әйтик " ], "name": "Tatar", "native": "Татарча", "scenario": [ "Сценарий" ], "scenarioOutline": [ "Сценарийның төзелеше" ], "then": [ "* ", "Нәтиҗәдә " ], "when": [ "* ", "Әгәр " ] }, "uk": { "and": [ "* ", "І ", "А також ", "Та " ], "background": [ "Передумова" ], "but": [ "* ", "Але " ], "examples": [ "Приклади" ], "feature": [ "Функціонал" ], "given": [ "* ", "Припустимо ", "Припустимо, що ", "Нехай ", "Дано " ], "name": "Ukrainian", "native": "Українська", "scenario": [ "Сценарій" ], "scenarioOutline": [ "Структура сценарію" ], "then": [ "* ", "То ", "Тоді " ], "when": [ "* ", "Якщо ", "Коли " ] }, "ur": { "and": [ "* ", "اور " ], "