mirror of
https://github.com/middleman/middleman.git
synced 2022-11-09 12:20:27 -05:00
b928d245b2
* Use i18n fallbacks when looking up localized paths In #853, the usage of i18n-fallbacks was introduced. For undocumented reasons, the fallbacks are ignored for localized paths, though. This commit removes this limitation, and adds a test to make sure, that it works as desired. * Extending fixture data to fix tests With the introduction of i18n fallbacks for localized paths, the tests which set the default locale to Spanish failed, since the Spanish path mappings were now used for the English locale as well. So the expected paths were now incorrect. This change adds the expected paths to the English i18n file, so that the tests pass again.
256 lines
7.9 KiB
Gherkin
256 lines
7.9 KiB
Gherkin
Feature: i18n Preview
|
|
In order to preview localized html
|
|
|
|
Scenario: Running localize with the default config
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
When I go to "/"
|
|
Then I should see "Howdy"
|
|
When I go to "/hello.html"
|
|
Then I should see "Hello World"
|
|
When I go to "/morning.html"
|
|
Then I should see "Good morning"
|
|
When I go to "/one.html"
|
|
Then I should see "Only one"
|
|
When I go to "/defaults_en/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/en/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/en/morning.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/defaults_es/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/index.html"
|
|
Then I should see "Como Esta?"
|
|
When I go to "/es/hola.html"
|
|
Then I should see "Hola World"
|
|
When I go to "/es/manana.html"
|
|
Then I should see "Buenos días"
|
|
When I go to "/es/una.html"
|
|
Then I should see "Solamente una"
|
|
When I go to "/terms-and-conditions.html"
|
|
Then I should see "Terms & Conditions"
|
|
When I go to "/es/terms-and-conditions.html"
|
|
Then I should see "Condiciones Generales"
|
|
|
|
Scenario: A template changes i18n during preview
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
And the file "locales/en.yml" has the contents
|
|
"""
|
|
---
|
|
en:
|
|
greetings: "Howdy"
|
|
hi: "Hello"
|
|
"""
|
|
When I go to "/"
|
|
Then I should see "Howdy"
|
|
When I go to "/hello.html"
|
|
Then I should see "Hello World"
|
|
When the file "locales/en.yml" has the contents
|
|
"""
|
|
---
|
|
en:
|
|
greetings: "How You Doin"
|
|
hi: "Sup"
|
|
"""
|
|
When I go to "/"
|
|
Then I should see "How You Doin"
|
|
When I go to "/hello.html"
|
|
Then I should see "Sup World"
|
|
|
|
Scenario: Running localize with the alt path config
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n, path: "/lang_:locale/"
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
When I go to "/"
|
|
Then I should see "Howdy"
|
|
When I go to "/hello.html"
|
|
Then I should see "Hello World"
|
|
When I go to "/lang_en/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/lang_es/index.html"
|
|
Then I should see "Como Esta?"
|
|
When I go to "/lang_es/hola.html"
|
|
Then I should see "Hola World"
|
|
|
|
|
|
Scenario: Running localize with the alt root config
|
|
Given a fixture app "i18n-alt-root-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n, templates_dir: "lang_data"
|
|
"""
|
|
Given the Server is running at "i18n-alt-root-app"
|
|
When I go to "/"
|
|
Then I should see "Howdy"
|
|
When I go to "/hello.html"
|
|
Then I should see "Hello World"
|
|
When I go to "/en/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/index.html"
|
|
Then I should see "Como Esta?"
|
|
When I go to "/es/hola.html"
|
|
Then I should see "Hola World"
|
|
|
|
Scenario: Running localize with the lang map config
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n, lang_map: { en: :english, es: :spanish }
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
When I go to "/"
|
|
Then I should see "Howdy"
|
|
When I go to "/hello.html"
|
|
Then I should see "Hello World"
|
|
When I go to "/english/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/spanish/index.html"
|
|
Then I should see "Como Esta?"
|
|
When I go to "/spanish/hola.html"
|
|
Then I should see "Hola World"
|
|
|
|
Scenario: Running localize with a non-English mount config
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n, mount_at_root: :es
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
When I go to "/en/index.html"
|
|
Then I should see "Howdy"
|
|
When I go to "/en/hello.html"
|
|
Then I should see "Hello World"
|
|
When I go to "/"
|
|
Then I should see "Como Esta?"
|
|
When I go to "/hola.html"
|
|
Then I should see "Hola World"
|
|
When I go to "/manana.html"
|
|
Then I should see "Buenos días"
|
|
When I go to "/hello.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/en/morning.html"
|
|
Then I should see "Good morning"
|
|
When I go to "/es/manana.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/hola.html"
|
|
Then I should see "File Not Found"
|
|
|
|
Scenario: Running localize with a non-English lang subset
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n, langs: :es
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
When I go to "/en/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/en/hello.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/"
|
|
Then I should see "Como Esta?"
|
|
When I go to "/hola.html"
|
|
Then I should see "Hola World"
|
|
When I go to "/hello.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/hola.html"
|
|
Then I should see "File Not Found"
|
|
|
|
|
|
Scenario: Running localize with the no mount config
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n, mount_at_root: false
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
When I go to "/en/index.html"
|
|
Then I should see "Howdy"
|
|
When I go to "/en/hello.html"
|
|
Then I should see "Hello World"
|
|
When I go to "/"
|
|
Then I should see "File Not Found"
|
|
When I go to "/hello.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/index.html"
|
|
Then I should see "Como Esta?"
|
|
When I go to "/es/hola.html"
|
|
Then I should see "Hola World"
|
|
|
|
Scenario: Running localize with the subset config
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n, langs: [:en]
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
When I go to "/"
|
|
Then I should see "Howdy"
|
|
When I go to "/hello.html"
|
|
Then I should see "Hello World"
|
|
When I go to "/en/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/index.html"
|
|
Then I should see "File Not Found"
|
|
When I go to "/es/hola.html"
|
|
Then I should see "File Not Found"
|
|
|
|
Scenario: Running localize with relative_assets
|
|
Given a fixture app "i18n-test-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n
|
|
activate :relative_assets
|
|
"""
|
|
Given the Server is running at "i18n-test-app"
|
|
When I go to "/"
|
|
Then I should see '"stylesheets/site.css"'
|
|
When I go to "/hello.html"
|
|
Then I should see '"stylesheets/site.css"'
|
|
When I go to "/es/index.html"
|
|
Then I should see '"../stylesheets/site.css"'
|
|
When I go to "/es/hola.html"
|
|
Then I should see '"../stylesheets/site.css"'
|
|
|
|
Scenario: Missing translations fall back to the default locale
|
|
Given a fixture app "i18n-default-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n, mount_at_root: :es
|
|
"""
|
|
Given the Server is running at "i18n-default-app"
|
|
When I go to "/en/"
|
|
Then I should see "Default locale: es"
|
|
Then I should see "Current locale: en"
|
|
Then I should see "Buenos días"
|
|
Then I should see "Howdy"
|
|
|
|
Scenario: Nested i18n yaml
|
|
Given a fixture app "i18n-nested-app"
|
|
And a file named "config.rb" with:
|
|
"""
|
|
activate :i18n
|
|
"""
|
|
Given the Server is running at "i18n-nested-app"
|
|
When I go to "/"
|
|
Then I should see "Howdy"
|
|
Then I should see "More"
|
|
When I go to "/es/"
|
|
Then I should see "Como Esta?"
|
|
Then I should see "Mucho"
|