3 namespace Drupal\views\Plugin\views\field;
5 use Drupal\Core\Form\FormStateInterface;
6 use Drupal\views\ResultRow;
9 * Defines a field handler to translate a language into its readable form.
11 * @ingroup views_field_handlers
13 * @ViewsField("language")
15 class LanguageField extends FieldPluginBase {
20 protected function defineOptions() {
21 $options = parent::defineOptions();
22 $options['native_language'] = ['default' => FALSE];
30 public function buildOptionsForm(&$form, FormStateInterface $form_state) {
31 parent::buildOptionsForm($form, $form_state);
32 $form['native_language'] = [
33 '#title' => $this->t('Display in native language'),
34 '#type' => 'checkbox',
35 '#default_value' => $this->options['native_language'],
42 public function render(ResultRow $values) {
43 $value = $this->getValue($values);
44 $languages = $this->options['native_language'] ? \Drupal::languageManager()->getNativeLanguages() : \Drupal::languageManager()->getLanguages();
45 return isset($languages[$value]) ? $languages[$value]->getName() : '';