]> BookStack Code Mirror - bookstack/blobdiff - app/Translation/FileLoader.php
Opensearch: Fixed XML declaration when php short tags enabled
[bookstack] / app / Translation / FileLoader.php
index f0f895da55c05ca8598a5d8f9bc6eb39d13b44b0..1fec4d18bb1cd6a82d1d2d1811f22a30bb369e07 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack\Translation;
+<?php
+
+namespace BookStack\Translation;
 
 use Illuminate\Translation\FileLoader as BaseLoader;
 
@@ -6,25 +8,35 @@ class FileLoader extends BaseLoader
 {
     /**
      * Load the messages for the given locale.
+     *
      * Extends Laravel's translation FileLoader to look in multiple directories
      * so that we can load in translation overrides from the theme file if wanted.
-     * @param  string  $locale
-     * @param  string  $group
-     * @param  string|null  $namespace
+     *
+     * Note: As of using Laravel 10, this may now be redundant since Laravel's
+     * file loader supports multiple paths. This needs further testing though
+     * to confirm if Laravel works how we expect, since we specifically need
+     * the theme folder to be able to partially override core lang files.
+     *
+     * @param string      $locale
+     * @param string      $group
+     * @param string|null $namespace
+     *
      * @return array
      */
-    public function load($locale, $group, $namespace = null)
+    public function load($locale, $group, $namespace = null): array
     {
         if ($group === '*' && $namespace === '*') {
             return $this->loadJsonPaths($locale);
         }
 
         if (is_null($namespace) || $namespace === '*') {
-            $themeTranslations = $this->loadPath(theme_path('lang'), $locale, $group);
-            $originalTranslations =  $this->loadPath($this->path, $locale, $group);
+            $themePath = theme_path('lang');
+            $themeTranslations = $themePath ? $this->loadPaths([$themePath], $locale, $group) : [];
+            $originalTranslations = $this->loadPaths($this->paths, $locale, $group);
+
             return array_merge($originalTranslations, $themeTranslations);
         }
 
         return $this->loadNamespaced($locale, $group, $namespace);
     }
-}
\ No newline at end of file
+}