-
Notifications
You must be signed in to change notification settings - Fork 0
/
Registry.php
71 lines (60 loc) · 1.52 KB
/
Registry.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
namespace Snowcap\I18nBundle;
use Symfony\Component\DependencyInjection\ContainerAware;
class Registry extends ContainerAware {
/**
* @var array
*/
private $locales;
/**
* @var array an array of paths indexed by locale : Example array("fr" => "/fr/slug", "nl" => "/nl/slug")
*/
private $switchPaths = array();
/**
* @param array $locales
*/
public function __construct(array $locales)
{
$this->locales = $locales;
}
/**
* @param array $locales
*/
public function registerLocales(array $locales)
{
$this->locales = array_unique(array_merge($this->locales, $locales));
}
/**
* @return array
*/
public function getRegisteredLocales()
{
return $this->locales;
}
/**
* Set the paths for the locale switcher (navigation-wise)
*
* @param array $paths an array of paths indexed by locale : Example array("fr" => "/fr/slug", "nl" => "/nl/slug")
*/
public function setSwitchPaths(array $paths)
{
$this->switchPaths = $paths;
}
/**
* Get the current locale switcher paths
*
* @return array an array of paths indexed by locale : Example array("fr" => "/fr/slug", "nl" => "/nl/slug")
*/
public function getSwitchPaths()
{
return $this->switchPaths;
}
/**
* @param string $locale
* @param string $path
*/
public function addSwitchPath($locale, $path)
{
$this->switchPaths[$locale] = $path;
}
}