テーマの日本語化

閲覧数: 42(1)

今回は単なる「翻訳」とかではなくて「文化的」な面での日本語化についての対応。今回の元になったテーマ「Fotografie」は英語圏の文化で作られているので、例えば日付のフォーマットなどは日本的とは言い難いものがある。WordPressそのものとしてはもちろん国際化対応されているので「2018年4月30日」などの日本的なフォーマットでも表示可能ではあるのだが。テーマの作りとしてそこまで意識されていないと、単なる「テーマ翻訳」ではいろいろと不都合が生じる事がある。

前回「テーマ翻訳」では、用意されていたテンプレートをベースに「日本語」用の翻訳ファイルを用意することで「日本語」対応可能と書いた。概ね間違いではないが冒頭で書いたように、単に翻訳ファイルを用意しただけでは「日本語」の文化的な対応がされないということ。

投稿日をクリック」するとその月のアーカイブを表示する仕掛けを導入しているが、テーマ標準のフォーマットでは「April 2018」を日本語化した「4月 2018」と表示される。日本人としてはやはり「2018年4月」と表示して欲しいところ。この程度は翻訳ファイルで対応可能。

ところが翻訳ファイルのみの対応ではテーマが持っている「パンくずリスト」機能で不具合が発生することが判明。「2018」と表示する変数「’Y’」に対して「’Y年’」と翻訳ファイルを設定することで「2018年」と表示させることは可能。この翻訳結果を「パンくずリスト」がアーカイブに対してそのまま使用するので「/2018」というアーカイブに対して「/2018年」を表示しようとして「404エラー」を出してしまう。原因は「パンくずリスト」側の記述。英語圏であれば問題無いソースコードも国際化すると不具合が出る典型的な例。

パンくずリストではアーカイブ「2018年4月」を「ホーム >> 2018年 >> 4月」と表示して欲しいが、リンク先は「2018/04」でなければならなず、置換えた文字をそのままアーカイブ先としては使用できない。この「パンくずリスト」の表示部分を抜き出したのがこれ。

( is_month() ) {
echo sprintf( $link, esc_url( get_year_link( get_the_time( __( 'Y', 'fotografie' ) ) ) ), get_the_time( __( 'Y', 'fotografie' ) ) ) ;

「get_year_link()」の引数は「2018」であるべきところ「2018年」となってしまっている。ここは翻訳する必要が無い。なので以下のように修正する。

( is_month() ) {
echo sprintf( $link, esc_url( get_year_link( get_the_time( 'Y' ) ) ), get_the_time( __( 'Y', 'fotografie' ) ) ) ;

これで表示は「ホーム >> 2018年 >> 4月」であるが「2018年」のリンク先は「2018」となり、正しく年別アーカイブのページへリンクされるようになる。投稿日をクリックすると月別アーカイブページへリンクする際にも「2018年4月30日」という表示に対して、実際のリンク先としては「2018/04」と指定しているのは言うまでもない。

「breadcrumb.php」はテーマの「inc/」フォルダにファイルとして存在している。その中で「fotografie_breadcrumb()」関数として定義されているが、親テーマでも同じ関数名が定義されているので、子テーマ側では別の名前に変更して定義する。

「fotografie_breadcrumb2()」などの単純な名前で十分である。この「breadcrumb.php」を親テーマ側では「functions.php」内でインクルードすることで関数として使用できるようにしているが、子テーマの場合はやり方が少し違う。子テーマの「functions.php」の中ほどに「get_template_part( ‘inc/template’, ‘tags’ )」という記述があり、ここで「inc/template-tags.php」を読込んでいる。

...
get_template_part( 'inc/template', 'tags' );
...

「fotografie_breadcrumb2()」関数が含まれた子テーマの「inc/breadcrumb.php」はこの「inc/template-tags.php」の中で読込む指定をする。指定方法は以下の通り。

...
get_template_part( 'inc/breadcrumb' );
...

「fotografie_breadcrumb2()」関数は「components/features/breadcrumb/breadcrumb.php」の「fotografie_breadcrumb()」関数を置換えて使用するので、以下のように書き換える。これで新しく作った関数で「パンくずリスト」が表示されるようになる。

...
if ( $enable_breadcrumb ) :
        fotografie_breadcrumb2();
...

英語圏のテーマに「日本的な」何かを期待するのは間違っているとしても、その英語圏のテーマを選択してしまった「責任」はあるので、出来るだけ「日本的な」何かに近づける努力は必要だと思う。単に翻訳して終わりでは無かった教訓として。

タイトル画像は「成田に帰ってきたJL414」から見えるボーディングブリッジ。ドアが開いたら「日本」であるw

最終更新日: 2021年2月27日

カテゴリー公開, 閑話(IT)タグ, , ,
鬼門

俗語としての「鬼門」- Wikipediaより 鬼門は本来呪術的な意味を持つ言葉であるが、転じて「よ  続きを読む

コンテナとFirewall
blank

三日連続のdockerネタです。前回の「コンテナの自動起動」でサーバーを再起動した時にコンテナ(ph  続きを読む

SWIPERでSLIDER
blank

無料テーマを独自に改善する活動の一環として、前回は「おすすめ記事」を表示する部分について書きました。  続きを読む

祝リニューアル
blank

かなり大胆に、動きを変えました。鬼門でしょうかw まず、トップページで表示されるカテゴリーを「IT閑  続きを読む

ElasticPress 3.5
blank

Elasticsearch用のプラグインであるElasticPressがメジャーバージョンアップ(3  続きを読む

アクセシビリティ対策
blank

テーマカスタマイズの一環で、トップページに一覧表示されている「写真を左右交互に表示する」ようにした際  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください