'cat', 'title' => 'Cat', 'lang' => 'English'], ['name' => 'cat', 'title' => 'Chat', 'lang' => 'French'], ['name' => 'cat', 'title' => 'Gato', 'lang' => 'Spanish'], ['name' => 'dog', 'title' => 'Dog', 'lang' => 'English'], ['name' => 'dog', 'title' => 'Chien', 'lang' => 'French'], ['name' => 'monkey', 'title' => 'Monkey', 'lang' => 'English'], ]; /** * {@inheritdoc} */ public function fields() { return [ 'name' => $this->t('Unique name'), 'title' => $this->t('Title'), 'lang' => $this->t('Language'), ]; } /** * {@inheritdoc} */ public function __toString() { return ''; } /** * {@inheritdoc} */ public function getIds() { $ids['name']['type'] = 'string'; if (!$this->configuration['default_lang']) { $ids['lang']['type'] = 'string'; } return $ids; } /** * {@inheritdoc} */ protected function initializeIterator() { $data = []; // Keep the rows with the right languages. $want_default = $this->configuration['default_lang']; foreach ($this->import as $row) { $is_english = $row['lang'] == 'English'; if ($want_default == $is_english) { $data[] = $row; } } return new \ArrayIterator($data); } }