コード例 #1
0
 /**
  * Execute the command.
  *
  * @return void
  */
 public function handle()
 {
     /**
      * Lets get all available languages
      */
     if (!$this->argument('language')) {
         /**
          * This will generate to all languages
          */
         switch ($this->option('status')) {
             case 'active':
                 $lang = Languages::whereStatus(1)->get()->toArray();
                 break;
             case 'inactive':
                 $lang = Languages::whereStatus(0)->get()->toArray();
                 break;
             case 'all':
                 $lang = Languages::all()->toArray();
                 break;
         }
         $bar = $this->output->createProgressBar(count($lang));
         foreach ($lang as $key => $language) {
             DBTranslator::generate($language['iso']);
             $bar->advance();
         }
         $bar->finish();
     } elseif ($this->argument('language')) {
         DBTranslator::generate($this->argument('language'));
     }
     $this->info('Completed!');
 }
コード例 #2
0
 public function scopeLanguage($query, $language_id)
 {
     if (!is_integer($language_id)) {
         /**
          * Lets find the language id for this 
          */
         $language_id = Languages::whereIso($language_id)->first()->id;
     }
     return $query->whereLanguage_id($language_id);
 }
コード例 #3
0
 public static function generate($language = false)
 {
     $config = config('db-translator');
     /**
      * First we get the list of languages and iterate for each one of them
      * to get the associated translations
      */
     if ($language) {
         if (is_integer($language)) {
             $languages[] = Languages::find($language);
         } else {
             $languages = Languages::whereIso($language)->get();
         }
     } else {
         $languages = Languages::whereStatus(1)->get();
     }
     /**
      * Get the list of available variables in the database
      */
     $variables = Intl::all();
     $arr = [];
     foreach ($languages as $language) {
         /**
          * Lets generate a list of variables per language and
          * all translations associated
          */
         foreach ($variables as $variable) {
             /**
              * Generate per group
              */
             $trans = Translated::VarLang($variable->id, $language->id)->first()['translation'];
             $translation = $trans ? $trans : $variable->text;
             $arr[$language->iso][$variable->group][] = [md5($variable->text) . sha1($variable->text) => $translation];
         }
     }
     foreach ($arr as $language => $values) {
         \File::deleteDirectory(base_path('resources/lang/vendor/dbtranslator/' . $language), true);
         foreach ($values as $group => $trans) {
             $file = "<?php\nreturn [\r\n";
             foreach ($trans as $hash => $translated) {
                 $save_value = str_replace('"', '\\"', array_values($translated)[0]);
                 $file .= "    \"" . array_keys($translated)[0] . "\" => \"" . $save_value . "\",\r\n";
             }
             $file .= "];";
             \Storage::disk($config['storage_driver'])->put($language . '/' . $group . '.php', $file);
         }
     }
     return true;
 }
コード例 #4
0
function language_name()
{
    $lang = Languages::whereIso(Lang::getLocale())->firstOrFail();
    return $lang->name;
}