3 namespace Drupal\language\Form;
5 use Drupal\Core\Form\FormStateInterface;
6 use Drupal\Core\Language\LanguageInterface;
7 use Drupal\Core\Form\ConfigFormBase;
10 * Configure the selected language negotiation method for this site.
14 class NegotiationSelectedForm extends ConfigFormBase {
19 public function getFormId() {
20 return 'language_negotiation_configure_selected_form';
26 protected function getEditableConfigNames() {
27 return ['language.negotiation'];
33 public function buildForm(array $form, FormStateInterface $form_state) {
34 $config = $this->config('language.negotiation');
35 $form['selected_langcode'] = [
36 '#type' => 'language_select',
37 '#title' => $this->t('Language'),
38 '#languages' => LanguageInterface::STATE_CONFIGURABLE | LanguageInterface::STATE_SITE_DEFAULT,
39 '#default_value' => $config->get('selected_langcode'),
42 return parent::buildForm($form, $form_state);
48 public function submitForm(array &$form, FormStateInterface $form_state) {
49 $this->config('language.negotiation')
50 ->set('selected_langcode', $form_state->getValue('selected_langcode'))
53 parent::submitForm($form, $form_state);