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)
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
$this->title = $this->trimmed('title');
|
||||
$this->output = null;
|
||||
|
||||
@ -163,25 +165,41 @@ class DocAction extends Action
|
||||
|
||||
function getFilename()
|
||||
{
|
||||
$local = array_merge(glob(INSTALLDIR.'/local/doc-src/'.$this->title),
|
||||
glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*'));
|
||||
|
||||
if (count($local)) {
|
||||
return $this->negotiateLanguage($local);
|
||||
if (file_exists(INSTALLDIR.'/local/doc-src/'.$this->title)) {
|
||||
$localDef = INSTALLDIR.'/local/doc-src/'.$this->title;
|
||||
}
|
||||
|
||||
$dist = array_merge(glob(INSTALLDIR.'/doc-src/'.$this->title),
|
||||
glob(INSTALLDIR.'/doc-src/'.$this->title.'.*'));
|
||||
$local = glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*');
|
||||
|
||||
if (count($dist)) {
|
||||
return $this->negotiateLanguage($dist);
|
||||
if (count($local) || isset($localDef)) {
|
||||
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;
|
||||
}
|
||||
|
||||
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