我正在使用drupal 8
用gatsby
和graphql
构建一个无头页面。
如何查询页面翻译?
query MyQuery {
allNodePage {
nodes {
body {
value
}
}
}
}
我想用一种特定的语言来获得这个allNodePage.nodes.body.value
。
编辑: 这是graphiql allNodePage实体。
编辑_1:
根据this issue,您只能通过修改/fr/jsonapi/node/page
中的api主机路由(drupal 8
)来查询翻译。
但是在gatsby-source-drupal
插件中,api主机路由在运行时不可更改。
Edit_2:
我尝试翻译页面节点。默认语言是英语。我想请求drupal中存在的德语翻译。
答案 0 :(得分:1)
经过一些试验,我发现它还不能与Drupal JSON API一起使用,但是我让它与Drupal GraphQL模块一起使用。可以与Gatsby和gatsby-source-graphql一起使用,而不是与gatsby-source-drupal一起使用。查询如下所示:
{
nodeQuery(
filter: {
conditions:[
{operator: IN, field: "type", value: ["my_node_type"]},
{operator: EQUAL, field: "langcode", value: "de"},
]
}
) {
entities {
...on NodeMyNodeType {
entityTranslation(language: DE) {
entityLabel
}
}
}
}
}
答案 1 :(得分:0)
如果您想按allNodePage
过滤langcode
,可以这样操作:
query MyQuery {
allNodePage(filter: {langcode: {eq: "fr_FR"}}) {
nodes {
body {
value
}
}
}
}
当然,您可以使用变量代替“ fr_FR”,而不是对其进行硬编码
query MyQuery($lang: String!) {
allNodePage(filter: {link: {eq: $lang:}}) {
nodes {
body {
value
}
}
}
}