addTranslations() public method

public addTranslations ( $locale, $file, $module = null )
Ejemplo n.º 1
0
 /**
  * Load language pack resources from the given directory.
  *
  * @param string $directory
  */
 public function loadLanguagePackFrom($directory)
 {
     $name = $title = basename($directory);
     if (file_exists($manifest = $directory . '/composer.json')) {
         $json = json_decode(file_get_contents($manifest), true);
         if (empty($json)) {
             throw new RuntimeException("Error parsing composer.json in {$name}: " . json_last_error_msg());
         }
         $locale = array_get($json, 'extra.flarum-locale.code');
         $title = array_get($json, 'extra.flarum-locale.title', $title);
     }
     if (!isset($locale)) {
         throw new RuntimeException("Language pack {$name} must define \"extra.flarum-locale.code\" in composer.json.");
     }
     $this->locales->addLocale($locale, $title);
     if (!is_dir($localeDir = $directory . '/locale')) {
         throw new RuntimeException("Language pack {$name} must have a \"locale\" subdirectory.");
     }
     if (file_exists($file = $localeDir . '/config.js')) {
         $this->locales->addJsFile($locale, $file);
     }
     if (file_exists($file = $localeDir . '/config.css')) {
         $this->locales->addCssFile($locale, $file);
     }
     foreach (new DirectoryIterator($localeDir) as $file) {
         if ($file->isFile() && in_array($file->getExtension(), ['yml', 'yaml'])) {
             $this->locales->addTranslations($locale, $file->getPathname());
         }
     }
 }
Ejemplo n.º 2
0
 public function registerLocale(LocaleManager $manager, $locale, $title)
 {
     $path = __DIR__ . '/../../locale/' . $locale;
     $manager->addLocale($locale, $title);
     $manager->addTranslations($locale, $path . '.yml');
     $manager->addConfig($locale, $path . '.php');
     $manager->addJsFile($locale, $path . '.js');
 }
Ejemplo n.º 3
0
 public function addTranslations($locale, $file)
 {
     $this->manager->addTranslations($locale, $file);
 }