aslakhellesoy-gherkin 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
6
+ lib/gherkin/parser/*.rb
7
+ *.dot
8
+ *.png
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Aslak Hellesøy
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,37 @@
1
+ = Gherkin
2
+
3
+ Fast Gherkin parser based on Ragel.
4
+
5
+ Gherkin is the language that has evolved out of the Cucumber project. Cucumber currently uses
6
+ Treetop, which is too slow for larger projects.
7
+
8
+ This project will *not* include code to build an AST. Instead, this parser will have an API
9
+ that makes it possible to plug in a builder that can buld an AST.
10
+
11
+ == Notes
12
+
13
+ Ragel supports Ruby, but it's much slower than C. The ruby target will be used for development.
14
+ The final version will use C for MRI and Java for JRuby.
15
+
16
+ == Ragel links
17
+
18
+ * http://www.complang.org/ragel/
19
+ * http://dev.sipdoc.net/attachments/2/ragel_talk.pdf
20
+ * http://lambda-the-ultimate.org/node/1125
21
+ * http://www.zedshaw.com/essays/ragel_state_charts.html
22
+ * http://www.devchix.com/2008/01/13/a-hello-world-for-ruby-on-ragel-60/
23
+
24
+ == Note on Patches/Pull Requests
25
+
26
+ * Fork the project.
27
+ * Make your feature addition or bug fix.
28
+ * Add tests for it. This is important so I don't break it in a
29
+ future version unintentionally.
30
+ * Commit, do not mess with rakefile, version, or history.
31
+ (if you want to have your own version, that is fine but
32
+ bump version in a commit by itself I can ignore when I pull)
33
+ * Send me a pull request. Bonus points for topic branches.
34
+
35
+ == Copyright
36
+
37
+ Copyright (c) 2009 Aslak Hellesøy. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+ require 'rubygems'
3
+ require 'rake'
4
+ require 'rake/clean'
5
+
6
+ begin
7
+ require 'jeweler'
8
+ Jeweler::Tasks.new do |gem|
9
+ gem.name = "gherkin"
10
+ gem.summary = %Q{Fast Gherkin parser}
11
+ gem.description = %Q{A fast Gherkin parser in Ragel}
12
+ gem.email = "aslak.hellesoy@gmail.com"
13
+ gem.homepage = "http://github.com/aslakhellesoy/gherkin"
14
+ gem.authors = ["Aslak Hellesøy"]
15
+ gem.add_development_dependency "rspec"
16
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
+ end
18
+ Jeweler::GemcutterTasks.new
19
+ rescue LoadError
20
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
21
+ end
22
+
23
+ Dir['tasks/**/*.rake'].each { |rake| load rake }
24
+
25
+ task :default => :spec
data/VERSION.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ :major: 0
3
+ :minor: 0
4
+ :patch: 1
@@ -0,0 +1,6 @@
1
+ require 'mkmf'
2
+
3
+ dir_config("gherkin")
4
+ have_library("c", "main")
5
+
6
+ create_makefile("gherkin")
data/gherkin.gemspec ADDED
@@ -0,0 +1,82 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{gherkin}
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Aslak Helles\303\270y"]
12
+ s.date = %q{2009-09-12}
13
+ s.description = %q{A fast Gherkin parser in Ragel}
14
+ s.email = %q{aslak.hellesoy@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION.yml",
26
+ "ext/gherkin/extconf.rb",
27
+ "gherkin.gemspec",
28
+ "lib/gherkin.rb",
29
+ "lib/gherkin/i18n.yml",
30
+ "lib/gherkin/parser.rb",
31
+ "lib/gherkin/parser/.preserve",
32
+ "ragel/feature.rb.rl.erb",
33
+ "ragel/feature_common.rl.erb",
34
+ "ragel/misc.c.rl",
35
+ "ragel/misc.rb.rl",
36
+ "ragel/table.rb.rl",
37
+ "ragel/table_common.rl",
38
+ "spec/gherkin/feature_spec.rb",
39
+ "spec/gherkin/gherkin_parser/complex.feature",
40
+ "spec/gherkin/gherkin_parser/i18n_no.feature",
41
+ "spec/gherkin/gherkin_parser/simple.feature",
42
+ "spec/gherkin/gherkin_parser/simple_with_comments.feature",
43
+ "spec/gherkin/gherkin_parser/simple_with_tags.feature",
44
+ "spec/gherkin/i18n_spec.rb",
45
+ "spec/gherkin/multiline_step_args_spec.rb",
46
+ "spec/gherkin/sexp_recorder.rb",
47
+ "spec/gherkin/table_spec.rb",
48
+ "spec/gherkin/tags_spec.rb",
49
+ "spec/spec_helper.rb",
50
+ "tasks/ext.rake",
51
+ "tasks/ragel.rake",
52
+ "tasks/rdoc.rake",
53
+ "tasks/rspec.rake"
54
+ ]
55
+ s.homepage = %q{http://github.com/aslakhellesoy/gherkin}
56
+ s.rdoc_options = ["--charset=UTF-8"]
57
+ s.require_paths = ["lib"]
58
+ s.rubygems_version = %q{1.3.4}
59
+ s.summary = %q{Fast Gherkin parser}
60
+ s.test_files = [
61
+ "spec/gherkin/feature_spec.rb",
62
+ "spec/gherkin/i18n_spec.rb",
63
+ "spec/gherkin/multiline_step_args_spec.rb",
64
+ "spec/gherkin/sexp_recorder.rb",
65
+ "spec/gherkin/table_spec.rb",
66
+ "spec/gherkin/tags_spec.rb",
67
+ "spec/spec_helper.rb"
68
+ ]
69
+
70
+ if s.respond_to? :specification_version then
71
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
72
+ s.specification_version = 3
73
+
74
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
75
+ s.add_development_dependency(%q<rspec>, [">= 0"])
76
+ else
77
+ s.add_dependency(%q<rspec>, [">= 0"])
78
+ end
79
+ else
80
+ s.add_dependency(%q<rspec>, [">= 0"])
81
+ end
82
+ end
data/lib/gherkin.rb ADDED
@@ -0,0 +1 @@
1
+ require 'gherkin/parser'
@@ -0,0 +1,561 @@
1
+ # encoding: UTF-8
2
+ # We use the codes here (prefer 2 letters when possible)
3
+ # http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
4
+ #
5
+ # If you want several aliases for a keyword, just separate them
6
+ # with a | character. Make sure there are no ambiguities in the
7
+ # keywords.
8
+ #
9
+ "en":
10
+ name: English
11
+ native: English
12
+ encoding: UTF-8
13
+ feature: Feature
14
+ background: Background
15
+ scenario: Scenario
16
+ scenario_outline: Scenario Outline
17
+ examples: Examples|Scenarios
18
+ given: Given
19
+ when: When
20
+ then: Then
21
+ and: And
22
+ but: But
23
+ space_after_keyword: true
24
+
25
+ # Please help us keeping the languages below uptodate. The parsers for a language
26
+ # that is missing a keyword will expect the English word until the missing word(s)
27
+ # are added.
28
+ #
29
+ # Please keep the grammars in alphabetical order by name from here and down.
30
+
31
+ "ar":
32
+ name: Arabic
33
+ native: العربية
34
+ encoding: UTF-8
35
+ feature: خاصية
36
+ background: الخلفية
37
+ scenario: سيناريو
38
+ scenario_outline: سيناريو مخطط
39
+ examples: امثلة
40
+ given: بفرض
41
+ when: متى|عندما
42
+ then: اذاً|ثم
43
+ and: و
44
+ but: لكن
45
+ space_after_keyword: true
46
+ "bg":
47
+ name: Bulgarian
48
+ native: български
49
+ encoding: UTF-8
50
+ feature: Функционалност
51
+ background: Предистория
52
+ scenario: Сценарий
53
+ scenario_outline: Рамка на сценарий
54
+ examples: Примери
55
+ given: Дадено
56
+ when: Когато
57
+ then: То
58
+ and: И
59
+ but: Но
60
+ space_after_keyword: true
61
+ "cat":
62
+ name: Catalan
63
+ native: català
64
+ encoding: UTF-8
65
+ background: Rerefons|Antecedents
66
+ feature: Característica
67
+ scenario: Escenari
68
+ scenario_outline: Esquema de l\'escenari
69
+ examples: Exemples
70
+ given: Donat|Donada
71
+ when: Quan
72
+ then: Aleshores
73
+ and: I
74
+ but: Però
75
+ space_after_keyword: true
76
+ "cy":
77
+ name: Welsh
78
+ native: Cymraeg
79
+ encoding: UTF-8
80
+ feature: Arwedd
81
+ scenario: Scenario
82
+ examples: Enghreifftiau
83
+ given: anrhegedig a
84
+ when: Pryd
85
+ then: Yna
86
+ and: A
87
+ but: Ond
88
+ space_after_keyword: true
89
+ "cz":
90
+ name: Czech
91
+ native: Česky
92
+ encoding: UTF-8
93
+ feature: Požadavek
94
+ background: Pozadí|Kontext
95
+ scenario: Scénář
96
+ scenario_outline: Náčrt Scénáře|Osnova scénáře
97
+ examples: Příklady
98
+ given: Pokud
99
+ when: Když
100
+ then: Pak
101
+ and: A|A také
102
+ but: Ale
103
+ space_after_keyword: true
104
+ "da":
105
+ name: Danish
106
+ native: dansk
107
+ encoding: UTF-8
108
+ feature: Egenskab
109
+ background: Baggrund
110
+ scenario: Scenarie
111
+ scenario_outline: Abstrakt Scenario
112
+ examples: Eksempler
113
+ given: Givet
114
+ when: Når
115
+ then: Så
116
+ and: Og
117
+ but: Men
118
+ space_after_keyword: true
119
+ "de":
120
+ name: German
121
+ native: Deutsch
122
+ encoding: UTF-8
123
+ feature: Funktionalität
124
+ background: Grundlage
125
+ scenario: Szenario
126
+ scenario_outline: Szenariogrundriss
127
+ examples: Beispiele
128
+ given: Gegeben sei
129
+ when: Wenn
130
+ then: Dann
131
+ and: Und
132
+ but: Aber
133
+ space_after_keyword: true
134
+ "en-au":
135
+ name: Australian
136
+ native: Australian
137
+ encoding: UTF-8
138
+ feature: Crikey
139
+ background: Background
140
+ scenario: Mate
141
+ scenario_outline: Blokes
142
+ examples: Cobber
143
+ given: Ya know how
144
+ when: When
145
+ then: Ya gotta
146
+ and: N
147
+ but: Cept
148
+ space_after_keyword: true
149
+ "en-lol":
150
+ name: LOLCAT
151
+ native: LOLCAT
152
+ encoding: UTF-8
153
+ feature: OH HAI
154
+ background: B4
155
+ scenario: MISHUN
156
+ scenario_outline: MISHUN SRSLY
157
+ examples: EXAMPLZ
158
+ given: I CAN HAZ
159
+ when: WEN
160
+ then: DEN
161
+ and: AN
162
+ but: BUT
163
+ space_after_keyword: true
164
+ "en-tx":
165
+ name: Texan
166
+ native: Texan
167
+ encoding: UTF-8
168
+ feature: Feature
169
+ background: Background
170
+ scenario: Scenario
171
+ scenario_outline: All y\'all
172
+ examples: Examples
173
+ given: Given y\'all
174
+ when: When y\'all
175
+ then: Then y\'all
176
+ and: And y\'all
177
+ but: But y\'all
178
+ space_after_keyword: true
179
+ "es":
180
+ name: Spanish
181
+ native: español
182
+ encoding: UTF-8
183
+ background: Antecedentes
184
+ feature: Característica
185
+ scenario: Escenario
186
+ scenario_outline: Esquema del escenario
187
+ examples: Ejemplos
188
+ given: Dado
189
+ when: Cuando
190
+ then: Entonces
191
+ and: Y
192
+ but: Pero
193
+ space_after_keyword: true
194
+ "et":
195
+ name: Estonian
196
+ native: eesti keel
197
+ encoding: UTF-8
198
+ feature: Omadus
199
+ background: Taust
200
+ scenario: Stsenaarium
201
+ scenario_outline: Raamstsenaarium
202
+ examples: Juhtumid
203
+ given: Eeldades
204
+ when: Kui
205
+ then: Siis
206
+ and: Ja
207
+ but: Kuid
208
+ space_after_keyword: true
209
+ "fi":
210
+ name: Finnish
211
+ native: suomi
212
+ encoding: UTF-8
213
+ feature: Ominaisuus
214
+ background: Tausta
215
+ scenario: Tapaus
216
+ scenario_outline: Tapausaihio
217
+ examples: Tapaukset
218
+ given: Oletetaan
219
+ when: Kun
220
+ then: Niin
221
+ and: Ja
222
+ but: Mutta
223
+ space_after_keyword: true
224
+ "fr":
225
+ name: French
226
+ native: français
227
+ encoding: UTF-8
228
+ feature: Fonctionnalité
229
+ background: Contexte
230
+ scenario: Scénario
231
+ scenario_outline: Plan du Scénario
232
+ examples: Exemples
233
+ given: Soit
234
+ when: Lorsque
235
+ then: Alors
236
+ and: Et
237
+ but: Mais
238
+ space_after_keyword: true
239
+ "he":
240
+ name: Hebrew
241
+ native: עברית
242
+ encoding: UTF-8
243
+ feature: תכונה
244
+ background: רקע
245
+ scenario: תרחיש
246
+ scenario_outline: תבנית תרחיש
247
+ examples: דוגמאות
248
+ given: בהינתן
249
+ when: כאשר
250
+ then: אז|אזי
251
+ and: וגם
252
+ but: אבל
253
+ space_after_keyword: true
254
+ "hr":
255
+ name: Croatian
256
+ native: hrvatski
257
+ encoding: UTF-8
258
+ feature: Osobina|Mogućnost|Mogucnost
259
+ background: Pozadina
260
+ scenario: Scenarij
261
+ scenario_outline: Skica|Koncept
262
+ examples: Primjeri|Scenariji
263
+ given: Zadan|Zadani|Zadano
264
+ when: Kada|Kad
265
+ then: Onda
266
+ and: I
267
+ but: Ali
268
+ space_after_keyword: true
269
+ "hu":
270
+ name: Hungarian
271
+ native: magyar
272
+ encoding: UTF-8
273
+ feature: Jellemző
274
+ background: Háttér
275
+ scenario: Forgatókönyv
276
+ scenario_outline: Forgatókönyv vázlat
277
+ examples: Példák
278
+ given: Ha
279
+ when: Majd
280
+ then: Akkor
281
+ and: És
282
+ but: De
283
+ space_after_keyword: true
284
+ "id":
285
+ name: Indonesian
286
+ native: Bahasa Indonesia
287
+ encoding: UTF-8
288
+ feature: Fitur
289
+ background: Dasar
290
+ scenario: Skenario
291
+ scenario_outline: Skenario konsep
292
+ examples: Contoh
293
+ given: Dengan
294
+ when: Ketika
295
+ then: Maka
296
+ and: Dan
297
+ but: Tapi
298
+ space_after_keyword: true
299
+ "it":
300
+ name: Italian
301
+ native: italiano
302
+ encoding: UTF-8
303
+ feature: Funzionalità
304
+ background: Contesto
305
+ scenario: Scenario
306
+ scenario_outline: Schema dello scenario
307
+ examples: Esempi
308
+ given: Dato
309
+ when: Quando
310
+ then: Allora
311
+ and: E
312
+ but: Ma
313
+ space_after_keyword: true
314
+ "ja":
315
+ name: Japanese
316
+ native: 日本語
317
+ encoding: UTF-8
318
+ feature: フィーチャ|機能
319
+ background: 背景
320
+ scenario: シナリオ
321
+ scenario_outline: シナリオアウトライン|シナリオテンプレート|テンプレ|シナリオテンプレ
322
+ examples: 例|サンプル
323
+ given: 前提
324
+ when: もし
325
+ then: ならば
326
+ and: かつ
327
+ but: しかし|但し
328
+ space_after_keyword: false
329
+ "ko":
330
+ name: Korean
331
+ native: 한국어
332
+ encoding: UTF-8
333
+ background: 배경
334
+ feature: 기능
335
+ scenario: 시나리오
336
+ scenario_outline: 시나리오 개요
337
+ examples: 예
338
+ given: 조건
339
+ when: 만일
340
+ then: 그러면
341
+ and: 그리고
342
+ but: 하지만
343
+ space_after_keyword: false
344
+ "lt":
345
+ name: Lithuanian
346
+ native: lietuvių kalba
347
+ encoding: UTF-8
348
+ feature: Savybė
349
+ background: Kontekstas
350
+ scenario: Scenarijus
351
+ scenario_outline: Scenarijaus šablonas
352
+ examples: Pavyzdžiai|Scenarijai|Variantai
353
+ given: Duota
354
+ when: Kai
355
+ then: Tada
356
+ and: Ir
357
+ but: Bet
358
+ space_after_keyword: true
359
+ "lv":
360
+ name: Latvian
361
+ native: latviešu
362
+ encoding: UTF-8
363
+ feature: Funkcionalitāte|Fīča
364
+ background: Konteksts|Situācija
365
+ scenario: Scenārijs
366
+ scenario_outline: Scenārijs pēc parauga
367
+ examples: Piemēri|Paraugs
368
+ given: Kad
369
+ when: Ja
370
+ then: Tad
371
+ and: Un
372
+ but: Bet
373
+ space_after_keyword: true
374
+ "nl":
375
+ name: Dutch
376
+ native: Nederlands
377
+ encoding: UTF-8
378
+ feature: Functionaliteit
379
+ background: Achtergrond
380
+ scenario: Scenario
381
+ scenario_outline: Abstract Scenario
382
+ examples: Voorbeelden
383
+ given: Gegeven
384
+ when: Als
385
+ then: Dan
386
+ and: En
387
+ but: Maar
388
+ space_after_keyword: true
389
+ "no":
390
+ name: Norwegian
391
+ native: norsk
392
+ encoding: UTF-8
393
+ feature: Egenskap
394
+ background: Bakgrunn
395
+ scenario: Scenario
396
+ scenario_outline: Abstrakt Scenario
397
+ examples: Eksempler
398
+ given: Gitt
399
+ when: Når
400
+ then: Så
401
+ and: Og
402
+ but: Men
403
+ space_after_keyword: true
404
+ "pl":
405
+ name: Polish
406
+ native: polski
407
+ encoding: UTF-8
408
+ feature: Właściwość
409
+ background: Założenia
410
+ scenario: Scenariusz
411
+ scenario_outline: Szablon scenariusza
412
+ examples: Przykłady
413
+ given: Zakładając
414
+ when: Jeżeli
415
+ then: Wtedy
416
+ and: Oraz
417
+ but: Ale
418
+ space_after_keyword: true
419
+ "pt":
420
+ name: Portuguese
421
+ native: português
422
+ encoding: UTF-8
423
+ background: Contexto
424
+ feature: Funcionalidade
425
+ scenario: Cenário|Cenario
426
+ scenario_outline: Esquema do Cenário|Esquema do Cenario
427
+ examples: Exemplos
428
+ given: Dado
429
+ when: Quando
430
+ then: Então|Entao
431
+ and: E
432
+ but: Mas
433
+ space_after_keyword: true
434
+ "ro":
435
+ name: Romanian
436
+ native: română
437
+ encoding: UTF-8
438
+ feature: Functionalitate
439
+ scenario: Scenariu
440
+ given: Daca
441
+ when: Cand
442
+ then: Atunci
443
+ and: Si
444
+ but: Dar
445
+ space_after_keyword: true
446
+ "ro2":
447
+ name: Romanian (diacritical)
448
+ native: română (diacritical)
449
+ encoding: UTF-8
450
+ feature: Funcționalitate
451
+ scenario: Scenariu
452
+ given: Dacă
453
+ when: Când
454
+ then: Atunci
455
+ and: Și
456
+ but: Dar
457
+ space_after_keyword: true
458
+ "ru":
459
+ name: Russian
460
+ native: русский
461
+ encoding: UTF-8
462
+ feature: Функционал
463
+ background: Предыстория
464
+ scenario: Сценарий
465
+ scenario_outline: Структура сценария
466
+ examples: Значения
467
+ given: Допустим
468
+ when: Если
469
+ then: То
470
+ and: И|К тому же
471
+ but: Но|А
472
+ space_after_keyword: true
473
+ "se":
474
+ name: Swedish
475
+ native: Svenska
476
+ encoding: UTF-8
477
+ feature: Egenskap
478
+ background: Bakgrund
479
+ scenario: Scenario
480
+ scenario_outline: Abstrakt Scenario
481
+ examples: Exempel
482
+ given: Givet
483
+ when: När
484
+ then: Så
485
+ and: Och
486
+ but: Men
487
+ space_after_keyword: true
488
+ "sk":
489
+ name: Slovak
490
+ native: Slovensky
491
+ encoding: UTF-8
492
+ feature: Požiadavka
493
+ background: Pozadie
494
+ scenario: Scenár
495
+ scenario_outline: Náčrt Scenáru
496
+ examples: Príklady
497
+ given: Pokiaľ
498
+ when: Keď
499
+ then: Tak
500
+ and: A
501
+ but: Ale
502
+ space_after_keyword: true
503
+ "uz":
504
+ name: Uzbek
505
+ native: Узбекча
506
+ encoding: UTF-8
507
+ feature: Функционал
508
+ background: Тарих
509
+ scenario: Сценарий
510
+ scenario_outline: Сценарий структураси
511
+ examples: Мисоллар
512
+ given: Агар
513
+ when: Агар
514
+ then: Унда
515
+ and: Ва
516
+ but: Лекин|Бирок|Аммо
517
+ "vi":
518
+ name: Vietnamese
519
+ native: Tiếng Việt
520
+ encoding: UTF-8
521
+ feature: Tính năng
522
+ background: Bối cảnh
523
+ scenario: Tình huống|Kịch bản
524
+ scenario_outline: Khung tình huống|Khung kịch bản
525
+ examples: Dữ liệu
526
+ given: Biết|Cho
527
+ when: Khi
528
+ then: Thì
529
+ and: Và
530
+ but: Nhưng
531
+ space_after_keyword: true
532
+ "zh-CN":
533
+ name: Chinese simplified
534
+ native: 简体中文
535
+ encoding: UTF-8
536
+ feature: 功能
537
+ background: 背景
538
+ scenario: 场景
539
+ scenario_outline: 场景大纲
540
+ examples: 例子
541
+ given: 假如
542
+ when: 当
543
+ then: 那么
544
+ and: 而且
545
+ but: 但是
546
+ space_after_keyword: false
547
+ "zh-TW":
548
+ name: Chinese traditional
549
+ native: 繁體中文
550
+ encoding: UTF-8
551
+ feature: 功能
552
+ background: 背景
553
+ scenario: 場景|劇本
554
+ scenario_outline: 場景大綱|劇本大綱
555
+ examples: 例子
556
+ given: 假設
557
+ when: 當
558
+ then: 那麼
559
+ and: 而且|並且
560
+ but: 但是
561
+ space_after_keyword: false