Top/スキン/スキン日英統合

Category:国際化

スキンの日英統合

以下のようにすれば LANGの切替えだけで skinが同一でも構わないと考えています。

 if (!defined('DATA_DIR')) { exit; }
 header('Cache-control: no-cache');
 header('Pragma: no-cache');
-header('Content-Type: text/html; charset=EUC-JP');
-echo '<?xml version="1.0" encoding="EUC-JP"?>';
+header('Content-Type: text/html; charset='.SOURCE_ENCODING);
+echo '<?xml version="1.0" encoding="'.SOURCE_ENCODING.'"?>';
+<?php 
+global $_skin_r_page,$_skin_new,$_skin_edit,$_skin_freeze,$_skin_unfreeze,
+         $_skin_diff,$_skin_upload,$_skin_top,$_skin_list,$_skin_filelist,
+         $_skin_template,$_skin_search,$_skin_rename,$_skin_whatsnew,
+         $_skin_backup,$_skin_help,$_skin_referer,$_skin_trackback,$_skin_rss;
+?>
 <?php if ($html_transitional) { ?>
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
 <?php } ?>
 <head>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=EUC-JP" />
+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=<?php echo SOURCE_ENCODING;?>" />
  <meta http-equiv="content-style-type" content="text/css" />
 
 <?php if (!$is_read) { ?>
 <?php } ?>
 
  <title><?php echo "$title - $page_title" ?></title>
- <link rel="stylesheet" href="skin/default.ja.css" type="text/css" media="screen" charset="Shift_JIS" />
- <link rel="stylesheet" href="skin/print.ja.css" type="text/css" media="print" charset="Shift_JIS" />
+ <link rel="stylesheet" href="<?php echo DATA_HOME . SKIN_DIR?>default.ja.css" type="text/css" media="screen" charset="Shift_JIS" /
+ <link rel="stylesheet" href="<?php echo DATA_HOME . SKIN_DIR?>print.ja.css" type="text/css" media="print" charset="Shift_JIS" />
<?php
 <meta http-equiv="Content-Script-Type" content="text/javascript" />
