LanTAT14

提供: GeeklogJpWiki

[6]開発者用ドキュメント > 言語ファイルの作成方法

目次

言語ファイルの作成方法

現在の提供言語ファイルは、30言語以上です。

日本語の言語ファイルは、2種類提供しています。

日本語utf-8版:/language/japanese_utf-8.php
日本語euc版:/language/japanese.php


言語ファイルの利用方法

Geeklogで他の言語を選ぶと、Geeklogで管理しているメニューやメッセージなどナビゲーションが指定の言語に変わります。

多言語機能

記事などのコンテンツの文字は、UTF-8どうしでの変更であれば,文字化けすることなく多くの言語の文字が同時に表示されます。

マルチバイト・シングルバイトの処理について: さらに,検索などの機能がきちんと動作するようにするためには,PHPのマルチバイト関数を有効にします。Linuxの場合は,--with-mb_stringオプションをつけてコンパイルし直す必要があるかもしれません。これを実行する場合は,php.ini内で"mbstring.func_overload = 7"も併せて設定します。こうすることで,シングルバイト用の関数を呼び出す場合はいつでもマルチバイト用の関数がオーバーロードされて呼び出されるようになります。

不要な言語ファイルがあったら

不要な言語ファイルがあったら自由に削除してください。あるいはフォルダを作成して移動させておきます。これで、ユーザに限られた言語からしか選ばせないようにできます。

言語ファイルの翻訳方法

日本語標準パッケージをダウンロードして、目的の言語がセットされているかどうか確認してください。もしなければGeeklog本家サイトのダウンロードの翻訳カテゴリを探します。なければ英語または日本語言語ファイルを元にファイルを翻訳します。その際、文字コードをUTF-8にします。(例 "Unicode UTF-8")

32行目あたりに、以下の行をセットします。

$LANG_CHARSET = "utf-8";

次にファイル名を "(言語名)_utf-8.php"の形式でセーブします。

言語ファイルをサーバにアップします。

後からUnicode/UTF-8サイトに変更する11のステップ

Geeklogをある言語用に設定して使い始めてから後で多言語対応に変えようというのはとても難しいものです。使っている文字セットが異なっている場合には特にそうです。ところが、UTF-8を使っていれば、すべての言語と文字セットを同時に何の問題もなく表示することができます。

そのため、最も良い方法はデータをすべて一気にユニコードに変えてしまうことです。記事やコメントの文字コードを一つ一つ手作業でページのエンコードを変えるといった面倒な作業は行いたくないものです。

そのためには、

  1. 秀丸またはNotepadのような、保存時にエンコードを指定できるエディタ
  2. MySQLを直接操作できること(WindowsのcmdとかLinuxのシェルとか)
  3. PHPEdit(または、Linuxのシェルエディタとか、僕の知ってる限りだけど)のように、ユニコードを扱えないエディタ。使っているエディタがユニコードを使えるかどうかは、ユニコードが使えるエディタで"xx?xx"とか言う感じの文字を入力したファイルを作成して、これをユニコードが使えなさそうなエディタで開いてみます。先ほどの文字”?”が、”?¶”になっていたら大丈夫です。

これで準備は完了。変換を始めましょう。

追記:1.3.10では、UTF-8用の言語ファイルが用意されているので、ステップ10の変換は不要です。

  1. Geeklogのバックアップ機能を使ってデータベースのバックアップを作成する。
  2. できたファイルをサーバーからダウンロードする。このファイルはZipするなり、CDに焼くなりしておいた方が良いです。ステップ1に戻るはめになったときのために保存しておきます。
  3. ファイルを秀丸またはNotepadといった他のユニコードが使えるエディタで開きます。データベースが大きければ時間がかかるかも知れませんが、待つだけの価値はあります。開いたファイルを別の名前で保存。「保存」ボタンを押す前に、「エンコーディング(文字コード)」を選択する部分がファイル名の下にあるはずだから、ここで「UTF-8」を選びます。
  4. 次に、これをユニコードが使えない方のエディタで開くことです。ファイルの先頭に”???”という奇妙な3文字があるはずだから、これを削除します。この3文字は後でSQLを操作するときにエラーになるからです。そしてファイルを保存しておきます。
  5. ファイルをサーバーにアップロードする。転送時間の節約のためにファイルを圧縮してもよいでしょう。(これはダウンロードの時も同じです。)
  6. 可能であれば新しいデータベースを作成する。無理なら古いデータベース上のテーブルを全部削除しておきます。
  7. 次のようにして、データをデータベースに書き戻す。
    mysql --user=root --password databasename file.txt
    「databasename」は、さっきの新しいデータベース、または空にしたものの名前を指定します。file.txtは、テキストエディタで保存してアップロードしたファイル名です。ファイルは作業中のディレクトリになければならないので,必要ならちゃんと移動しておきます。Windowsでは,MySQL.exeのある/Mysql/bin-directoryにファイルがなければなりません。ファイルを移動したくなければ、mysqlをフルパスで指定するか、ファイル名をフルパスで指定します。
    データベースのroot権限を持っていない場合には、「root」をMySQLサーバー上でアクセス権のある適当な名前に変える。
  8. enterを押す。ユーザーのパスワードを聞かれるので、入力してenterを再び押す。そうすると、データベースがサーバーに書き戻される。
  9. 新しいデータベースを作成したならば、geeklogのconfig.phpできちんと指定しておく。
  10. geeklogの言語を_UTF-8で終わる言語セットのどれかに変える。UTF-8ではない環境で使っていたユーザーのストレスを避けたいなら、UTF-8で使うすべての言語ファイルをテキストエディタで変換しておいた方が良いです。(今回は先頭の3文字を削除する必要はありません。)各ファイルの30行目にあるエンコーディング文字列を次のように変えます。
    $LANG_CHARSET = "UTF-8";
  11. 標準文字コードがUTF-8を使ったもののどれかになるようにconfig.phpを次のように設定する。(239行目辺りだと思う)
    $_CONF['language']="english_UTF-8";
  12. 言語フォルダーから、UTF-8でないファイルを削除しておいても良い。

これで終わりです。

個人用ツール