select('i18n_strings', 'i18n') ->fields('i18n', ['property', 'objectid', 'type']) ->fields('lt', ['lid', 'translation', 'language']) ->condition('i18n.type', 'field') ->isNotNull('language') ->isNotNull('translation'); $condition = $query->orConditionGroup() ->condition('property', 'widget_label') ->condition('property', 'widget_description'); $query->condition($condition); $query->leftJoin('locales_target', 'lt', 'lt.lid = i18n.lid'); return $query; } /** * {@inheritdoc} */ public function fields() { return [ 'property' => $this->t('Profile field ID.'), 'lid' => $this->t('Locales target language ID.'), 'language' => $this->t('Language for this field.'), 'translation' => $this->t('Translation of either the title or explanation.'), ]; } /** * {@inheritdoc} */ public function getIds() { $ids['property']['type'] = 'string'; $ids['language']['type'] = 'string'; $ids['lid']['type'] = 'integer'; $ids['lid']['alias'] = 'lt'; return $ids; } }