Drupal 8 可翻译配置

Drupal 8 translatable configuration

我正在尝试设置一个自定义模块,该模块提供来自 API.The API url 的内容是可配置的,但由于每种语言都不同,我必须能够翻译它。我按照 here 中的描述设置了我的模块配置(请参阅下面的要点)但是当我尝试从 /admin/config/regional/config-translation 访问翻译表单时,我得到 "Access denied"

我做错了什么?

https://gist.github.com/julien-maitan/ffd136bc104d3dbe2ee526367ffcb44c

首先,

  1. 您的自定义权限 configure crtib configurator 是否在 permissions.yml 文件中定义?您是否已将此权限授予您的用户?

  2. 您的 config/install 设置文件在哪里?在你的情况下你的 crtib_configurator.settings.yml ?错过了吗?

默认情况下,这些文件在 Drupal 8 中不是强制性的,但一旦我们想让您的配置可翻译,就需要这些文件。


我会向您推荐这两篇文章:


更新 - 审查 Google 驱动器文件

  1. config 文件夹应该放在模块的 root not in src;
  2. crtib_configurator.links.task.yml用错了route_namecrtib_configurator.api_settings_translate,应该是crtib_configurator.api_settings.

应用这 2 项更改并清除缓存,然后您将能够正确使用翻译表单。

我认为主要和初始错误是 config 文件夹位置。

目录结构:

.
+-- crtib_configurator 
|   +-- config
|   |  +-- install
|   |  |  +--  crtib_configurator.api.yml
|   |  +-- schema
|   |  |  +--  crtib_configurator.schema.yml
|   +-- src
|    |  +-- Form
|    |  |  +-- SettingsForm.php
|   +-- crtib_configurator.config_translation.yml
|   +-- crtib_configurator.info.yml
|   +-- crtib_configurator.links.menu.yml
|   +-- crtib_configurator.links.task.yml
|   +-- crtib_configurator.permissions.yml
|   +-- crtib_configurator.routing.yml

crtib_configurator.links.task.yml的内容:

crtib_configurator.api_settings:
  route_name: crtib_configurator.api_settings
  title: 'CRTIB configurator settings'
  base_route: crtib_configurator.api_settings