概要
Raspberry Pi(ラズパイ)でプログラムを触っていた際に、パッケージ内で見慣れない拡張子「.po」に出会いました。
調べてみたところ、これはソフトウェアの多言語化に使われる翻訳ファイルであることが分かりました。
本記事では、「.po」ファイルの用途や構成、関連するディレクトリ構造について解説します。
.poファイルとは?|ソフトウェア翻訳で使われる「Portable Object」
.poファイルとは、Portable Object(ポータブルオブジェクト)ファイルの略称で、ソフトウェアの**国際化(i18n)や地域化(L10n)**において使われる翻訳ファイル形式です。
この形式は、GNUプロジェクトの「gettext」というツールチェーンでよく使用されており、アプリケーション内のテキストを多言語化する際に欠かせません。
たとえば、GUIやCLI、マニュアルなどで表示される英語テキストを日本語やドイツ語に変換したい場合、.poファイルを用いて翻訳を管理することができます。
.poファイルの基本構成
.poファイルは、以下のような**「原文」と「翻訳」**のペアで構成されています:
msgid "Hello, world!"
msgstr "こんにちは、世界!"
msgid
:ソースコードに含まれるオリジナルのテキスト(英語など)msgstr
:それに対応する翻訳済みテキスト
翻訳がまだされていない箇所では、msgstr
が空の状態になっていることもあります。
LC_MESSAGESディレクトリとは?
gettextを利用するプロジェクトでは、翻訳ファイルが以下のようなディレクトリ構造で格納されることが一般的です:
project/
├── locale/
│ ├── ja/
│ │ └── LC_MESSAGES/
│ │ └── messages.po
│ ├── de/
│ │ └── LC_MESSAGES/
│ │ └── messages.po
この中で特に重要なのが**LC_MESSAGES
フォルダ**です。ここには翻訳元の.po
ファイルや、コンパイル済みの.mo
(Machine Object)ファイルが置かれ、アプリケーションの実行時に参照されます。
実際に見つけた使用例
今回私が見つけた例では、docs/source/local
以下の ja
や de
フォルダ内に LC_MESSAGES
ディレクトリがあり、それぞれに .po
ファイルが含まれていました。
ja/LC_MESSAGES/
→ 日本語翻訳用de/LC_MESSAGES/
→ ドイツ語翻訳用
このように、1言語につき1ディレクトリを用意し、その中に翻訳ファイルを配置することで、ソフトウェアやドキュメントの多言語化が実現されているのです。
まとめ
.po
は、ソフトウェアやドキュメントを多言語化するための翻訳ファイルmsgid
とmsgstr
で構成され、gettextを通じて利用されるLC_MESSAGES
内に.po
ファイルやコンパイル済み.mo
ファイルが格納される- Raspberry PiをはじめとするLinux系開発環境では、よく見かける形式
「.poファイルって何?」と思った方にとって、翻訳ファイルの基本が理解できる第一歩となれば幸いです。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!
ここまで読んでいただき、ありがとうございました。
最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!