| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace BookStack\Translation; | 
					
						
							| 
									
										
										
										
											2019-10-26 19:12:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | use Illuminate\Translation\FileLoader as BaseLoader; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FileLoader extends BaseLoader | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Load the messages for the given locale. | 
					
						
							| 
									
										
										
										
											2024-03-16 23:26:34 +08:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2019-10-26 19:12:35 +08:00
										 |  |  |      * Extends Laravel's translation FileLoader to look in multiple directories | 
					
						
							|  |  |  |      * so that we can load in translation overrides from the theme file if wanted. | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2024-03-16 23:26:34 +08:00
										 |  |  |      * 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. | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * @param string      $locale | 
					
						
							|  |  |  |      * @param string      $group | 
					
						
							|  |  |  |      * @param string|null $namespace | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2019-10-26 19:12:35 +08:00
										 |  |  |      * @return array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2024-03-16 23:26:34 +08:00
										 |  |  |     public function load($locale, $group, $namespace = null): array | 
					
						
							| 
									
										
										
										
											2019-10-26 19:12:35 +08:00
										 |  |  |     { | 
					
						
							|  |  |  |         if ($group === '*' && $namespace === '*') { | 
					
						
							|  |  |  |             return $this->loadJsonPaths($locale); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (is_null($namespace) || $namespace === '*') { | 
					
						
							| 
									
										
										
										
											2021-07-03 18:53:46 +08:00
										 |  |  |             $themePath = theme_path('lang'); | 
					
						
							| 
									
										
										
										
											2024-03-16 23:26:34 +08:00
										 |  |  |             $themeTranslations = $themePath ? $this->loadPaths([$themePath], $locale, $group) : []; | 
					
						
							|  |  |  |             $originalTranslations = $this->loadPaths($this->paths, $locale, $group); | 
					
						
							| 
									
										
										
										
											2021-08-21 22:49:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-26 19:12:35 +08:00
										 |  |  |             return array_merge($originalTranslations, $themeTranslations); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $this->loadNamespaced($locale, $group, $namespace); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-03-08 06:24:05 +08:00
										 |  |  | } |