はじめに#
Omeka Sのテーマ開発において、多言語化の実装方法に関する日本語の情報は限られています。本記事では、Omeka Sのカスタムテーマを多言語対応させる具体的な手順と、実装時の注意点について解説します。
- Omeka Sの翻訳システムの仕組み
- テーマの多言語化に必要なファイル
- ステップバイステップガイド
- よくある間違いと解決方法
- 実装例
- トラブルシューティング
1. Omeka Sの翻訳システムの仕組み#
Omeka Sはgettext という標準的な翻訳システムを使用しています。このシステムでは:
.poファイル:人間が読み書きできる翻訳ソースファイル.moファイル:コンパイル済みのバイナリファイル(実際に使用される)$translate()関数:PHPテンプレート内で翻訳を適用
2. テーマの多言語化に必要なファイル#
必要なディレクトリ構造#
3. ステップバイステップガイド#
ステップ1:theme.iniの設定#
config/theme.iniファイルの[info]セクションに以下の行を追加します:
⚠️ 重要: has_translations = "true"がないと、翻訳ファイルが読み込まれません。
ステップ2:翻訳ファイルの作成#
2.1 POファイルの作成#
language/ja.poを作成します:
2.2 MOファイルのコンパイル#
POファイルをMOファイルにコンパイルします:
ステップ3:テンプレートでの翻訳の使用#
PHPテンプレート内での使用#
実装例#
4. よくある間違いと解決方法#
❌ 間違い1:Module.phpを作成する#
解決: テーマではModule.phpは不要です。has_translations = "true"だけで十分です。
❌ 間違い2:大文字・小文字の不一致#
解決: 翻訳キーは大文字・小文字を区別します。必ず一致させてください。
❌ 間違い3:言語コードの間違い#
5. 実装例#
言語バッジの多言語表示#
アイテム数の表示#
0
6. トラブルシューティング#
翻訳が反映されない場合のチェックリスト#
- theme.iniの確認
1
2. MOファイルの確認
2
3. キャッシュのクリア
* ブラウザ:Ctrl+Shift+R(Windows/Linux)、Cmd+Shift+R(Mac)
* Docker使用時:コンテナを再起動
3
4. 言語設定の確認
* Omeka S管理画面 → サイト設定 → 言語を「日本語」に設定
* ユーザー設定 → 言語を「日本語」に設定
デバッグ方法#
4
まとめ#
Omeka Sテーマの多言語化は、以下の3つのステップで実現できます:
theme.iniにhas_translations = "true"を追加language/ディレクトリに翻訳ファイルを配置- テンプレート内で
$translate()関数を使用
Module.phpやmodule.config.phpは不要で、シンプルな設定で多言語化が可能です。
参考リンク#
この記事は実際のOmeka Sテーマ開発経験に基づいて作成されました。バージョン4.1.0で動作確認済みです。