エンティティタイプの定義を取得できます...
$entityType = \Drupal::entityTypeManager()
->getDefinition($this->entityType);
そして私は自分自身をフェッチすることができますsome=バンドル固有の情報...
if ($bundleName !== null) {
$bundleConfig = $entityType->getBundleConfigDependency($bundleName);
$config = HelperConfiguration::instance($bundleConfig["name"]);
$configValues = $config->getConfigValue();
}
$ configValuesには、description、preview_mode、display_submitted、さらにはlangcodeなどのプロパティが含まれますが、バンドルの翻訳可能性ステータスを見つける方法はわかりません。
オン /admin/config/regional/content-language
エンティティの粗さから特定のフィールドまで、大量の翻訳を素晴らしく操作できます。
したがって、EntityTypeInterface
(およびon FieldDefinitionInterface
)にisTranslatable()メソッドがある場合、バンドルはどこに相当しますか?バンドルの残りのメタデータはどこに隠されていますか?
バンドルの言語固有の設定を取得するには、 ContentLanguageSettings :: loadByEntityTypeBundle を使用します。
バンドルの翻訳可能性については、以下を使用します。
$settings = ContentLanguageSettings::loadByEntityTypeBundle($entity_type_id, $bundle_name);
$isBundleTranslatable = $settings->getThirdPartySetting("content_translation", "enabled");
ContentTranslationManager を使用することもできます:
/** @var ContentTranslationManager $contentTranslationManager */
$contentTranslationManager = \Drupal::service('content_translation.manager');
$isBundleTranslatable = $contentTranslationManager->isEnabled($entity_type_id, $bundle_name);