Skip to content
Snippets Groups Projects
Commit 18ce55ed authored by Andreas Gohr's avatar Andreas Gohr
Browse files

Merge pull request #251 from splitbrain/localizetemplate

Localizetemplate
parents ff76de0a c5c17fda
No related branches found
No related tags found
No related merge requests found
......@@ -1188,6 +1188,34 @@ function tpl_getLang($id) {
return $lang[$id];
}
/**
* Retrieve a language dependent file and pass to xhtml renderer for display
* template equivalent of p_locale_xhtml()
*
* @param string $id id of language dependent wiki page
* @return string parsed contents of the wiki page in xhtml format
*/
function tpl_locale_xhtml($id) {
return p_cached_output(tpl_localeFN($id));
}
/**
* Prepends appropriate path for a language dependent filename
*/
function tpl_localeFN($id) {
$path = tpl_incdir().'lang/';
global $conf;
$file = DOKU_CONF.'/template_lang/'.$conf['template'].'/'.$conf['lang'].'/'.$id.'.txt';
if (!@file_exists($file)){
$file = $path.$conf['lang'].'/'.$id.'.txt';
if(!@file_exists($file)){
//fall back to english
$file = $path.'en/'.$id.'.txt';
}
}
return $file;
}
/**
* prints the "main content" in the mediamanger popup
*
......
......@@ -96,6 +96,10 @@ function js_out(){
// load JS specific translations
$json = new JSON();
$lang['js']['plugins'] = js_pluginstrings();
$templatestrings = js_templatestrings();
if(!empty($templatestrings)) {
$lang['js']['template'] = $templatestrings;
}
echo 'LANG = '.$json->encode($lang['js']).";\n";
// load toolbar
......@@ -210,6 +214,21 @@ function js_pluginstrings()
return $pluginstrings;
}
function js_templatestrings() {
global $conf;
$templatestrings = array();
if (@file_exists(tpl_incdir()."lang/en/lang.php")) {
include tpl_incdir()."lang/en/lang.php";
}
if (isset($conf['lang']) && $conf['lang']!='en' && @file_exists(tpl_incdir()."lang/".$conf['lang']."/lang.php")) {
include tpl_incdir()."lang/".$conf['lang']."/lang.php";
}
if (isset($lang['js'])) {
$templatestrings[$conf['template']] = $lang['js'];
}
return $templatestrings;
}
/**
* Escapes a String to be embedded in a JavaScript call, keeps \n
* as newline
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment