This is an automated email from the git hooks/post-receive script. intrigeri pushed a commit to annotated tag 0.19 in repository libtest-bdd-cucumber-perl.
commit 15f79dfe26d1d29e29a7d4122713c63b9b8ec4d1 Author: Pablo Duboue <[email protected]> Date: Sat Dec 15 11:35:47 2012 -0500 Localized feature files. Extended pherkin with an extra parameter for language and added Gherkin's i18n files. This change allows for localized feature files. Localizing step files is still missing. --- dist.ini | 1 + examples/calculator/features/basic.feature.es | 62 ++++ lib/App/pherkin.pm | 4 +- lib/Test/BDD/Cucumber/Loader.pm | 4 +- lib/Test/BDD/Cucumber/Parser.pm | 49 ++- lib/Test/BDD/Cucumber/i18n.json | 470 +++++++++++++------------- 6 files changed, 333 insertions(+), 257 deletions(-) diff --git a/dist.ini b/dist.ini index be124a7..1f45c18 100644 --- a/dist.ini +++ b/dist.ini @@ -26,3 +26,4 @@ Test::Builder = 0 Test::Differences = 0 Test::More = 0 YAML::Syck = 0 +JSON::XS = 0 diff --git a/examples/calculator/features/basic.feature.es b/examples/calculator/features/basic.feature.es new file mode 100644 index 0000000..4e7adda --- /dev/null +++ b/examples/calculator/features/basic.feature.es @@ -0,0 +1,62 @@ +Característica: Funciones Básicas de Calculadora + In order to check I've written the Calculator class correctly + As a developer I want to check some basic operations + So that I can have confidence in my Calculator class. + + Antecedentes: + Dado a usable "Calculator" class + + Escenario: First Key Press on the Display + Dado a new Calculator object + Y having pressed 1 + Entonces the display should show 1 + + Escenario: Several Key Presses on the Display + Dada a new Calculator object + Y having pressed 1 and 2 and 3 and . and 5 and 0 + Entonces the display should show 123.50 + + Escenario: Pressing Clear Wipes the Display + Dada a new Calculator object + Y having pressed 1 and 2 and 3 + Y having pressed C + Entonces the display should show 0 + + Escenario: Add as you go + Dado a new Calculator object + Y having pressed 1 and 2 and 3 and + and 4 and 5 and 6 and + + Entonces the display should show 579 + + Escenario: Basic arithmetic + Dado a new Calculator object + Y having keyed <first> + Y having keyed <operator> + Y having keyed <second> + Y having pressed = + Entonces the display should show <result> + Ejemplos: + | first | operator | second | result | + | 5.0 | + | 5.0 | 10 | + | 6 | / | 3 | 2 | + | 10 | * | 7.550 | 75.5 | + | 3 | - | 10 | -7 | + + Escenario: Separation of calculations + Dado a new Calculator object + Y having successfully performed the following calculations + | first | operator | second | result | + | 0.5 | + | 0.1 | 0.6 | + | 0.01 | / | 0.01 | 1 | + | 10 | * | 1 | 10 | + Y having pressed 3 + Entonces the display should show 3 + + Escenario: Ticker Tape + Dado a new Calculator object + Y having entered the following sequence + """ + 1 + 2 + 3 + 4 + 5 + 6 - + 100 + * 13 \=\=\= + 2 = + """ + Entonces the display should show -1025 \ No newline at end of file diff --git a/lib/App/pherkin.pm b/lib/App/pherkin.pm index e217391..024ed51 100644 --- a/lib/App/pherkin.pm +++ b/lib/App/pherkin.pm @@ -43,7 +43,7 @@ Returns a L<Test::BDD::Cucumber::Model::Result> object for all steps run. sub run { my ( $class, @arguments ) = @_; my ( $executor, @features ) = Test::BDD::Cucumber::Loader->load( - $arguments[0] || './features/' + $arguments[0] || './features/', $arguments[1] ); die "No feature files found" unless @features; @@ -63,4 +63,4 @@ Copyright 2011, Peter Sergeant; Licensed under the same terms as Perl =cut -1; \ No newline at end of file +1; diff --git a/lib/Test/BDD/Cucumber/Loader.pm b/lib/Test/BDD/Cucumber/Loader.pm index 10a262b..ea05a2c 100644 --- a/lib/Test/BDD/Cucumber/Loader.pm +++ b/lib/Test/BDD/Cucumber/Loader.pm @@ -28,7 +28,7 @@ use Test::BDD::Cucumber::Parser; use Test::BDD::Cucumber::StepFile(); sub load { - my ( $class, $path ) = @_; + my ( $class, $path, $language ) = @_; my $executor = Test::BDD::Cucumber::Executor->new(); # Either load a feature or a directory... @@ -51,7 +51,7 @@ sub load { # Grab the feature files my @features = map { my $file = $_; - my $feature = Test::BDD::Cucumber::Parser->parse_file( $file ); + my $feature = Test::BDD::Cucumber::Parser->parse_file( $file, $language ); } ( $file ? ($file.'') : File::Find::Rule ->file() ->name( '*.feature' ) diff --git a/lib/Test/BDD/Cucumber/Parser.pm b/lib/Test/BDD/Cucumber/Parser.pm index b06198c..d082381 100644 --- a/lib/Test/BDD/Cucumber/Parser.pm +++ b/lib/Test/BDD/Cucumber/Parser.pm @@ -28,8 +28,10 @@ L<Test::BDD::Cucumber::Model::Feature> object on success. use strict; use warnings; use Ouch; +use encoding 'utf8'; use File::Slurp; +use JSON::XS; use Test::BDD::Cucumber::Model::Document; use Test::BDD::Cucumber::Model::Feature; use Test::BDD::Cucumber::Model::Scenario; @@ -38,23 +40,30 @@ use Test::BDD::Cucumber::Model::Step; # https://github.com/cucumber/cucumber/wiki/Multiline-Step-Arguments # https://github.com/cucumber/cucumber/wiki/Scenario-outlines +my $LANGUAGES = decode_json( read_file( "./lib/Test/BDD/Cucumber/i18n.json", { binmode => ':raw' } ) ); + sub parse_string { - my ( $self, $string ) = @_; - return $self->_construct( Test::BDD::Cucumber::Model::Document->new({ + my ( $class, $string, $language ) = @_; + $language = 'en' unless($language); + return $class->_construct( Test::BDD::Cucumber::Model::Document->new({ content => $string - }) ); + }), $language ); } sub parse_file { - my ( $self, $string ) = @_; - return $self->_construct( Test::BDD::Cucumber::Model::Document->new({ - content => scalar( read_file $string ), + my ( $class, $string, $language ) = @_; + $language = 'en' unless($language); + return $class->_construct( Test::BDD::Cucumber::Model::Document->new({ + content => scalar( read_file( $string, { binmode => ':utf8' } ) ), filename => $string - }) ); + }), $language ); } sub _construct { - my ( $self, $document ) = @_; + my ( $class, $document, $language ) = @_; + + my $self = { keywords => $LANGUAGES->{$language} }; + bless $self, $class; my $feature = Test::BDD::Cucumber::Model::Feature->new({ document => $document }); my @lines = $self->_remove_next_blanks( @{ $document->lines } ); @@ -84,7 +93,7 @@ sub _extract_feature_name { next if $line->is_comment; last if $line->is_blank; - if ( $line->content =~ m/^Feature: (.+)/ ) { + if ( $line->content =~ m/^(?:$self->{keywords}->{feature}): (.+)/ ) { $feature->name( $1 ); $feature->name_line( $line ); $feature->tags( \@feature_tags ); @@ -110,7 +119,7 @@ sub _extract_conditions_of_satisfaction { while ( my $line = shift( @lines ) ) { next if $line->is_comment || $line->is_blank; - if ( $line->content =~ m/^(Background:|Scenario:|@)/ ) { + if ( $line->content =~ m/^((?:$self->{keywords}->{background}):|(?:$self->{keywords}->{scenario}):|@)/ ) { unshift( @lines, $line ); last; } else { @@ -129,11 +138,11 @@ sub _extract_scenarios { while ( my $line = shift( @lines ) ) { next if $line->is_comment || $line->is_blank; - if ( $line->content =~ m/^(Background|Scenario)(?: Outline)?: ?(.+)?/ ) { + if ( $line->content =~ m/^((?:$self->{keywords}->{background})|(?:$self->{keywords}->{scenario}))(?: Outline)?: ?(.+)?/ ) { my ( $type, $name ) = ( $1, $2 ); # Only one background section, and it must be the first - if ( $scenarios++ && $type eq 'Background' ) { + if ( $scenarios++ && $type =~ m/^($self->{keywords}->{background})/ ) { ouch 'parse_error', "Background not allowed after scenarios", $line; } @@ -141,7 +150,7 @@ sub _extract_scenarios { # Create the scenario my $scenario = Test::BDD::Cucumber::Model::Scenario->new({ ( $name ? ( name => $name ) : () ), - background => $type eq 'Background' ? 1 : 0, + background => $type =~ m/^($self->{keywords}->{background})/ ? 1 : 0, line => $line, tags => [@{$feature->tags}, @scenario_tags] }); @@ -150,7 +159,7 @@ sub _extract_scenarios { # Attempt to populate it @lines = $self->_extract_steps( $feature, $scenario, @lines ); - if ( $type eq 'Background' ) { + if ( $type =~ m/^($self->{keywords}->{background})/ ) { $feature->background( $scenario ); } else { push( @{ $feature->scenarios }, $scenario ); @@ -172,17 +181,21 @@ sub _extract_scenarios { sub _extract_steps { my ( $self, $feature, $scenario, @lines ) = @_; - my $last_verb = 'Given'; + my @givens = split( /\|/, $self->{keywords}->{given} ); + my $last_verb = $givens[-1]; while ( my $line = shift( @lines ) ) { next if $line->is_comment; last if $line->is_blank; # Conventional step? - if ( $line->content =~ m/^(Given|And|When|Then|But) (.+)/ ) { + if ( $line->content =~ m/^((?:$self->{keywords}->{given})|(?:$self->{keywords}->{and})|(?:$self->{keywords}->{when})|(?:$self->{keywords}->{then})|(?:$self->{keywords}->{but})) (.+)/ ) { my ( $verb, $text ) = ( $1, $2 ); my $original_verb = $verb; - $verb = $last_verb if lc($verb) eq 'and' or lc($verb) eq 'but'; + $verb = 'Given' if $verb =~ m/($self->{keywords}->{given})/; + $verb = 'When' if $verb =~ m/($self->{keywords}->{when})/; + $verb = 'Then' if $verb =~ m/($self->{keywords}->{then})/; + $verb = $last_verb if $verb =~ m/^($self->{keywords}->{and})/ or $verb =~ m/^($self->{keywords}->{but})/; $last_verb = $verb; my $step = Test::BDD::Cucumber::Model::Step->new({ @@ -198,7 +211,7 @@ sub _extract_steps { push( @{ $scenario->steps }, $step ); # Outline data block... - } elsif ( $line->content =~ m/^Examples:$/ ) { + } elsif ( $line->content =~ m/^($self->{keywords}->{examples}):$/ ) { return $self->_extract_table( 6, $scenario, $self->_remove_next_blanks( @lines )); } else { diff --git a/lib/Test/BDD/Cucumber/i18n.json b/lib/Test/BDD/Cucumber/i18n.json index b1e101c..8299287 100644 --- a/lib/Test/BDD/Cucumber/i18n.json +++ b/lib/Test/BDD/Cucumber/i18n.json @@ -7,11 +7,11 @@ "scenario": "Scenario", "scenario_outline": "Scenario Outline|Scenario Template", "examples": "Examples|Scenarios", - "given": "*|Given", - "when": "*|When", - "then": "*|Then", - "and": "*|And", - "but": "*|But" + "given": "[*]|Given", + "when": "[*]|When", + "then": "[*]|Then", + "and": "[*]|And", + "but": "[*]|But" }, "ar": { "name": "Arabic", @@ -21,11 +21,11 @@ "scenario": "سيناريو", "scenario_outline": "سيناريو مخطط", "examples": "امثلة", - "given": "*|بفرض", - "when": "*|متى|عندما", - "then": "*|اذاً|ثم", - "and": "*|و", - "but": "*|لكن" + "given": "[*]|بفرض", + "when": "[*]|متى|عندما", + "then": "[*]|اذاً|ثم", + "and": "[*]|و", + "but": "[*]|لكن" }, "bm": { "name": "Malay", @@ -35,11 +35,11 @@ "scenario": "Senario", "scenario_outline": "Menggariskan Senario ", "examples": "Contoh ", - "given": "*|Bagi", - "when": "*|Apabila", - "then": "*|Kemudian", - "and": "*|Dan", - "but": "*|Tetapi" + "given": "[*]|Bagi", + "when": "[*]|Apabila", + "then": "[*]|Kemudian", + "and": "[*]|Dan", + "but": "[*]|Tetapi" }, "bg": { "name": "Bulgarian", @@ -49,11 +49,11 @@ "scenario": "Сценарий", "scenario_outline": "Рамка на сценарий", "examples": "Примери", - "given": "*|Дадено", - "when": "*|Когато", - "then": "*|То", - "and": "*|И", - "but": "*|Но" + "given": "[*]|Дадено", + "when": "[*]|Когато", + "then": "[*]|То", + "and": "[*]|И", + "but": "[*]|Но" }, "ca": { "name": "Catalan", @@ -63,11 +63,11 @@ "scenario": "Escenari", "scenario_outline": "Esquema de l'escenari", "examples": "Exemples", - "given": "*|Donat|Donada|Atès|Atesa", - "when": "*|Quan", - "then": "*|Aleshores|Cal", - "and": "*|I", - "but": "*|Però" + "given": "[*]|Donat|Donada|Atès|Atesa", + "when": "[*]|Quan", + "then": "[*]|Aleshores|Cal", + "and": "[*]|I", + "but": "[*]|Però" }, "cy-GB": { "name": "Welsh", @@ -77,11 +77,11 @@ "scenario": "Scenario", "scenario_outline": "Scenario Amlinellol", "examples": "Enghreifftiau", - "given": "*|Anrhegedig a", - "when": "*|Pryd", - "then": "*|Yna", - "and": "*|A", - "but": "*|Ond" + "given": "[*]|Anrhegedig a", + "when": "[*]|Pryd", + "then": "[*]|Yna", + "and": "[*]|A", + "but": "[*]|Ond" }, "cs": { "name": "Czech", @@ -91,11 +91,11 @@ "scenario": "Scénář", "scenario_outline": "Náčrt Scénáře|Osnova scénáře", "examples": "Příklady", - "given": "*|Pokud|Za předpokladu", - "when": "*|Když", - "then": "*|Pak", - "and": "*|A také|A", - "but": "*|Ale" + "given": "[*]|Pokud|Za předpokladu", + "when": "[*]|Když", + "then": "[*]|Pak", + "and": "[*]|A také|A", + "but": "[*]|Ale" }, "da": { "name": "Danish", @@ -105,11 +105,11 @@ "scenario": "Scenarie", "scenario_outline": "Abstrakt Scenario", "examples": "Eksempler", - "given": "*|Givet", - "when": "*|Når", - "then": "*|Så", - "and": "*|Og", - "but": "*|Men" + "given": "[*]|Givet", + "when": "[*]|Når", + "then": "[*]|Så", + "and": "[*]|Og", + "but": "[*]|Men" }, "de": { "name": "German", @@ -119,11 +119,11 @@ "scenario": "Szenario", "scenario_outline": "Szenariogrundriss", "examples": "Beispiele", - "given": "*|Angenommen|Gegeben sei", - "when": "*|Wenn", - "then": "*|Dann", - "and": "*|Und", - "but": "*|Aber" + "given": "[*]|Angenommen|Gegeben sei", + "when": "[*]|Wenn", + "then": "[*]|Dann", + "and": "[*]|Und", + "but": "[*]|Aber" }, "en-au": { "name": "Australian", @@ -133,11 +133,11 @@ "scenario": "Awww, look mate", "scenario_outline": "Reckon it's like", "examples": "You'll wanna", - "given": "*|Y'know", - "when": "*|It's just unbelievable", - "then": "*|But at the end of the day I reckon", - "and": "*|Too right", - "but": "*|Yeah nah" + "given": "[*]|Y'know", + "when": "[*]|It's just unbelievable", + "then": "[*]|But at the end of the day I reckon", + "and": "[*]|Too right", + "but": "[*]|Yeah nah" }, "en-lol": { "name": "LOLCAT", @@ -147,11 +147,11 @@ "scenario": "MISHUN", "scenario_outline": "MISHUN SRSLY", "examples": "EXAMPLZ", - "given": "*|I CAN HAZ", - "when": "*|WEN", - "then": "*|DEN", - "and": "*|AN", - "but": "*|BUT" + "given": "[*]|I CAN HAZ", + "when": "[*]|WEN", + "then": "[*]|DEN", + "and": "[*]|AN", + "but": "[*]|BUT" }, "en-pirate": { "name": "Pirate", @@ -161,11 +161,11 @@ "scenario": "Heave to", "scenario_outline": "Shiver me timbers", "examples": "Dead men tell no tales", - "given": "*|Gangway!", - "when": "*|Blimey!", - "then": "*|Let go and haul", - "and": "*|Aye", - "but": "*|Avast!" + "given": "[*]|Gangway!", + "when": "[*]|Blimey!", + "then": "[*]|Let go and haul", + "and": "[*]|Aye", + "but": "[*]|Avast!" }, "en-Scouse": { "name": "Scouse", @@ -175,11 +175,11 @@ "scenario": "The thing of it is", "scenario_outline": "Wharrimean is", "examples": "Examples", - "given": "*|Givun|Youse know when youse got", - "when": "*|Wun|Youse know like when", - "then": "*|Dun|Den youse gotta", - "and": "*|An", - "but": "*|Buh" + "given": "[*]|Givun|Youse know when youse got", + "when": "[*]|Wun|Youse know like when", + "then": "[*]|Dun|Den youse gotta", + "and": "[*]|An", + "but": "[*]|Buh" }, "en-tx": { "name": "Texan", @@ -189,11 +189,11 @@ "scenario": "Scenario", "scenario_outline": "All y'all", "examples": "Examples", - "given": "*|Given y'all", - "when": "*|When y'all", - "then": "*|Then y'all", - "and": "*|And y'all", - "but": "*|But y'all" + "given": "[*]|Given y'all", + "when": "[*]|When y'all", + "then": "[*]|Then y'all", + "and": "[*]|And y'all", + "but": "[*]|But y'all" }, "eo": { "name": "Esperanto", @@ -203,11 +203,11 @@ "scenario": "Scenaro", "scenario_outline": "Konturo de la scenaro", "examples": "Ekzemploj", - "given": "*|Donitaĵo", - "when": "*|Se", - "then": "*|Do", - "and": "*|Kaj", - "but": "*|Sed" + "given": "[*]|Donitaĵo", + "when": "[*]|Se", + "then": "[*]|Do", + "and": "[*]|Kaj", + "but": "[*]|Sed" }, "es": { "name": "Spanish", @@ -217,11 +217,11 @@ "scenario": "Escenario", "scenario_outline": "Esquema del escenario", "examples": "Ejemplos", - "given": "*|Dado|Dada|Dados|Dadas", - "when": "*|Cuando", - "then": "*|Entonces", - "and": "*|Y", - "but": "*|Pero" + "given": "[*]|Dado|Dada|Dados|Dadas", + "when": "[*]|Cuando", + "then": "[*]|Entonces", + "and": "[*]|Y", + "but": "[*]|Pero" }, "et": { "name": "Estonian", @@ -231,11 +231,11 @@ "scenario": "Stsenaarium", "scenario_outline": "Raamstsenaarium", "examples": "Juhtumid", - "given": "*|Eeldades", - "when": "*|Kui", - "then": "*|Siis", - "and": "*|Ja", - "but": "*|Kuid" + "given": "[*]|Eeldades", + "when": "[*]|Kui", + "then": "[*]|Siis", + "and": "[*]|Ja", + "but": "[*]|Kuid" }, "fa": { "name": "Persian", @@ -245,11 +245,11 @@ "scenario": "سناریو", "scenario_outline": "الگوی سناریو", "examples": "نمونه ها", - "given": "*|با فرض", - "when": "*|هنگامی", - "then": "*|آنگاه", - "and": "*|و", - "but": "*|اما" + "given": "[*]|با فرض", + "when": "[*]|هنگامی", + "then": "[*]|آنگاه", + "and": "[*]|و", + "but": "[*]|اما" }, "fi": { "name": "Finnish", @@ -259,11 +259,11 @@ "scenario": "Tapaus", "scenario_outline": "Tapausaihio", "examples": "Tapaukset", - "given": "*|Oletetaan", - "when": "*|Kun", - "then": "*|Niin", - "and": "*|Ja", - "but": "*|Mutta" + "given": "[*]|Oletetaan", + "when": "[*]|Kun", + "then": "[*]|Niin", + "and": "[*]|Ja", + "but": "[*]|Mutta" }, "fr": { "name": "French", @@ -273,11 +273,11 @@ "scenario": "Scénario", "scenario_outline": "Plan du scénario|Plan du Scénario", "examples": "Exemples", - "given": "*|Soit|Etant donné|Etant donnée|Etant donnés|Etant données|Étant donné|Étant donnée|Étant donnés|Étant données", - "when": "*|Quand|Lorsque|Lorsqu'<", - "then": "*|Alors", - "and": "*|Et", - "but": "*|Mais" + "given": "[*]|Soit|Etant donné|Etant donnée|Etant donnés|Etant données|Étant donné|Étant donnée|Étant donnés|Étant données", + "when": "[*]|Quand|Lorsque|Lorsqu'<", + "then": "[*]|Alors", + "and": "[*]|Et", + "but": "[*]|Mais" }, "he": { "name": "Hebrew", @@ -287,11 +287,11 @@ "scenario": "תרחיש", "scenario_outline": "תבנית תרחיש", "examples": "דוגמאות", - "given": "*|בהינתן", - "when": "*|כאשר", - "then": "*|אז|אזי", - "and": "*|וגם", - "but": "*|אבל" + "given": "[*]|בהינתן", + "when": "[*]|כאשר", + "then": "[*]|אז|אזי", + "and": "[*]|וגם", + "but": "[*]|אבל" }, "hr": { "name": "Croatian", @@ -301,11 +301,11 @@ "scenario": "Scenarij", "scenario_outline": "Skica|Koncept", "examples": "Primjeri|Scenariji", - "given": "*|Zadan|Zadani|Zadano", - "when": "*|Kada|Kad", - "then": "*|Onda", - "and": "*|I", - "but": "*|Ali" + "given": "[*]|Zadan|Zadani|Zadano", + "when": "[*]|Kada|Kad", + "then": "[*]|Onda", + "and": "[*]|I", + "but": "[*]|Ali" }, "hu": { "name": "Hungarian", @@ -315,11 +315,11 @@ "scenario": "Forgatókönyv", "scenario_outline": "Forgatókönyv vázlat", "examples": "Példák", - "given": "*|Amennyiben|Adott", - "when": "*|Majd|Ha|Amikor", - "then": "*|Akkor", - "and": "*|És", - "but": "*|De" + "given": "[*]|Amennyiben|Adott", + "when": "[*]|Majd|Ha|Amikor", + "then": "[*]|Akkor", + "and": "[*]|És", + "but": "[*]|De" }, "id": { "name": "Indonesian", @@ -329,11 +329,11 @@ "scenario": "Skenario", "scenario_outline": "Skenario konsep", "examples": "Contoh", - "given": "*|Dengan", - "when": "*|Ketika", - "then": "*|Maka", - "and": "*|Dan", - "but": "*|Tapi" + "given": "[*]|Dengan", + "when": "[*]|Ketika", + "then": "[*]|Maka", + "and": "[*]|Dan", + "but": "[*]|Tapi" }, "is": { "name": "Icelandic", @@ -343,11 +343,11 @@ "scenario": "Atburðarás", "scenario_outline": "Lýsing Atburðarásar|Lýsing Dæma", "examples": "Dæmi|Atburðarásir", - "given": "*|Ef", - "when": "*|Þegar", - "then": "*|Þá", - "and": "*|Og", - "but": "*|En" + "given": "[*]|Ef", + "when": "[*]|Þegar", + "then": "[*]|Þá", + "and": "[*]|Og", + "but": "[*]|En" }, "it": { "name": "Italian", @@ -357,11 +357,11 @@ "scenario": "Scenario", "scenario_outline": "Schema dello scenario", "examples": "Esempi", - "given": "*|Dato|Data|Dati|Date", - "when": "*|Quando", - "then": "*|Allora", - "and": "*|E", - "but": "*|Ma" + "given": "[*]|Dato|Data|Dati|Date", + "when": "[*]|Quando", + "then": "[*]|Allora", + "and": "[*]|E", + "but": "[*]|Ma" }, "ja": { "name": "Japanese", @@ -371,11 +371,11 @@ "scenario": "シナリオ", "scenario_outline": "シナリオアウトライン|シナリオテンプレート|テンプレ|シナリオテンプレ", "examples": "例|サンプル", - "given": "*|前提<", - "when": "*|もし<", - "then": "*|ならば<", - "and": "*|かつ<", - "but": "*|しかし<|但し<|ただし<" + "given": "[*]|前提<", + "when": "[*]|もし<", + "then": "[*]|ならば<", + "and": "[*]|かつ<", + "but": "[*]|しかし<|但し<|ただし<" }, "ko": { "name": "Korean", @@ -385,11 +385,11 @@ "scenario": "시나리오", "scenario_outline": "시나리오 개요", "examples": "예", - "given": "*|조건<|먼저<", - "when": "*|만일<|만약<", - "then": "*|그러면<", - "and": "*|그리고<", - "but": "*|하지만<|단<" + "given": "[*]|조건<|먼저<", + "when": "[*]|만일<|만약<", + "then": "[*]|그러면<", + "and": "[*]|그리고<", + "but": "[*]|하지만<|단<" }, "lt": { "name": "Lithuanian", @@ -399,11 +399,11 @@ "scenario": "Scenarijus", "scenario_outline": "Scenarijaus šablonas", "examples": "Pavyzdžiai|Scenarijai|Variantai", - "given": "*|Duota", - "when": "*|Kai", - "then": "*|Tada", - "and": "*|Ir", - "but": "*|Bet" + "given": "[*]|Duota", + "when": "[*]|Kai", + "then": "[*]|Tada", + "and": "[*]|Ir", + "but": "[*]|Bet" }, "lu": { "name": "Luxemburgish", @@ -413,11 +413,11 @@ "scenario": "Szenario", "scenario_outline": "Plang vum Szenario", "examples": "Beispiller", - "given": "*|ugeholl", - "when": "*|wann", - "then": "*|dann", - "and": "*|an|a", - "but": "*|awer|mä" + "given": "[*]|ugeholl", + "when": "[*]|wann", + "then": "[*]|dann", + "and": "[*]|an|a", + "but": "[*]|awer|mä" }, "lv": { "name": "Latvian", @@ -427,11 +427,11 @@ "scenario": "Scenārijs", "scenario_outline": "Scenārijs pēc parauga", "examples": "Piemēri|Paraugs", - "given": "*|Kad", - "when": "*|Ja", - "then": "*|Tad", - "and": "*|Un", - "but": "*|Bet" + "given": "[*]|Kad", + "when": "[*]|Ja", + "then": "[*]|Tad", + "and": "[*]|Un", + "but": "[*]|Bet" }, "nl": { "name": "Dutch", @@ -441,11 +441,11 @@ "scenario": "Scenario", "scenario_outline": "Abstract Scenario", "examples": "Voorbeelden", - "given": "*|Gegeven|Stel", - "when": "*|Als", - "then": "*|Dan", - "and": "*|En", - "but": "*|Maar" + "given": "[*]|Gegeven|Stel", + "when": "[*]|Als", + "then": "[*]|Dan", + "and": "[*]|En", + "but": "[*]|Maar" }, "no": { "name": "Norwegian", @@ -455,11 +455,11 @@ "scenario": "Scenario", "scenario_outline": "Scenariomal|Abstrakt Scenario", "examples": "Eksempler", - "given": "*|Gitt", - "when": "*|Når", - "then": "*|Så", - "and": "*|Og", - "but": "*|Men" + "given": "[*]|Gitt", + "when": "[*]|Når", + "then": "[*]|Så", + "and": "[*]|Og", + "but": "[*]|Men" }, "pl": { "name": "Polish", @@ -469,11 +469,11 @@ "scenario": "Scenariusz", "scenario_outline": "Szablon scenariusza", "examples": "Przykłady", - "given": "*|Zakładając|Mając", - "when": "*|Jeżeli|Jeśli|Gdy|Kiedy", - "then": "*|Wtedy", - "and": "*|Oraz|I", - "but": "*|Ale" + "given": "[*]|Zakładając|Mając", + "when": "[*]|Jeżeli|Jeśli|Gdy|Kiedy", + "then": "[*]|Wtedy", + "and": "[*]|Oraz|I", + "but": "[*]|Ale" }, "pt": { "name": "Portuguese", @@ -483,11 +483,11 @@ "scenario": "Cenário|Cenario", "scenario_outline": "Esquema do Cenário|Esquema do Cenario|Delineação do Cenário|Delineacao do Cenario", "examples": "Exemplos|Cenários|Cenarios", - "given": "*|Dado|Dada|Dados|Dadas", - "when": "*|Quando", - "then": "*|Então|Entao", - "and": "*|E", - "but": "*|Mas" + "given": "[*]|Dado|Dada|Dados|Dadas", + "when": "[*]|Quando", + "then": "[*]|Então|Entao", + "and": "[*]|E", + "but": "[*]|Mas" }, "ro": { "name": "Romanian", @@ -497,11 +497,11 @@ "scenario": "Scenariu", "scenario_outline": "Structura scenariu|Structură scenariu", "examples": "Exemple", - "given": "*|Date fiind|Dat fiind|Dati fiind|Dați fiind|Daţi fiind", - "when": "*|Cand|Când", - "then": "*|Atunci", - "and": "*|Si|Și|Şi", - "but": "*|Dar" + "given": "[*]|Date fiind|Dat fiind|Dati fiind|Dați fiind|Daţi fiind", + "when": "[*]|Cand|Când", + "then": "[*]|Atunci", + "and": "[*]|Si|Și|Şi", + "but": "[*]|Dar" }, "ru": { "name": "Russian", @@ -511,11 +511,11 @@ "scenario": "Сценарий", "scenario_outline": "Структура сценария", "examples": "Примеры", - "given": "*|Допустим|Дано|Пусть", - "when": "*|Если|Когда", - "then": "*|То|Тогда", - "and": "*|И|К тому же|Также", - "but": "*|Но|А" + "given": "[*]|Допустим|Дано|Пусть", + "when": "[*]|Если|Когда", + "then": "[*]|То|Тогда", + "and": "[*]|И|К тому же|Также", + "but": "[*]|Но|А" }, "sv": { "name": "Swedish", @@ -525,11 +525,11 @@ "scenario": "Scenario", "scenario_outline": "Abstrakt Scenario|Scenariomall", "examples": "Exempel", - "given": "*|Givet", - "when": "*|När", - "then": "*|Så", - "and": "*|Och", - "but": "*|Men" + "given": "[*]|Givet", + "when": "[*]|När", + "then": "[*]|Så", + "and": "[*]|Och", + "but": "[*]|Men" }, "sk": { "name": "Slovak", @@ -539,11 +539,11 @@ "scenario": "Scenár", "scenario_outline": "Náčrt Scenáru", "examples": "Príklady", - "given": "*|Pokiaľ", - "when": "*|Keď", - "then": "*|Tak", - "and": "*|A", - "but": "*|Ale" + "given": "[*]|Pokiaľ", + "when": "[*]|Keď", + "then": "[*]|Tak", + "and": "[*]|A", + "but": "[*]|Ale" }, "sr-Latn": { "name": "Serbian (Latin)", @@ -553,11 +553,11 @@ "scenario": "Scenario|Primer", "scenario_outline": "Struktura scenarija|Skica|Koncept", "examples": "Primeri|Scenariji", - "given": "*|Zadato|Zadate|Zatati", - "when": "*|Kada|Kad", - "then": "*|Onda", - "and": "*|I", - "but": "*|Ali" + "given": "[*]|Zadato|Zadate|Zatati", + "when": "[*]|Kada|Kad", + "then": "[*]|Onda", + "and": "[*]|I", + "but": "[*]|Ali" }, "sr-Cyrl": { "name": "Serbian", @@ -567,11 +567,11 @@ "scenario": "Сценарио|Пример", "scenario_outline": "Структура сценарија|Скица|Концепт", "examples": "Примери|Сценарији", - "given": "*|Задато|Задате|Задати", - "when": "*|Када|Кад", - "then": "*|Онда", - "and": "*|И", - "but": "*|Али" + "given": "[*]|Задато|Задате|Задати", + "when": "[*]|Када|Кад", + "then": "[*]|Онда", + "and": "[*]|И", + "but": "[*]|Али" }, "tr": { "name": "Turkish", @@ -581,11 +581,11 @@ "scenario": "Senaryo", "scenario_outline": "Senaryo taslağı", "examples": "Örnekler", - "given": "*|Diyelim ki", - "when": "*|Eğer ki", - "then": "*|O zaman", - "and": "*|Ve", - "but": "*|Fakat|Ama" + "given": "[*]|Diyelim ki", + "when": "[*]|Eğer ki", + "then": "[*]|O zaman", + "and": "[*]|Ve", + "but": "[*]|Fakat|Ama" }, "uk": { "name": "Ukrainian", @@ -595,11 +595,11 @@ "scenario": "Сценарій", "scenario_outline": "Структура сценарію", "examples": "Приклади", - "given": "*|Припустимо|Припустимо, що|Нехай|Дано", - "when": "*|Якщо|Коли", - "then": "*|То|Тоді", - "and": "*|І|А також|Та", - "but": "*|Але" + "given": "[*]|Припустимо|Припустимо, що|Нехай|Дано", + "when": "[*]|Якщо|Коли", + "then": "[*]|То|Тоді", + "and": "[*]|І|А також|Та", + "but": "[*]|Але" }, "uz": { "name": "Uzbek", @@ -609,11 +609,11 @@ "scenario": "Сценарий", "scenario_outline": "Сценарий структураси", "examples": "Мисоллар", - "given": "*|Агар", - "when": "*|Агар", - "then": "*|Унда", - "and": "*|Ва", - "but": "*|Лекин|Бирок|Аммо" + "given": "[*]|Агар", + "when": "[*]|Агар", + "then": "[*]|Унда", + "and": "[*]|Ва", + "but": "[*]|Лекин|Бирок|Аммо" }, "vi": { "name": "Vietnamese", @@ -623,11 +623,11 @@ "scenario": "Tình huống|Kịch bản", "scenario_outline": "Khung tình huống|Khung kịch bản", "examples": "Dữ liệu", - "given": "*|Biết|Cho", - "when": "*|Khi", - "then": "*|Thì", - "and": "*|Và", - "but": "*|Nhưng" + "given": "[*]|Biết|Cho", + "when": "[*]|Khi", + "then": "[*]|Thì", + "and": "[*]|Và", + "but": "[*]|Nhưng" }, "zh-CN": { "name": "Chinese simplified", @@ -637,11 +637,11 @@ "scenario": "场景|剧本", "scenario_outline": "场景大纲|剧本大纲", "examples": "例子", - "given": "*|假如<|假设<|假定<", - "when": "*|当<", - "then": "*|那么<", - "and": "*|而且<|并且<|同时<", - "but": "*|但是<" + "given": "[*]|假如<|假设<|假定<", + "when": "[*]|当<", + "then": "[*]|那么<", + "and": "[*]|而且<|并且<|同时<", + "but": "[*]|但是<" }, "zh-TW": { "name": "Chinese traditional", @@ -651,10 +651,10 @@ "scenario": "場景|劇本", "scenario_outline": "場景大綱|劇本大綱", "examples": "例子", - "given": "*|假如<|假設<|假定<", - "when": "*|當<", - "then": "*|那麼<", - "and": "*|而且<|並且<|同時<", - "but": "*|但是<" + "given": "[*]|假如<|假設<|假定<", + "when": "[*]|當<", + "then": "[*]|那麼<", + "and": "[*]|而且<|並且<|同時<", + "but": "[*]|但是<" } } \ No newline at end of file -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libtest-bdd-cucumber-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits
