Top > WordPress > カスタマイズ > ローカライズ [全て開く]
2007年3月29日

poEDIT の使い方

March 29,2007 3:25 AM
Tag:[, ]
Permalink

WordPress の日本語部分を変更する場合には、クロスプラットフォームな gettext カタログ(po ファイル)の編集ができる poEDIT が便利です。

以下、Windows での poEDIT の利用方法を紹介します。

1.ダウンロード

poEDIT のページの「Download」をクリック。

Windows の場合は、ページ下にある poedit-1.x.x-setup.exe(エントリー作成時は 1.3.6) のリンクをクリック。

2.インストール

ダウンロードした exe ファイルをダブルクリックしてインストールを開始します。

「Next」をクリック「Next」をクリック。

「I accept the agreement」を選択して「Next」をクリック「I accept the agreement」を選択して「Next」をクリック。

インストール先フォルダを指定インストール先フォルダを指定(デフォルトは C:¥Program Files¥poEdit)して「Next」をクリック。

デフォルトのまま「Next」をクリックデフォルトのまま「Next」をクリック。

デフォルトのまま「Next」をクリックデフォルトのまま「Next」をクリック。

「Install」をクリック「Install」をクリック。

インストール実行インストールが実行されます。

poEDIT を起動ここでは「Run poEdit now」をチェックして「Finish」をクリックし、すぐに poEDIT を起動します。

言語選択画面で「Japanese」を選択言語選択画面が開くので「Japanese」を選択して「OK」をクリック。

「OK」をクリック「OK」をクリック。

名前とメールアドレスを設定名前とメールアドレスを設定して「OK」をクリック。

poEDIT 起動これで poEDIT が起動されました。

3.po ファイル編集

po ファイル編集WordPress の場合、[ファイル] - [開く] を選択。

ja_UTF.po を選択2.1.x であれば wp-content/languages 配下の ja_UTF.po を選択します。なお poEDIT 1.3.6 は他の文字コードでは正常に保存ができないようです。

po ファイルを開いたところpo ファイルを開いたところです。内容の変更方法は、該当行をクリックすると原文と翻訳文(日本語)が左下に表示されますので、ここで編集できます。

日本語化の作業編集後、他の行を選択すると変更行の左端にマークが表示されます。
これで [ファイル] - [保存] または左から二つ目の保存アイコンをクリックすると mo ファイルが自動生成されます。これで日本語化の作業は完了です。

Cygwin の msgfmt コマンドでコンパイルダウンロードした 1.3.6 では Shift_JIS / EUC での保存ができないようです(読み込みはOK)。その場合、Windows をご利用であれば、Cygwin の msgfmt コマンドでコンパイルすることができます(ここでは割愛します)。

4.注意事項

poEDIT は名前の通り、編集はできますが、行自体の追加や削除はできません。したがって入力前の po ファイル(あるいは POT ファイル)を予め編集しておく必要があります。

5.関連リンク

Comments [0] | Trackbacks [2]
2007年3月28日

WordPress での時刻表記「AM/PM」を「午前/午後」にする方法

March 28,2007 3:10 AM
Tag:[, , ]
Permalink

WordPress で投稿時間等に用いる「AM/PM」あるいは「am/pm」という表示を日本語表記の「午前/午後」にする方法です。

「AM・PM」を「午前・午後」で表示する

1.Portable Object ファイルの編集

ローカライズ機能で用いる Portable Object ファイルを編集します。

1.1 2.1.x の場合

ご利用の文字コードに合わせて下記のいずれかのファイルを任意のエディタで開きます。文字コードが UTF-8 の場合は ja_UTF.po を編集します。

wp-content/languages/ja_EUC.po
wp-content/languages/ja_SJIS.po
wp-content/languages/ja_UTF.po

次に下記の行を探し、青色のように修正します。修正前は msgid と同じ値が入っています。

#: wp-includes/locale.php:85
msgid "am"
msgstr "午前"
 
#: wp-includes/locale.php:86
msgid "pm"
msgstr "午後"
 
#: wp-includes/locale.php:87
msgid "AM"
msgstr "午前"
 
#: wp-includes/locale.php:88
msgid "PM"
msgstr "午後"

1.2 2.0.x の場合

ご利用の文字コードに合わせて下記のいずれかのファイルを任意のエディタで開き、下記の行を追加してください。文字コードが UTF-8 の場合は ja_UTF.po を編集します。

wp-includes/languages/ja_EUC.po
wp-includes/languages/ja_SJIS.po
wp-includes/languages/ja_UTF.po
msgid "am"
msgstr "午前"
 
msgid "pm"
msgstr "午後"

2.functions.php の修正

この作業は 2.0.x のみです。wp-includes/functions.php を任意のエディタで開き、下記の青色を追加してください。

function mysql2date($dateformatstring, $mysqlstring, $translate = true) {
    global $month, $weekday, $month_abbrev, $weekday_abbrev;
    $m = $mysqlstring;
    if ( empty($m) ) {
        return false;
    }
    $i = mktime(substr($m,11,2),substr($m,14,2),substr($m,17,2),substr($m,5,2),substr($m,8,2),substr($m,0,4));
    
    if ( -1 == $i || false == $i )
        $i = 0;
 
    if ( !empty($month) && !empty($weekday) && $translate ) {
        $datemonth = $month[date('m', $i)];
        $datemonth_abbrev = $month_abbrev[$datemonth];
        $dateweekday = $weekday[date('w', $i)];
        $dateweekday_abbrev = $weekday_abbrev[$dateweekday];
        $dateformatstring = ' '.$dateformatstring;
        $dateformatstring = preg_replace("/([^\\\])D/", "\${1}".backslashit($dateweekday_abbrev), $dateformatstring);
        $dateformatstring = preg_replace("/([^\\\])F/", "\${1}".backslashit($datemonth), $dateformatstring);
        $dateformatstring = preg_replace("/([^\\\])l/", "\${1}".backslashit($dateweekday), $dateformatstring);
        $dateformatstring = preg_replace("/([^\\\])M/", "\${1}".backslashit($datemonth_abbrev), $dateformatstring);
        $dateampm = (substr($m,11,2) >= 12) ? __('pm') : __('am');
        $dateformatstring = preg_replace("/([^\\\])a/", "\${1}".backslashit($dateampm), $dateformatstring);
        $dateformatstring = preg_replace("/([^\\\])A/", "\${1}".backslashit($dateampm), $dateformatstring);
        $dateformatstring = substr($dateformatstring, 1, strlen($dateformatstring)-1);
    }
    $j = @date($dateformatstring, $i);
    if ( !$j ) {
    // for debug purposes
    //    echo $i." ".$mysqlstring;
    }
    return $j;
}

3.Portable Object のコンパイル

2.0.x、2.1.x、いずれの場合も、編集した ja_XXX.po ファイルをコンパイルします。
コンパイルするには、poEDIT または msgfmt を利用します。poEDIT によるコンパイルが簡単ですが、このエントリーでは説明を省略します(順序が逆になりますが、後日ご紹介します)。

以上です。
なお管理画面の「時間のフォーマット」で日本語が適用されない(下記)のは、サンプル表示のために mysql2date 関数を起動していないためですので心配ありません。

「時間のフォーマット」

Comments [0] | Trackbacks [0]
2007年3月14日

WordPress の月および曜日を英語表記にする

March 14,2007 12:30 AM
Tag:[, , ]
Permalink

WordPress における日付/時間の表示とフォーマット変更方法」でフォーマット文字の一覧を示しましたが、日本語版 WordPress では、月および曜日は日本語で表示されます。これを英語表記に変更する方法を紹介します。

1.変更対象のフォーマット文字

英語表記に変更するフォーマット文字は下記の4種類です。

出力される日付文字列の書式(抜粋)
単位フォーマット文字意味日本語表記英語表記
Fフルスペル1月 - 12月January - December
M3文字の省略形式1月 - 12月Jan - Dec
曜日D3文字の省略形式月 - 日Mon - Sun
lフルスペル月曜日 - 日曜日Sunday - Saturday

