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.
12 class NegotiationSelectedForm extends ConfigFormBase {
17 public function getFormId() {
18 return 'language_negotiation_configure_selected_form';
24 protected function getEditableConfigNames() {
25 return ['language.negotiation'];
31 public function buildForm(array $form, FormStateInterface $form_state) {
32 $config = $this->config('language.negotiation');
33 $form['selected_langcode'] = [
34 '#type' => 'language_select',
35 '#title' => $this->t('Language'),
36 '#languages' => LanguageInterface::STATE_CONFIGURABLE | LanguageInterface::STATE_SITE_DEFAULT,
37 '#default_value' => $config->get('selected_langcode'),
40 return parent::buildForm($form, $form_state);
46 public function submitForm(array &$form, FormStateInterface $form_state) {
47 $this->config('language.negotiation')
48 ->set('selected_langcode', $form_state->getValue('selected_langcode'))
51 parent::submitForm($form, $form_state);