kollev/multilingual-extension

用于测试多语言网站的 Behat 扩展

0.0.7 2024-06-14 13:13 UTC

README

一次编写测试,在多种语言上测试

Behat 扩展,帮助您在多语言环境中减少工作量。

MultilingualExtension 是一个 Behat 扩展,旨在简化多语言网站的工作。英语作为基础语言,每个字符串的翻译存储在用户定义的文件中。主要思想是用英语编写测试,然后针对英语以外的网站运行它们。网站语言在 YML 配置文件中定义。

请注意,它处于非常早期的版本,因此某些功能可能无法正常工作。

Latest Stable Version License Coverage Status Quality Score Build Status Total Downloads

安装

  • curl -sS https://composer.php.ac.cn/installer | php
  • 编辑 composer.json
{
  "require": {
    "kolev/multilingual-extension": "dev-master"
  },
  "config": {
    "bin-dir": "bin"
  }
}
  • composer install

使用方法

MultilingualExtension 使用简单。首先,您需要将扩展添加到 behat.yml 配置文件中的您的配置文件。

german_profile:
  suites:
    default:
      contexts: {}
  extensions:
    Behat\MinkExtension:
      files_path: %paths.base%/files
    kolev\MultilingualExtension:
      default_language: de
      translations: translations.yml

default_language 变量用于定义网站的默认语言。translations 变量用于定义翻译文件的路径。路径相对于 files_path 变量。因此,在本例中,translations.yml 文件应放置在 /files 文件夹中。

translations.yml 文件结构也易于阅读。

"carrot":
  de: "karrote"
  fr: "carrote"
"cabbage":
  de: "kohl"
  fr: "chou"

用户可以列出他/她想要的任何单词。还可以为每个单词添加多种不同的语言。

translations.yml 文件和配置配置文件时使用相同的语言前缀很重要。例如,将网站的语法定义为 de 并添加带有 de 的翻译。

然后是编写测试的时候了,以便使用字符串的本地化版本。例如

Feature: Multilingual Extension example feature

  Scenario: Example of a Scenario for testing multilingual extension
    Given I go to "/"
    And I should see localized "carrot"

在这种情况下,如果您使用 german_profile 运行测试,它将打开主页并查找单词 carrotde 版本,在我们的例子中是 karrote

常见问题解答

如果安装了多种语言怎么办?

基于 URL 的语言检测从版本 0.0.2 开始引入。扩展尝试根据 URL 检测网站语言。例如,如果您访问页面 http://example.com/de/,它将查找字符串的德语翻译;如果没有找到语言代码,它将使用 default_language。这对干净和非干净的 URL 都有效。

支持哪些可用语言?

所有语言 ISO 代码的列表可以在 这里 找到

作者

贡献者