original_string: public function add()
      {
          $this->loadModel('Locale.Languages');
          $language = $this->Languages->newEntity();
          $languages = LocaleToolbox::languagesList(true);
          $icons = LocaleToolbox::flagsList();
  
          if (!empty($this->request->data['code'])) {
              $info = LocaleToolbox::info($this->request->data['code']);
              $language = $this->Languages->patchEntity($language, [
                  'code' => normalizeLocale($this->request->data['code']),
                  'name' => $info['language'],
                  'direction' => $info['direction'],
                  'status' => (isset($this->request->data['status']) ? $this->request->data['status'] : false),
                  'icon' => (!empty($this->request->data['icon']) ? $this->request->data['icon'] : null)
              ]);
  
              if ($this->Languages->save($language)) {
                  $this->Flash->success(__d('locale', 'Language was successfully registered!'));
                  $this->redirect(['plugin' => 'Locale', 'controller' => 'manage', 'action' => 'index']);
              } else {
                  $this->Flash->danger(__d('locale', 'Language could not be registered, please check your information'));
              }
          }
  
          $this->title(__d('locale', 'Register New Language'));
          $this->set(compact('language', 'languages', 'icons'));
          $this->Breadcrumb
              ->push('/admin/locale')
              ->push(__d('locale', 'Add new language'), '');
      }
code: public function add()
      {
          $this->loadModel('Locale.Languages');
          $language = $this->Languages->newEntity();
          $languages = LocaleToolbox::languagesList(true);
          $icons = LocaleToolbox::flagsList();
  
          if (!empty($this->request->data['code'])) {
              $info = LocaleToolbox::info($this->request->data['code']);
              $language = $this->Languages->patchEntity($language, [
                  'code' => normalizeLocale($this->request->data['code']),
                  'name' => $info['language'],
                  'direction' => $info['direction'],
                  'status' => (isset($this->request->data['status']) ? $this->request->data['status'] : false),
                  'icon' => (!empty($this->request->data['icon']) ? $this->request->data['icon'] : null)
              ]);
  
              if ($this->Languages->save($language)) {
                  $this->Flash->success(__d('locale', 'Language was successfully registered!'));
                  $this->redirect(['plugin' => 'Locale', 'controller' => 'manage', 'action' => 'index']);
              } else {
                  $this->Flash->danger(__d('locale', 'Language could not be registered, please check your information'));
              }
          }
  
          $this->title(__d('locale', 'Register New Language'));
          $this->set(compact('language', 'languages', 'icons'));
          $this->Breadcrumb
              ->push('/admin/locale')
              ->push(__d('locale', 'Add new language'), '');
      }
code_tokens: public function add ( ) { $ this -> loadModel ( 'Locale.Languages' ) ; $ language = $ this -> Languages -> newEntity ( ) ; $ languages = LocaleToolbox :: languagesList ( true ) ; $ icons = LocaleToolbox :: flagsList ( ) ; if ( ! empty ( $ this -> request -> data [ 'code' ] ) ) { $ info = LocaleToolbox :: info ( $ this -> request -> data [ 'code' ] ) ; $ language = $ this -> Languages -> patchEntity ( $ language , [ 'code' => normalizeLocale ( $ this -> request -> data [ 'code' ] ) , 'name' => $ info [ 'language' ] , 'direction' => $ info [ 'direction' ] , 'status' => ( isset ( $ this -> request -> data [ 'status' ] ) ? $ this -> request -> data [ 'status' ] : false ) , 'icon' => ( ! empty ( $ this -> request -> data [ 'icon' ] ) ? $ this -> request -> data [ 'icon' ] : null ) ] ) ; if ( $ this -> Languages -> save ( $ language ) ) { $ this -> Flash -> success ( __d ( 'locale' , 'Language was successfully registered!' ) ) ; $ this -> redirect ( [ 'plugin' => 'Locale' , 'controller' => 'manage' , 'action' => 'index' ] ) ; } else { $ this -> Flash -> danger ( __d ( 'locale' , 'Language could not be registered, please check your information' ) ) ; } } $ this -> title ( __d ( 'locale' , 'Register New Language' ) ) ; $ this -> set ( compact ( 'language' , 'languages' , 'icons' ) ) ; $ this -> Breadcrumb -> push ( '/admin/locale' ) -> push ( __d ( 'locale' , 'Add new language' ) , '' ) ; }
docstring: Registers a new language in the system.
  
  @return void
docstring_tokens: Registers a new language in the system .