Add option to set a locale

As mentioned in https://www.php.net/manual/en/function.basename.php both
basename() and dirname() are locale aware.
An incorrect locale can cause the page tree to behave in strange ways.

For example the structure

/über-uns
 |-index.md
 |-impressum.md

could lead to the page impressum not being a child of über-uns.
This commit is contained in:
Daniel Willmann 2020-06-14 12:57:36 +02:00
parent 1aca13e83d
commit b2df860546
2 changed files with 6 additions and 0 deletions

View file

@ -7,6 +7,7 @@ base_url: ~ # Pico will try to guess its base URL, if th
rewrite_url: ~ # A boolean (true or false) indicating whether URL rewriting is forced rewrite_url: ~ # A boolean (true or false) indicating whether URL rewriting is forced
debug: ~ # Set this to true to enable Pico's debug mode debug: ~ # Set this to true to enable Pico's debug mode
timezone: ~ # Your PHP installation might require you to manually specify a timezone timezone: ~ # Your PHP installation might require you to manually specify a timezone
locale: ~ # Your PHP installation might require you to manually specify a locale to use
## ##
# Theme # Theme

View file

@ -936,6 +936,7 @@ class Pico
'rewrite_url' => null, 'rewrite_url' => null,
'debug' => null, 'debug' => null,
'timezone' => null, 'timezone' => null,
'locale' => null,
'theme' => 'default', 'theme' => 'default',
'theme_config' => null, 'theme_config' => null,
'theme_meta' => null, 'theme_meta' => null,
@ -974,6 +975,10 @@ class Pico
} }
date_default_timezone_set($this->config['timezone']); date_default_timezone_set($this->config['timezone']);
if ($this->config['locale'] !== null) {
setlocale(LC_ALL, $this->config['locale']);
}
if (!$this->config['plugins_url']) { if (!$this->config['plugins_url']) {
$this->config['plugins_url'] = $this->getUrlFromPath($this->getPluginsDir()); $this->config['plugins_url'] = $this->getUrlFromPath($this->getPluginsDir());
} else { } else {