2.変更方法

wp-includes/locale.php をダウンロードし、任意のエディタで開き、下記リストのように修正します(青色は修正した箇所)。修正が面倒な方は変更済のファイルを用意しましたので、下記のリンクよりダウンロードし、現在お使いの wp-includes/locale.php と入れ替えてください(locale.php は「ローカル.php」ではなく「ロケール.php」と読みます)。

locale.zip / locale.lzh

ファイルのご利用および質問に対する回答等について、ご支援・ご賛同くださる方からの寄付をお待ち申し上げます。

手修正で「'」や「;」がもれるとページが正常に表示されなくなりますので編集は十分注意して行ってください。

<?php
// Date and Time
 
// The Weekdays
$weekday[0] = 'Sunday';
$weekday[1] = 'Monday';
$weekday[2] = 'Tuesday';
$weekday[3] = 'Wednesday';
$weekday[4] = 'Thursday';
$weekday[5] = 'Friday';
$weekday[6] = 'Saturday';
 
// The first letter of each day.  The _%day%_initial suffix is a hack to make
// sure the day initials are unique.  They should be translated to a one
// letter initial.  
$weekday_initial['Sunday']    = 'Sun';
$weekday_initial['Monday']    = 'Mon';
$weekday_initial['Tuesday']   = 'Tue';
$weekday_initial['Wednesday'] = 'Wed';
$weekday_initial['Thursday']  = 'Thu';
$weekday_initial['Friday']    = 'Fri';
$weekday_initial['Saturday']  = 'Sat';
 
foreach ($weekday_initial as $weekday_ => $weekday_initial_) {
  $weekday_initial[$weekday_] = preg_replace('/_.+_initial$/', '', $weekday_initial_);
}
 
// Abbreviations for each day.
$weekday_abbrev['Sunday']    = 'Sun';
$weekday_abbrev['Monday']    = 'Mon';
$weekday_abbrev['Tuesday']   = 'Tue';
$weekday_abbrev['Wednesday'] = 'Wed';
$weekday_abbrev['Thursday']  = 'Thu';
$weekday_abbrev['Friday']    = 'Fri';
$weekday_abbrev['Saturday']  = 'Sat';
 
// The Months
$month['01'] = 'January';
$month['02'] = 'February';
$month['03'] = 'March';
$month['04'] = 'April';
$month['05'] = 'May';
$month['06'] = 'June';
$month['07'] = 'July';
$month['08'] = 'August';
$month['09'] = 'September';
$month['10'] = 'October';
$month['11'] = 'November';
$month['12'] = 'December';
 
// Abbreviations for each month. Uses the same hack as above to get around the
// 'May' duplication.
$month_abbrev['January'] = 'Jan';
$month_abbrev['February'] = 'Feb';
$month_abbrev['March'] = 'Mar';
$month_abbrev['April'] = 'Apr';
$month_abbrev['May'] = 'May';
$month_abbrev['June'] = 'Jun';
$month_abbrev['July'] = 'Jul';
$month_abbrev['August'] = 'Aug';
$month_abbrev['September'] = 'Sep';
$month_abbrev['October'] = 'Oct';
$month_abbrev['November'] = 'Nov';
$month_abbrev['December'] = 'Dec';
 
foreach ($month_abbrev as $month_ => $month_abbrev_) {
  $month_abbrev[$month_] = preg_replace('/_.+_abbreviation$/', '', $month_abbrev_);
}
 
?>

修正内容に誤りがありましたらご指摘ください。

このファイルを編集する方法が最適であるかという点については、今回は「WordPress のローカライズ機能を無効にする手法」という観点で、この方法を紹介しています。ローカライズ機能で用いる po ファイルを修正・コンパイルという、本来のお作法があることは認識しています。

なおローカライズについて書き始めると長くなりそうでしたので、また別の機会にエントリーしたいと思います。

6.参考・関連リンク

Comments [1] | Trackbacks [8]
Now loading...
Introduction
List of "ローカライズ"
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.12