One of the core principles of Behaviour Driven Development (BDD) is having meaningful conversations to describe the behaviour of the software with concrete examples.
…having conversations are more important than capturing conversations is more important than automating conversations. – Liz Keogh
BDD practitioners have a choice to select a language that is commonly used and understood by the team to describe the behaviour of the software.
Gherkin, the ubiquitous language used by BDD practitioners to describe the behaviour of software, has been translated to over 70 languages.
In order to allow Gherkin to be written in a number of languages, the keywords such as Feature, Background, Scenario, Scenario Outline, Given, When, Then, And, But, Examples have been translated into multiple languages. Find more about the languages supported by Gherkin and keywords translated in these languages at https://cucumber.io/docs/gherkin/reference/#overview
Some of these keywords have more than one translation to improve readability and flow.
Let’s take a personal loan calculator application. The feature and scenario are described in the English language as below:
Now, let’s translate the behaviour of a personal loan calculator in Hindi (one of my native languages):
Cucumber framework, the widely used tool by BDD practitioners supports Gherkin dialects.
# language: header on the first line of a feature file tells Cucumber what spoken language to use while generating step definitions.
To automate this feature and scenario, Cucumber will generate step definitions in the selected language. In this example, it uses Hindi as shown in below code:
In this case, both Cucumber and Java support internationalization and example is automated with Selenium WebDriver, navigating to the Hindi version of the personal loan calculator and checking the behaviour of the software.
Along with Java, the Gherkin dialect (i18N) support is available in supporting programming languages such as Ruby, Python, Go, DotNet, etc.
The working example is available in GitHub Repo https://github.com/upgundecha/cucumber-gherkin-hindi