【问题标题】:Drupal 8 translatable configurationDrupal 8 可翻译配置
【发布时间】:2018-11-24 12:55:27
【问题描述】:

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

我做错了什么?

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

【问题讨论】:

    标签: configuration drupal-8 translate access-denied


    【解决方案1】:

    首先,

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

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

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


    我会建议你这 2 篇文章:


    更新 - 审查 Google 云端硬盘文件

    1. config 文件夹应该放在你的模块的 rootnotsrc;
    2. crtib_configurator.links.task.yml 使用了错误的 route_name crtib_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
    

    【讨论】:

    • 自定义权限在crtib_configurator.permissions.yml 中定义。用户被授予权限。即使是超级管理员也被拒绝访问。设置文件在src/config/install/crtib_configurator.settings.yml,架构在src/config/schema/crtib_configurator.schema.yml,其他文件在模块根目录下。我在第一篇文章中添加了crtib_configurator.links.task.yml 文件,但我仍然拒绝访问
    • 您能否在此处或您的要点中添加来自\Drupal\crtib_configurator\Form\SettingsFormcrtib_configurator.permissions.yml 的代码。
    • 另外,您可以将您的模块crtib_configurator 上传为压缩包吗?所以我可以安装它并看到错误,这可能是文件夹/文件结构中的错字。
    • 自上次 Gist 以来,我尝试更改一些名称,但没有成功。这是我的模块的最后一个版本:drive.google.com/open?id=1blRbUOZq0gF1Aj7VtTNgVcvIyKgS55le
    • 我更新了我的答案,最后贡献了解决您的问题。我在我的沙盒环境中对其进行了测试,它现在可以正常工作。我认为主要和初始错误是config 文件夹位置,请看我完整的答案。
    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 2018-08-23
    • 2016-10-21
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多