Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@iwaim@github

WordPressプラグインを題材にGettextでの翻訳方法を紹介

More than 5 years have passed since last update.

はじめに

WordPressのプラグインはGettextの仕組みを使って国際化を実現しています。簡単なサンプルは以下のようなコードになります。

翻訳前の表示

docja-001.png

Gettextのpotファイル、poファイル、moファイル

Gettextを使った国際化では以下のようなファイルが存在します。

簡単にいえば、それぞれは次のようなファイルとなっています。

  • potファイル:プログラム等から国際化対応の文字列を抜き出したファイル
  • poファイル:国際化対応の文字列と、その文字列をある言語に翻訳したときの対応を示したファイル

今回のサンプルプラグインのpoファイルから1箇所だけ抜き出します。

doc-ja-sample-ja.po
#: ../doc-ja-sample.php:33
msgid "Hello!"
msgstr "こんにちは!"

これをみれば想像がつくとは思いますが、プログラム内に記述された文字列「Hello!」に対応する日本語翻訳が文字列「こんにちは!」ということを示しています。大雑把に言えば「msgid」の部分が翻訳前の文字列であり、「msgstr」の部分が翻訳後の文字列となるのです。

このようにそれぞれの文字列を翻訳し、最後にpoファイルからmoファイルを生成して適切な場所に配置すれば翻訳結果が反映されることとなります。

つまり、Gettextを使ったアプリケーションの日本語翻訳の作業は、poファイルの中にある「msgstr」が空のもの(もしくは間違っているもの)を適切な日本語に翻訳する作業となります。

日本語翻訳した後の表示

docja-002.png

まとめ

  • Gettextを使ったアプリケーションの国際化はpotファイル、poファイル、moファイルで実現されている
  • Gettextを使ったアプリケーションの国際化の場合、poファイル内の文字列が翻訳対象である

Doc-ja Advent Calendar 2013の3日目はsmellmanさんです。transifexの使い方などを書いてくださるようです。楽しみですね。

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
iwaim@github
ウェブ屋。Vine Linux Developer。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?