web-dev-qa-db-ja.com

バンドルの完全な定義はどこで取得できますか?

エンティティタイプの定義を取得できます...

$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);
5
4k4