openeuropa/oe_multilingual

为OpenEuropa项目提供多语言功能。

安装量: 108 379

依赖者: 10

建议者: 0

安全: 0

星标: 3

关注者: 20

分支: 2

开放问题: 6

类型:drupal-module


README

Build Status

OpenEuropa多语言模块为OpenEuropa项目提供默认的多语言功能,例如:

  • 启用所有24种官方欧盟语言
  • OpenEuropa主题网站页眉区域提供可选的语言切换块
  • 确保管理界面始终设置为英语
  • 允许英语被翻译,以便在必要时修复或改进默认的英文副本
  • 配置网站以遵循使用路径后缀的IPG语言协商规则。(可选)

目录

安装

建议通过Composer安装OpenEuropa多语言模块。

composer require openeuropa/oe_multilingual

启用模块

为了在项目中启用该模块,请运行

./vendor/bin/drush en oe_multilingual

开发

OpenEuropa多语言项目包含所有必要的代码和工具,以实现有效的开发过程,例如:

  • 所有PHP开发依赖项(包括Drupal核心)由composer.json要求
  • 通过与Task Runner项目的集成,可以轻松处理项目设置和安装。
  • 所有系统要求都通过Docker Compose容器化

项目设置

通过运行以下命令下载所有必需的PHP代码

composer install

这将构建一个完全功能的Drupal测试站点,位于./build目录中,可用于开发和展示模块的功能。

在设置和安装网站之前,请确保通过将runner.yml.dist复制到./runner.yml并覆盖相关属性来自定义默认配置值。

这将也会

  • ./build/modules/custom/oe_multilingual中创建模块的符号链接,使其可用于测试站点
  • 使用./runner.yml.dist中的值设置Drush和Drupal的设置
  • 使用./runner.yml.dist中的值设置PHPUnit和Behat配置文件

请注意:项目文件和目录通过使用OpenEuropa Task Runner的Drupal项目符号链接命令在测试站点内部进行符号链接。

如果您在项目根目录中添加了新的文件或目录,您需要重新运行drupal:site-setup以确保它们被正确地符号链接。

如果您不想重新运行完整的站点设置,您可以简单地运行

$ ./vendor/bin/run drupal:symlink-project

设置完成后,通过运行以下命令安装站点

./vendor/bin/run drupal:site-install

这将

  • 安装测试站点
  • 启用OpenEuropa多语言模块
  • 启用OpenEuropa多语言演示模块和配置开发模块
  • 启用并设置OpenEuropa主题为默认

使用Docker Compose

或者,您可以使用提供的配置使用 DockerDocker Compose 构建一个开发站点。

Docker提供了必要的服务和工具,如Web服务器和数据库服务器,以运行站点,无论您的本地主机配置如何。

需求

配置

默认情况下,Docker Compose读取两个文件,一个是 docker-compose.yml 文件,另一个是可选的 docker-compose.override.yml 文件。按照惯例,docker-compose.yml 文件包含您的基本配置,并且默认提供。重写文件,如其名称所暗示,可以包含现有服务或全新服务的配置重写。如果服务在两个文件中都定义了,Docker Compose将合并配置。

有关Docker Compose扩展机制的更多信息,请参阅 官方Docker Compose文档

用法

首先,运行

docker-compose up

建议不要将 docker-compose 作为守护进程运行,这样您可以在完成工作后快速将其关闭(CTRL+C)。但是,如果您想将其作为守护进程运行,则需要添加标志 -d

docker-compose up -d

然后

docker-compose exec web composer install
docker-compose exec web ./vendor/bin/run drupal:site-install

使用默认配置,开发站点文件应位于 build 目录中,开发站点应位于: http://127.0.0.1:8080/build

运行测试

运行grumphp检查

docker-compose exec web ./vendor/bin/grumphp run

运行phpunit测试

docker-compose exec web ./vendor/bin/phpunit

运行behat测试

docker-compose exec web ./vendor/bin/behat

逐步调试

要从命令行启用逐步调试,请将任何值传递给容器的 XDEBUG_SESSION 环境变量

docker-compose exec -e XDEBUG_SESSION=1 web <your command>

请注意,从XDebug 3开始,如果设置了该变量但您的客户端没有监听调试连接,将在控制台输出连接错误消息。该错误消息将导致PHPUnit测试出现假阴性。

要从浏览器启动逐步调试,请使用浏览器扩展或书签工具(如https://www.jetbrains.com/phpstorm/marklets/生成的)设置正确的cookie。

禁用Drupal 8缓存

手动禁用Drupal 8缓存是一个费力的过程,这在此处有很好的描述。

或者,您可以使用以下Drupal Console命令来禁用/启用Drupal 8缓存

./vendor/bin/drupal site:mode dev  # Disable all caches.
./vendor/bin/drupal site:mode prod # Enable all caches.

注意:要完全禁用Twig缓存,需要以下附加手动步骤

  1. 打开 ./build/sites/default/services.yml
  2. twig.config: 属性中将 cache: false 设置为。例如:
parameters:
 twig.config:
   cache: false
  1. 重建Drupal缓存:./vendor/bin/drush cr

这是由于以下 Drupal Console问题

演示模块

OpenEuropa多语言模块附带一个演示模块,它提供了展示模块最重要的功能所需的所有必要的配置和代码。

演示模块包括一个可翻译的内容类型,具有自动URL路径生成。

要安装OpenEuropa多语言演示模块,请遵循 说明 或通过运行以下命令通过 Drush 启用它:

./vendor/bin/drush en oe_multilingual_demo -y

已知问题

启用字符串英文翻译

启用英文字符串翻译在更改可翻译配置实体时可能会产生意外的后果。如果这些字符串在区域设置中可用,则更改将保存为EN翻译。

启用URL后缀

这是可选的,只有在您的网站需要遵循语言协商的 IPG 规则 时才应执行。

为了使用此功能,您需要通过以下 说明 或通过运行 Drush 来启用 OpenEuropa 多语言 URL 后缀模块:

./vendor/bin/drush en oe_multilingual_url_suffix -y

启用模块后

  1. 转到 admin/config/regional/language/detection
  2. 界面文本语言检测内容语言检测 中禁用 URL 方法;
  3. 界面文本语言检测内容语言检测 中启用 URL 后缀 方法;
  4. 确保 URL 后缀 方法位于列表顶部,但在 管理页面 协商方法之后,如果您使用它
  5. 保存新顺序
  6. 如有必要,通过单击 配置 配置 URL 后缀 方法
  7. 重建缓存

URL 后缀使用

  • 强烈建议避免在路径自动模式/别名中使用语言后缀分隔符(_),因为这可能会导致意外的行为。

  • Drush 用户:login(uli) 实现 currently 不与 oe_multilingual_url_suffix 模块一起工作。需要以下 补丁 才能正确生成 URL。

贡献

请阅读 完整文档 了解我们的行为准则以及向我们提交 pull 请求的流程。

版本控制

我们使用 SemVer 进行版本控制。有关可用版本,请参阅此存储库的 标签