This project is read-only.

Steps localization (Given, Then, WithScenario ...) ?

Jul 18, 2010 at 7:15 PM

Have you planned to support steps localization used for creating stories and scenarios ?

 

Jul 18, 2010 at 9:58 PM
Could you give me an example of what you mean (and what you'd like to see)
Jul 18, 2010 at 10:04 PM

Example :

 new Story("Data Safety").Tag("sprint four")
                .InOrderTo("Keep my data safe")
                .AsA("User")           

is translated to this:

  Story is Data Safety => (#sprint four)
  In order to Keep my data safe
  As a User => (#some other tag)

but, I would like to be able to translate into some other language like this:

Storia è xxxx => (#...)
In xxxx
Come un xxxxx

Is this helpful ?

 

 

Jul 18, 2010 at 10:14 PM
yep! i understand now. This is exactly what we've got planned. May I ask what language(s) you'd like to see?
Jul 18, 2010 at 10:24 PM

I need Serbian, but, I can do that if you provide me with infrastructure or localized strings.

What I have in mind is something like Localizer, so community can contribute with different localizer and set it during runtime,

ie. StoryQ.Localizer = new EnglishLocalizer(); or StoryQ.Localizer = new SerbianLocalizer(), etc.

Just a suggestion :)

And You did a great job with this library.

 

 

 

Jul 18, 2010 at 10:32 PM

thanks :)

I actually want to create different APIs for each language, so that the code looks correct too. I have a system for generating the fluent interface, am just trying to work out how to manage the different dlls (and have them available to the code generator)

If you have time to translate StoryQ into Serbian for me, I just need this one text file translated: http://storyq.codeplex.com/SourceControl/changeset/view/06fe14201bdf#src%2fStoryQ%2fFluentInterface%2fStoryQ.txt - just paste it into here if you like.

Is the correct culture code "sr-SP"?

 

 

Jul 18, 2010 at 11:15 PM
Edited Jul 19, 2010 at 7:36 PM

Yes, culture code is sr-SP.

[updated: states are translated.]

Here is translation :

 

digraph StoryQ{

   //states
   Prica                    [shape=doublecircle,                tooltip="Ovo je root za bilo koju pricu"]
   Korist                    [                                    tooltip="Cilj iz realnog sveta (poslovna vrednost) price"]
   Uloga                    [                                    tooltip="Uloga (kategorija ucesnik/korisnik ili uloga koja ima korist. "]
   Opcija                    [                                    tooltip="Softverski proces koji ce implementirati navedenu korist."]
   Scenario                [                                    tooltip="Naziv svakog scenarija u prici. Svaki scenario se moze posmatrati kao poglavlje u knjizi."]
   Uslov                [fillcolor=skyblue, style=filled,    tooltip="Preduslovi koji treba da postoje na pocetku scenarija."]
   Operacija                [fillcolor=skyblue, style=filled,    tooltip="Akcija(e) koje su izvrsene nad sistemom koji se testira."]
   Ishod                    [fillcolor=skyblue, style=filled,    tooltip="Rezultat koji se ocekuje kada se izvrse sve navedene akcije nad definisanim pocetnim stanjem."]

   //transitions
   Prica->Korist            [label="DaBi",                    tooltip="Opisuje pravu vrednost ove price. Koji je poslovni proces koji korisnik zahteva da softver podrzi ?",indentlevel="1"]
   Korist->Korist        [label="I",                        tooltip="Opisuje bilo koji sekundarne poslovne funkcije koje ce ova prica da podrzi",indentlevel="2"]
   
   Korist->Uloga            [label="Kao",                        tooltip="Uloga korisnika koji ce koristiti ovu funkcionalnost",indentlevel="1"]
   Uloga->Uloga                [label="IliKao",                        tooltip="Bilo koja druga uloga koja moze da koristi ovu pricu",indentlevel="2"]
   
   Uloga->Opcija            [label="Zelim",                        tooltip="Opisuje poslovni proces (funkcionalnost) koja ce podrziti poslovni zahtev. ",indentlevel="1"]
   Opcija->Opcija        [label="I",                        tooltip="Dodatna funkcionalnost koja ce implementirati zahtevanu korist",indentlevel="2"]
   
   
   Opcija -> Scenario        [label="SaScenariom",                tooltip="Dodaj scenario ('given'/'when'/'then') prici. Scenariji se mogu dodavati (i bice izvrseni) sekvencijalno. Svaki scenario treba da ima kratak naziv.",indentlevel="3"]

   Scenario -> Uslov    [label="Dat",                        tooltip="Obezbedjuje pocetni kontekst scenariju. Pokusajte da ne opisujete ponasanje ili akcije, ovaj korak opisuje i postavlja pocetno stanje",indentlevel="4"]
   Uslov -> Uslov    [label="I",                        tooltip="Dodaje jos jedan preduslov za opis pocetnog stanja naseg scenarija",indentlevel="5"]
   
   Uslov -> Operacija    [label="Kada",                        tooltip="Opisuje akcije koje su izvrsene nad sistemom za testiranje.'",indentlevel="4"]
   Operacija -> Operacija    [label="I",                        tooltip="Opisuje dopunsku akciju koja ce se izvrsiti nad sistemom, pre nase provere ponasanja ('then')",indentlevel="5"]
   
   Operacija -> Ishod    [label="Onda",                        tooltip="Opisuje ponasanje sistema koje pred stanje i akcije treba da izazovu.",indentlevel="4"]
   Ishod -> Ishod        [label="I",                        tooltip="Dodaje jos jedno razultirajuce ponasanje koje treba proveriti",indentlevel="5"]
   
   Ishod -> Scenario        [label="SaScenariom",                tooltip="Dodaje jos jedna scenario ovoj prici. StoryQ izvrsava ove scenarije jedan iza drugog, tako da stanje moze biti deljeno izmedju scenarija jedne price.",indentlevel="3"]
}


What I don't see here is:

As a => Kao
Then => Onda
In Order to => U cilju da

 

so text:


   Story is Data Safety => (#sprint four)
  In order to Keep my data safe
  As a User => (#some other tag)

can be translated into

  Prica je Data Safety ....
  U cilju  xxx
  Kao xxx

 

Note:

   Our build server is running under en-us culture, and I will be happy if I don't have to change current thread culture in order to use localization.

Hope this help. :)

 

 

Jul 19, 2010 at 8:10 AM

If you could just list all the mappings for state names (eg: Story, Feature, Outcome) and transition labels (eg "InOrderTo", "Given", "When"), i'll show you the correct structure for the text file.

It's not actually going to be a mapping from english to serbian in the end - it will just be a serbian API. You'll add a rerference to both StoryQ.dll and StoryQ_sr-SP.dll, and inside StoryQ_sr-SP.dll will be the class Storia with method In...

Jul 19, 2010 at 7:41 PM

I have updated my post.

Jul 20, 2010 at 8:08 AM
perfect, thank you
Jul 20, 2010 at 11:47 AM

itgoran, could you test something for me please?

It's quite involved...

  1. Download the latest version of StoryQ's source from http://storyq.codeplex.com/SourceControl/list/changesets (download button)
  2. Open the solution file src\StoryQ.sln and build it in release mode
  3. Run generate.bat in languagePacks (this is the step that might go wrong)
  4. See if the dll file generated in languagePacks\bin suits your purposes (you'll also need the original storyq.dll)

Cheers - Rob

 

Jul 20, 2010 at 11:05 PM

Ok, I've done like You suggested.

Here are test results :)

1. I would change line:

Scenario -> Uslov    [label="Dat",                        tooltip="Obezbedjuje pocetni kontekst scenariju. Pokusajte da ne opisujete ponasanje ili akcije, ovaj korak opisuje i postavlja pocetno stanje",indentlevel="4"]

into

Scenario -> Uslov    [label="Dato",                        tooltip="Obezbedjuje pocetni kontekst scenariju. Pokusajte da ne opisujete ponasanje ili akcije, ovaj korak opisuje i postavlja pocetno stanje",indentlevel="4"]

2. In next sentence word "is" should be replaced with "je"  so that sentence

 " Prica is Naziv price ...."

   should be:
    
   "Prica je Naziv price...."

Thanx in advance for this changes :)

 

Jul 24, 2010 at 9:29 PM

How's this: http://storyq.codeplex.com/releases/view/49551#DownloadId=138089

Jul 24, 2010 at 9:41 PM
Work like a charm. Great job and thanks for Your efforts.