- <script type="text/javascript" src="skin/trackback.js"></script>
+ <script type="text/javascript" src="<?php echo DATA_HOME . SKIN_DIR?>trackback.js"></script>
 <?php } ?> 
 <?php if ($is_page) { ?>
- [ <a href="<?php echo "$script?$r_page" ?>">リロード</a> ]
+ [ <a href="<?php echo "$script?$r_page".'">'.$_skin_r_page ?></a>]
  &nbsp;
- [ <a href="<?php echo "$script?plugin=newpage&amp;refer=$r_page" ?>">新規</a>
- | <a href="<?php echo $link_edit ?>">編集</a>
+ [ <a href="<?php echo "$script?plugin=newpage&amp;refer=$r_page".'">'.$_skin_new ?> </a>
+ | <a href="<?php echo $link_edit.'">'.$_skin_edit ?></a>
 <?php   if ($is_read and $function_freeze) { ?>
 <?php     if ($is_freeze) { ?>
- | <a href="<?php echo $link_unfreeze ?>">凍結解除</a>
+ | <a href="<?php echo $link_unfreeze.'">'.$_skin_unfreeze?></a>
 <?php     } else { ?>
- | <a href="<?php echo $link_freeze ?>">凍結</a>
+ | <a href="<?php echo $link_freeze.'">'.$_skin_freeze?></a>
 <?php     } ?>
 <?php   } ?>
 
- | <a href="<?php echo $link_diff ?>">差分</a>
+ | <a href="<?php echo $link_diff.'">'.$_skin_diff ?></a>
 
 <?php   if ((bool)ini_get('file_uploads')) { ?>
- | <a href="<?php echo $link_upload ?>">添付</a>
+ | <a href="<?php echo $link_upload.'">'.$_skin_upload ?></a>
 <?php   } ?>
 
  ]
  &nbsp;
 <?php } ?>
 
- [ <a href="<?php echo $link_top ?>">トップ</a>
- | <a href="<?php echo $link_list ?>">一覧</a>
+ [ <a href="<?php echo $link_top.'">'.$_skin_top ?></a>
+ | <a href="<?php echo $link_list.'">'.$_skin_list ?></a>
 
 <?php if (arg_check('list')) { ?>
- | <a href="<?php echo $link_filelist ?>">ファイル名一覧</a>
+ | <a href="<?php echo $link_filelist.'">'.$_skin_filelist ?></a>
 <?php } ?>

- | <a href="<?php echo $link_search ?>">単語検索</a>
- | <a href="<?php echo $link_whatsnew ?>">最終更新</a>
+ | <a href="<?php echo $link_search.'">'.$_skin_search ?></a>
+ | <a href="<?php echo $link_whatsnew.'">'.$_skin_whatsnew ?></a>
 
 <?php if ($do_backup) { ?>
- | <a href="<?php echo $link_backup ?>">バックアップ</a>
+ | <a href="<?php echo $link_backup.'">'.$_skin_backup ?></a>
 <?php } ?>
 
- | <a href="<?php echo $link_help ?>">ヘルプ</a>
+ | <a href="<?php echo $link_help.'">'.$_skin_help ?></a>
  ]
 <?php
  if ($trackback) {
 <?php
   if ($referer) {
 ?>
- [ <a href="<?php echo "$script?plugin=referer&amp;page=$r_page" ?>">リンク元</a> ]
+ [ <a href="<?php echo "$script?plugin=referer&amp;page=$r_page".'">'.$_skin_referer ?></a>
 <?php } ?>
 <div id="toolbar">
 
 <?php if ($is_page) { ?>
- <a href="<?php echo "$script?$r_page" ?>"><img src="<?php echo IMAGE_DIR ?>reload.png" width="20" height="20" alt="リロード" title="リロード" /></a>
+ <a href="<?php echo "$script?$r_page" ?>"><img src="<?php echo IMAGE_DIR ?>reload.png" width="20" height="20" alt="<?php echo $_skin_r_page ?>" title="<?php echo $_skin_r_page ?>" /></a>
 &nbsp;
- <a href="<?php echo $script ?>?plugin=newpage"><img src="<?php echo IMAGE_DIR ?>new.png" width="20" height="20" alt="新規" title="新規" /></a>
- <a href="<?php echo $link_edit ?>"><img src="<?php echo IMAGE_DIR ?>edit.png" width="20" height="20" alt="編集" title="編集" /></a>
+ <a href="<?php echo $script ?>?plugin=newpage&amp;refer=$r_page"><img src="<?php echo IMAGE_DIR ?>new.png" width="20" height="20" alt="<?php echo $_skin_new ?>" title="<?php echo $_skin_new ?>" /></a>
+ <a href="<?php echo $link_edit ?>"><img src="<?php echo IMAGE_DIR ?>edit.png" width="20" height="20" alt="<?php echo $_skin_edit ?>" title="<?php echo $_skin_edit ?>" /></a>
 <?php   if ($is_read and $function_freeze) { ?>
 <?php     if ($is_freeze) { ?>
- <a href="<?php echo $link_unfreeze ?>"><img src="<?php echo IMAGE_DIR ?>unfreeze.png" width="20" height="20" alt="凍結解除" title="凍結解除" /></a>
+ <a href="<?php echo $link_unfreeze ?>"><img src="<?php echo IMAGE_DIR ?>unfreeze.png" width="20" height="20" alt="<?php echo $_skin_unfreeze ?>" title="<?php echo $_skin_unfreeze ?>" /></a>
<?php     } else { ?>
- <a href="<?php echo $link_freeze ?>"><img src="<?php echo IMAGE_DIR ?>freeze.png" width="20" height="20" alt="凍結" title="凍結" /></a>
+ <a href="<?php echo $link_freeze ?>"><img src="<?php echo IMAGE_DIR ?>freeze.png" width="20" height="20" alt="<?php echo $_skin_freeze ?>" title="<?php echo $_skin_freeze ?>" /></a>
<?php     } ?>
<?php   } ?>
- <a href="<?php echo $link_diff ?>"><img src="<?php echo IMAGE_DIR ?>diff.png" width="20" height="20" alt="差分" title="差分" /></a>
+ <a href="<?php echo $link_diff ?>"><img src="<?php echo IMAGE_DIR ?>diff.png" width="20" height="20" alt="<?php echo $_skin_diff ?>" title="<?php echo $_skin_diff ?>" /></a>
<?php   if ((bool)ini_get('file_uploads')) { ?>
- <a href="<?php echo $link_upload ?>"><img src="<?php echo IMAGE_DIR ?>file.png" width="20" height="20" alt="添付" title="添付" /></a>
+ <a href="<?php echo $link_upload ?>"><img src="<?php echo IMAGE_DIR ?>file.png" width="20" height="20" alt="<?php echo $_skin_upload ?>" title="<?php echo $_skin_upload ?>" /></a>
<?php   } ?>
- <a href="<?php echo $link_template ?>"><img src="<?php echo IMAGE_DIR ?>copy.png" width="20" height="20" alt="複製" title="複製" /></a>
- <a href="<?php echo $link_rename ?>"><img src="<?php echo IMAGE_DIR ?>rename.png" width="20" height="20" alt="改名" title="改名" /></a>
+ <a href="<?php echo $link_template ?>"><img src="<?php echo IMAGE_DIR ?>copy.png" width="20" height="20" alt="<?php echo $_skin_template ?>" title="<?php echo $_skin_template ?>" /></a>
+ <a href="<?php echo $link_rename ?>"><img src="<?php echo IMAGE_DIR ?>rename.png" width="20" height="20" alt="<?php echo $_skin_rename ?>" title="<?php echo $_skin_rename ?>" /></a>
  &nbsp;
 <?php } ?>

- <a href="<?php echo $link_top ?>"><img src="<?php echo IMAGE_DIR ?>top.png" width="20" height="20" alt="トップ" title="トップ" /></a>
- <a href="<?php echo $link_list ?>"><img src="<?php echo IMAGE_DIR ?>list.png" width="20" height="20" alt="一覧" title="一覧" /></a>
- <a href="<?php echo $link_search ?>"><img src="<?php echo IMAGE_DIR ?>search.png" width="20" height="20" alt="検索" title="検索" /></a>
- <a href="<?php echo $link_whatsnew ?>"><img src="<?php echo IMAGE_DIR ?>recentchanges.png" width="20" height="20" alt="最終更新" title="最終更新" /></a>
+ <a href="<?php echo $link_top ?>"><img src="<?php echo IMAGE_DIR ?>top.png" width="20" height="20" alt="<?php echo $_skin_top ?>" title="<?php echo $_skin_top ?>" /></a>
+ <a href="<?php echo $link_list ?>"><img src="<?php echo IMAGE_DIR ?>list.png" width="20" height="20" alt="<?php echo $_skin_list ?>" title="<?php echo $_skin_list ?>" /></a>
+ <a href="<?php echo $link_search ?>"><img src="<?php echo IMAGE_DIR ?>search.png" width="20" height="20" alt="<?php echo $_skin_search ?>" title="<?php echo $_skin_search ?>" /></a>
+ <a href="<?php echo $link_whatsnew ?>"><img src="<?php echo IMAGE_DIR ?>recentchanges.png" width="20" height="20" alt="<?php echo $_skin_whatsnew ?>" title="<?php echo $_skin_whatsnew ?>" /></a>

 <?php if ($do_backup) { ?>
- <a href="<?php echo $link_backup ?>"><img src="<?php echo IMAGE_DIR ?>backup.png" width="20" height="20" alt="バックアップ" title="バックアップ" /></a>
+ <a href="<?php echo $link_backup ?>"><img src="<?php echo IMAGE_DIR ?>backup.png" width="20" height="20" alt="<?php echo $_skin_backup ?>" title="<?php echo $_skin_backup ?>" /></a>
 <?php } ?>
 
  &nbsp;
- <a href="<?php echo $link_help ?>"><img src="<?php echo IMAGE_DIR ?>help.png" width="20" height="20" alt="ヘルプ" title="ヘルプ" /></a>
+ <a href="<?php echo $link_help ?>"><img src="<?php echo IMAGE_DIR ?>help.png" width="20" height="20" alt="<?php echo $_skin_help ?>" title="<?php echo $_skin_help ?>" /></a>
  &nbsp;
- <a href="<?php echo $link_rss ?>"><img src="<?php echo IMAGE_DIR ?>rss.png" width="36" height="14" alt="最終更新のRSS" title="最終更新のRSS" /></a>
+ <a href="<?php echo $link_rss ?>"><img src="<?php echo IMAGE_DIR ?>rss.png" width="36" height="14" alt="<?php echo $_skin_rss ?>" 

title="<?php echo $_skin_rss ?>" /></a>

 </div>

ja.lngに追加

///////////////////////////////////////
// pukiwiki.skin.ja.php menu
$_skin_r_page= 'リロード' ;
$_skin_new='新規' ;
$_skin_edit='編集' ;
$_skin_freeze='凍結' ;
$_skin_unfreeze='凍結解除' ;
$_skin_diff='差分' ;
$_skin_upload='添付' ;
$_skin_top='トップ' ;
$_skin_list='一覧' ;
$_skin_filelist='ファイル名一覧' ;
$_skin_template='複製' ;
$_skin_search='単語検索' ;
$_skin_rename='名前変更';
$_skin_whatsnew='最終更新' ;
$_skin_backup='バックアップ' ;
$_skin_help='ヘルプ';
$_skin_referer='リンク元';
$_skin_trackback='トラックバック';
$_skin_rss='RSS';

en.lng に追加

///////////////////////////////////////
// pukiwiki.skin.en.php memu 
$_skin_r_page= 'Reload';
$_skin_new='New' ;
$_skin_edit='Edit' ;
$_skin_freeze='Freeze' ;
$_skin_unfreeze='Unfreeze' ;
$_skin_diff='Diff' ;
$_skin_upload='Upload' ;
$_skin_top='Top' ;
$_skin_list='List' ;
$_skin_filelist='Filelist' ;
$_skin_template='Copy' ;
$_skin_search='Search' ;
$_skin_rename='Rename';
$_skin_whatsnew='Recent Changes' ;
$_skin_backup='Backup' ;
$_skin_help='Help';
$_skin_referer='Referer';
$_skin_trackback='Trackback';
$_skin_rss='RSS';

ディレクトリ指定も入っています。

これで LANGの変更でメニューメッセージが切り替わります。


  • ふむふむ。元になっているものはCVS版ではないのですね (^^; でも大部分が使えそう、かつ私が書きたかった事が書かれていますので、いただきます :) ただ、このままだと(たしか以前 merlin さんも言われていた様に)、「ページの内部エンコーディングは日本語だけども、スキンの中で使う言葉は英語にしたい」といった需要にこたえられませんから、やり方はちょっと変わります。背中を押していただいてありがとうございます :) -- henoheno 2004-09-29 (水) 21:06:13
  • LANG切替えでは、ENCODINGは変わらないはずなので メニューとメッセージは変わらないはずですけど -- merlin 2004-09-29 (水) 21:11:15
  • それができるように、SKIN_LANGというdefineを用意したのですよー -- henoheno 2004-10-01 (金) 20:55:00
  • コミットしました。(開発日記/2004-09-30) -- henoheno 2004-10-01 (金) 20:55:25
  • ちょっと使ってみましたけど SKIN_LANGで cssのencoding 変えるのはまずいようなきがします。ちょっと場合分けの整理が必要かなと思ってます -- merlin 2004-10-01 (金) 21:23:27
  • お疲れ様です :) CSSの部分は 開発日記/2004-09-30 に書き足した通りで、現状維持のためにあのようにしていますが、私が解っていないだけです (^^; ぜひお願いします -- henoheno 2004-10-01 (金) 21:42:19
  • 自分は、別コンテンツでSimpleMachinesフォーラム翻訳をやってますが、公式サイトのスレッドでURLで言語切り替えをやってるスレッドがありましたけど、こういうことってできませんか?見たところ、クッキーに言語切り替えの設定を保存しているようですが・・・。 -- Logue 2004-10-04 (月) 17:27:50
    • 全ページに言語指定するか Cookieですね そこは Cookie使ってますね。個人的には、javascript とか Cookieは嫌いなんですが... (^^; -- merlin 2004-10-04 (月) 18:17:46
  • 最新のCVS版であれば可能です。index.phpをコピーしたen.phpを用意して、その中では SKIN_LANG を en に define しておきます。そうすると、en.php にアクセスするとメニューが英語になります。そういうことですよね?> Logue -- henoheno 2004-10-04 (月) 20:07:28
  • SKIN_LANGについては、動的に変更できる様に改造しても、影響を受ける部分はスキンに限られているので問題ありません。 -- henoheno 2004-10-04 (月) 20:15:37
  • なるほど。index.phpで切り替えるという手がありましたか。ありがとうございます。最終的にはNarverの自動翻訳掲示板とまではいかなくても、全ページに翻訳用のアドレスをいれておいたら面白いかなと考えています。 -- Logue 2004-10-05 (火) 13:40:24
    • 最新のではありませんが言語自動認証付きでindex.php を切替えるののテストは http://tec-tech.org/TEST/ に置いてあります。翻訳用アドレスの場所などの設置場所に関して、PukiWiki.org の Japanese Site/English Site の場所なんての如何でしょうか? 今は固定ですが、ページごとに対応するページに飛ぶというのを考えていたりします -- merlin 2004-10-05 (火) 20:09:03
  • henohenoさんの意見を参考に、半日かけてCVS版のを改造した結果こうなりました。(FrontPageとMenubarのみ切り替えた)→http://logue.xrea.jp/ffxi/ -- Logue 2004-10-11 (月) 16:29:54
    • この部分 RIGHT:[[Japanese Version>ノルバレン]] は 自動生成ですか? -- merlin 2004-10-11 (月) 17:07:37
    • 全部自分で書いてますね。ここは、InterWikiNameを使って擬似的にもうひとつのWikiがあるようにさせるつもりです。自分としては、多言語において共有しない情報はFrontPageとMenuBarぐらいで十分だと思っているので、こういう変則的な方法をつかいました。 -- Logue 2004-10-12 (火) 00:01:22
    • どこかにデータページを持っていてそれに言語別代替ページ名が書いてあってそれが呼び出されるようなブラグインがあると良いですねぇ。そうするとスキン側に組み込めるので すっきりします。ページ数が増えるとかなりのオーバーヘッドになりますけど... -- merlin 2004-10-12 (火) 01:16:16
    • UTF-8の他言語サイトだと それほど変則的でもないと思います。切替える必要があるのは、メッセージ、スキン、メニューバー ぐらいだと私も思います。 -- merlin 2004-10-12 (火) 01:21:25
  • 実はボタンの文字列のようなUIも該当するようです>merlin -- henoheno 2004-10-12 (火) 20:08:54
    • 御意。でもそれって メッセージといっしょで pluginが lngファイルに対応していれば問題無しでは? -- merlin 2004-10-12 (火) 22:23:38
    • SKIN_LANG で上下のナビゲーションの言語を切り替えようとするような(国際化の)ニーズがあったとき、ボタン類の言語も変わっていないのは変だという事に気づきますた -- henoheno 2004-10-12 (火) 23:33:55
  • 一応、使用中のスキンを公開しますね。まだバグ多いですけどfilevanawiki_skin.zip -- Logue 2004-10-17 (日) 10:59:52


添付ファイル: filevanawiki_skin.zip 565件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-10-17 (日) 11:00:24
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.260 sec.

OSDN