日本語化(OCS Inventory NG)
OCS Inventory NGの日本語対応 †
エージェントソフトウェア(Windows版)に、文字コードで問題があるが、何とはなしに日本語っぽくできた部分だけ記載
ちなみに、Ver.1.01です。
言語ファイルの作成 †
/インストールディレクトリ/languages/配下に
japanese.png:日本の国旗画像
japanese.txt:日本語テキスト
を作成
ちなみに、英語の言語ファイルをベースに日本語化中
ここで、日本語の言語ファイル作成時のポイント
japanese.txtの1行目
0 Shift_JIS
としてあります。
エージェントが収集したクライアントPCの情報は、Windows標準の文字コードのため、Shift_JISで記録されています。
文字化けせず(一部やはり化けていますが)に出力するためには、Shift_JISにしておくことが無難です。
日本語表示時の不具合 †
以下の設定値を修正 /preferences.php
define("UTF8_DEGREE", 1 ); 0から1に
以下のファイルを修正
/machine.php
942行目
//echo "<td align='center' width='100%'><b><font color='blue'>".strtoupper($text)."</font></b></td>"; echo "<td align='center' width='100%'><b><font color='blue'>".$text."</font></b></td>";
種別の一文字目を大文字に変換していますが、日本語でこれを行うと一部文字にて文字化けするので、削除
/machine.php
htmlentities -> htmlspecialchars
に全置換
日付形式が、yyyy/mm/ddでないので、修正
この修正と同時に、japanese.txt内の下記修正
267 yyyy/mm/dd 269 %Y/%m/%d
/preferences.php 789行目近辺
function dateFromMysql($v) { global $l; if( $l->g(269) == "%m/%d/%Y" ) $ret = sprintf("%02d/%02d/%04d", $v[5].$v[6], $v[8].$v[9], $v); // ここから追加 elseif( $l->g(269) == "%Y/%m/%d" ) $ret = sprintf("%04d/%02d/%02d", $v, $v[5].$v[6], $v[8].$v[9]); // ここまで追加 else $ret = sprintf("%02d/%02d/%04d", $v[8].$v[9], $v[5].$v[6], $v); return $ret; } function dateTimeFromMysql($v) { global $l; if( $l->g(269) == "%m/%d/%Y" ) $ret = sprintf("%02d/%02d/%04d %02d:%02d:%02d", $v[5].$v[6], $v[8].$v[9], $v, $v[11].$v[12],$v[14].$v[15],$v[17].$v[18]); // ここから追加 elseif( $l->g(269) == "%Y/%m/%d" ) $ret = sprintf("%04d/%02d/%02d", $v, $v[5].$v[6], $v[8].$v[9], $v[11].$v[12],$v[14].$v[15],$v[17].$v[18]); // ここまで追加 else $ret = sprintf("%02d/%02d/%04d %02d:%02d:%02d", $v[8].$v[9], $v[5].$v[6], $v, $v[11].$v[12],$v[14].$v[15],$v[17].$v[18]); return $ret; }
追記 †
1.02 RC3を日本語化進めていますが、色々な場所に2バイト文字への対応がなされていないため、そこら中に修正点が出てきています。
例えば、Tagへの入力欄とか・・・
とりあえず、ある程度できたら公開するつもりです。