如何以编程方式查询 drupal 9 中块的翻译内容
How to programmatically query the translated content of a block in drupal9
我创建了一个区块,默认语言是英文,翻译语言是中文。现在我在我的代码中查询这个块的内容:
$block = \Drupal::entityTypeManager()->getStorage('block_content')
->loadByProperties([
'info' => $info,
'langcode' => 'zh-hant'
]);
但是我得到的还是英文,我做错了什么?
您必须加载 block_content
个没有 langcode 条件的实体,然后通过 getTranslation()
:
获得您需要的语言的翻译
$blocks = \Drupal::entityTypeManager()->getStorage('block_content')
->loadByProperties([
'info' => $info
]);
$translated_blocks = array_map(function ($block) {
return $block->getTranslation('zh-hant');
}, $blocks);
// do somthing with $translated_blocks
我创建了一个区块,默认语言是英文,翻译语言是中文。现在我在我的代码中查询这个块的内容:
$block = \Drupal::entityTypeManager()->getStorage('block_content')
->loadByProperties([
'info' => $info,
'langcode' => 'zh-hant'
]);
但是我得到的还是英文,我做错了什么?
您必须加载 block_content
个没有 langcode 条件的实体,然后通过 getTranslation()
:
$blocks = \Drupal::entityTypeManager()->getStorage('block_content')
->loadByProperties([
'info' => $info
]);
$translated_blocks = array_map(function ($block) {
return $block->getTranslation('zh-hant');
}, $blocks);
// do somthing with $translated_blocks