diff options
author | Andrew Manning <andrewmanning@grid.reticu.li> | 2017-08-24 18:57:41 +0000 |
---|---|---|
committer | Andrew Manning <andrewmanning@grid.reticu.li> | 2017-08-24 18:57:41 +0000 |
commit | cf2609530fcffdc7f5477336232b7cfde8b6403f (patch) | |
tree | f93c35c66cbc636a92ba53ca3bb60e6c8fbe38b7 /include | |
parent | 592cf893c006f24c652902fa4fae7d2d94496c3c (diff) | |
download | volse-hubzilla-cf2609530fcffdc7f5477336232b7cfde8b6403f.tar.gz volse-hubzilla-cf2609530fcffdc7f5477336232b7cfde8b6403f.tar.bz2 volse-hubzilla-cf2609530fcffdc7f5477336232b7cfde8b6403f.zip |
Added language selector menu for Help pages
Diffstat (limited to 'include')
-rw-r--r-- | include/help.php | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/include/help.php b/include/help.php index f38f77854..ef6b77e12 100644 --- a/include/help.php +++ b/include/help.php @@ -32,6 +32,13 @@ function get_help_content($tocpath = false) { if(! $tocpath) \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title))); + if($tocpath !== false && + load_doc_file('doc/' . $path . '.md') === '' && + load_doc_file('doc/' . $path . '.bb') === '' && + load_doc_file('doc/' . $path . '.html') === '' + ) { + $path = 'toc'; + } $text = load_doc_file('doc/' . $path . '.md'); if(! $text) { @@ -110,7 +117,10 @@ function preg_callback_help_include($matches) { function determine_help_language() { require_once('Text/LanguageDetect.php'); $lang_detect = new Text_LanguageDetect(); + // Set this mode to recognize language by the short code like "en", "ru", etc. $lang_detect->setNameMode(2); + // If the language was specified in the URL, override the language preference + // of the browser. Default to English if both of these are absent. if($lang_detect->languageExists(argv(1))) { $lang = argv(1); $from_url = true; @@ -125,13 +135,16 @@ function determine_help_language() { function load_doc_file($s) { $path = 'doc'; + // Determine the language and modify the path accordingly $x = determine_help_language(); $lang = $x['language']; $url_idx = ($x['from_url'] ? 1 : 0); + // The English translation is at the root of /doc/. Other languages are in + // subfolders named by the language code such as "de", "es", etc. if($lang !== 'en') { $path .= '/' . $lang; } - + $b = basename($s); for($i=1+$url_idx; $i<argc()-1; $i++) { @@ -140,6 +153,16 @@ function load_doc_file($s) { $c = find_doc_file($path . '/' . $b); if($c) return $c; + // Possibly a translation was requested that has not been translated, so fall + // back to the English version + $path = 'doc'; + for($i=1+$url_idx; $i<argc()-1; $i++) { + $path .= '/' . argv($i); + } + $c = find_doc_file($path . '/' . $b); + if($c) + return $c; + // Try one last time to find the file at the explicit path input to the function $c = find_doc_file($s); if($c) return $c; |