forked from GNUsocial/gnu-social
do actual language negotiation for help docs
This commit is contained in:
parent
9f815c968f
commit
104d300799
@ -51,6 +51,8 @@ class DocAction extends Action
|
|||||||
|
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
|
parent::prepare($args);
|
||||||
|
|
||||||
$this->title = $this->trimmed('title');
|
$this->title = $this->trimmed('title');
|
||||||
$this->output = null;
|
$this->output = null;
|
||||||
|
|
||||||
@ -163,25 +165,41 @@ class DocAction extends Action
|
|||||||
|
|
||||||
function getFilename()
|
function getFilename()
|
||||||
{
|
{
|
||||||
$local = array_merge(glob(INSTALLDIR.'/local/doc-src/'.$this->title),
|
if (file_exists(INSTALLDIR.'/local/doc-src/'.$this->title)) {
|
||||||
glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*'));
|
$localDef = INSTALLDIR.'/local/doc-src/'.$this->title;
|
||||||
|
|
||||||
if (count($local)) {
|
|
||||||
return $this->negotiateLanguage($local);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$dist = array_merge(glob(INSTALLDIR.'/doc-src/'.$this->title),
|
$local = glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*');
|
||||||
glob(INSTALLDIR.'/doc-src/'.$this->title.'.*'));
|
|
||||||
|
|
||||||
if (count($dist)) {
|
if (count($local) || isset($localDef)) {
|
||||||
return $this->negotiateLanguage($dist);
|
return $this->negotiateLanguage($local, $localDef);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file_exists(INSTALLDIR.'/doc-src/'.$this->title)) {
|
||||||
|
$distDef = INSTALLDIR.'/doc-src/'.$this->title;
|
||||||
|
}
|
||||||
|
|
||||||
|
$dist = glob(INSTALLDIR.'/doc-src/'.$this->title.'.*');
|
||||||
|
|
||||||
|
if (count($dist) || isset($distDef)) {
|
||||||
|
return $this->negotiateLanguage($dist, $distDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function negotiateLanguage($files)
|
function negotiateLanguage($filenames, $defaultFilename=null)
|
||||||
{
|
{
|
||||||
// FIXME: write this
|
// XXX: do this better
|
||||||
|
|
||||||
|
$langcode = common_language();
|
||||||
|
|
||||||
|
foreach ($filenames as $filename) {
|
||||||
|
if (preg_match('/\.'.$langcode.'$/', $filename)) {
|
||||||
|
return $filename;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $defaultFilename;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user