radarrplexorganizrnginxsonarrdashboardserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpc
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							66 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							66 lines
						
					
					
						
							1.9 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\Translation\Loader; | |
| 
 | |
| use Symfony\Component\Translation\MessageCatalogue; | |
| 
 | |
| /** | |
|  * ArrayLoader loads translations from a PHP array. | |
|  * | |
|  * @author Fabien Potencier <fabien@symfony.com> | |
|  */ | |
| class ArrayLoader implements LoaderInterface | |
| { | |
|     /** | |
|      * {@inheritdoc} | |
|      */ | |
|     public function load($resource, $locale, $domain = 'messages') | |
|     { | |
|         $this->flatten($resource); | |
|         $catalogue = new MessageCatalogue($locale); | |
|         $catalogue->add($resource, $domain); | |
| 
 | |
|         return $catalogue; | |
|     } | |
| 
 | |
|     /** | |
|      * Flattens an nested array of translations. | |
|      * | |
|      * The scheme used is: | |
|      *   'key' => array('key2' => array('key3' => 'value')) | |
|      * Becomes: | |
|      *   'key.key2.key3' => 'value' | |
|      * | |
|      * This function takes an array by reference and will modify it | |
|      * | |
|      * @param array  &$messages The array that will be flattened | |
|      * @param array  $subnode   Current subnode being parsed, used internally for recursive calls | |
|      * @param string $path      Current path being parsed, used internally for recursive calls | |
|      */ | |
|     private function flatten(array &$messages, array $subnode = null, $path = null) | |
|     { | |
|         if (null === $subnode) { | |
|             $subnode = &$messages; | |
|         } | |
|         foreach ($subnode as $key => $value) { | |
|             if (\is_array($value)) { | |
|                 $nodePath = $path ? $path.'.'.$key : $key; | |
|                 $this->flatten($messages, $value, $nodePath); | |
|                 if (null === $path) { | |
|                     unset($messages[$key]); | |
|                 } | |
|             } elseif (null !== $path) { | |
|                 $messages[$path.'.'.$key] = $value; | |
|             } | |
|         } | |
|     } | |
| }
 | |
| 
 |