Wiki (ewiki)のスペシャルページのタイトル

Wiki (ewiki)のスペシャルページのタイトル

- Tatsuya Shirai の投稿
返信数: 4

 ”Wikiリンクの選択”にあるスペシャルページ,

$specialpages=array("SearchPages", "PageIndex","NewestPages","MostVisitedPages","MostOftenChangedPages","UpdatedPages","FileDownload","FileUpload","OrphanedPages","WantedPages");

のうち,最新のページ(NewestPages)以外はせっかく翻訳ファイルがあるのに英語でタイトルが表示されます.さらに言いますと,”執筆が望まれているページ”はタイトルすら表示されません.

 mod/wiki/ewiki/ewiki.php中のfunction ewiki_make_title()に以下のような修正を行なえば,全てのスペシャルページのタイトルが翻訳されるのは確認したのですが...(副作用は調べていませんのでご注意下さい)

function ewiki_make_title($id='', $title='', $class=3, $action="view", $go_action="links", $may_split=1) {

   global $ewiki_config, $ewiki_plugins, $ewiki_title, $ewiki_id;

   #-- advanced handler
   if ($pf = @$ewiki_plugins["make_title"][0]) {
      return($pf($title, $class, $action, $go_action, $may_split));
   }
   #-- disabled
   elseif (!$ewiki_config["print_title"]) {
      return("");
   }
// (FS_TEST): ここから追加
   if ($title != '') {
       $atitle = get_string(strtolower($title), 'wiki');
       if (substr($atitle, 0, 2) != '[[') $title = $atitle;
   }
// (FS_TEST): ここまで追加


   #-- get id
   if (empty($id)) {
      $id = $ewiki_id;
   }

どうにも気持ちが悪いですね.なぜ”最新のページ”のみ翻訳されるのか,”執筆を望まれるページ”はタイトルが表示されないのか.その仕組みまで含めて調べてみたいところですが,時間があまり取れません.どなたか御存知の方はいらっしゃいますか?

Tatsuya Shirai への返信

Re: Wiki (ewiki)のスペシャルページのタイトル

- Tatsuya Shirai の投稿

どうやら副作用は無さそうです.

 ユーザが作ったページの場合は$idで渡され,$titleは空のようです.
 スペシャルページ以外はこの追加したルーチンを使わないようです.

Tatsuya Shirai への返信

Re: Wiki (ewiki)のスペシャルページのタイトル

- Tatsuya Shirai の投稿

さらに訂正です.

変更を最小限にするならば,以下の箇所で良さそうです.

 

function ewiki_make_title($id='', $title='', $class=3, $action="view", $go_action="links", $may_split=1) {

   global $ewiki_config, $ewiki_plugins, $ewiki_title, $ewiki_id;

   #-- advanced handler
   if ($pf = @$ewiki_plugins["make_title"][0]) {
      return($pf($title, $class, $action, $go_action, $may_split));
   }
   #-- disabled
   elseif (!$ewiki_config["print_title"]) {
      return("");
   }

   #-- get id
   if (empty($id)) {
      $id = $ewiki_id;
   }

   #-- get title
   if (!strlen($title)) {
      $title = $ewiki_title;  // already in &html; format
   }
   elseif ($ewiki_config["split_title"] && $may_split) {
      $title = ewiki_split_title($title, $ewiki_config["split_title"], 0&($title!=$ewiki_title));
   }
   else {
// (Shirai097): Wikiのスペシャルページのタイトルが翻訳されずに英語で表示される問題の改善 (2008/10/15)
// (Shirai097): ここから追加
      $atitle = get_string(strtolower($title), 'wiki');
      if (substr($atitle, 0, 2) != '[[') $title = $atitle;
// (Shirai097): ここまで追加
      $title = s($title);
   }

Tatsuya Shirai への返信

Re: Wiki (ewiki)のスペシャルページのタイトル

- Tatsuya Shirai の投稿

 この件は,既に吉田さんからTracker(MDL-15534)に報告されている内容に少し近いですね. この件は私が報告した以下の件から生じたもので,

http://moodle.org/mod/forum/discuss.php?d=100673

いまから思うに,真相はSiteMapだけの問題ではなかった,ということのようですね.

 あちらはsitemapforが正しく使われていなかったのが原因であって,本件とは微妙に異なりますが.場所が近い/現象が近いということで,Trackerに今回の修正箇所もコメントしておきます.