public function importTranslations()
 {
     $counter = 0;
     foreach ($this->files->directories($this->app->langPath()) as $langPath) {
         $locale = basename($langPath);
         foreach ($this->files->allfiles($langPath) as $file) {
             $info = pathinfo($file);
             $group = $info['filename'];
             if (in_array($group, $this->config['exclude_groups'])) {
                 continue;
             }
             if ($langPath != $info['dirname']) {
                 $group = substr(str_replace($langPath, '', $info['dirname']) . '/' . $info['filename'], 1);
             }
             $g = Group::firstOrNew(array('label' => $group));
             $g->save();
             $l = Locale::firstOrNew(array('label' => $locale));
             $l->save();
             $translations = \Lang::getLoader()->load($locale, $group);
             if ($translations && is_array($translations)) {
                 foreach (array_dot($translations) as $key => $value) {
                     // process only string values
                     if (is_array($value)) {
                         continue;
                     }
                     $value = (string) $value;
                     $translation = Translation::firstOrNew(['locale_id' => $l->id, 'key' => $key]);
                     $g->translations()->save($translation);
                     // Check if the database is different then the files
                     $newStatus = $translation->value === $value ? Translation::STATUS_SAVED : Translation::STATUS_CHANGED;
                     if ($newStatus !== (int) $translation->status) {
                         $translation->status = $newStatus;
                     }
                     $translation->value = $value;
                     $translation->save();
                     $counter++;
                 }
             }
         }
     }
     return $counter;
 }