ホーム 記事一覧 ブック DH週間トピックス 検索 このサイトについて
English
Omeka Sテーマの多言語化

Omeka Sテーマの多言語化

はじめに Omeka Sのテーマ開発において、多言語化の実装方法に関する日本語の情報は限られています。本記事では、Omeka Sのカスタムテーマを多言語対応させる具体的な手順と、実装時の注意点について解説します。 目次 Omeka Sの翻訳システムの仕組み テーマの多言語化に必要なファイル ステップバイステップガイド よくある間違いと解決方法 実装例 トラブルシューティング 1. Omeka Sの翻訳システムの仕組み Omeka Sはgettext という標準的な翻訳システムを使用しています。このシステムでは: .poファイル:人間が読み書きできる翻訳ソースファイル .moファイル:コンパイル済みのバイナリファイル(実際に使用される) $translate()関数:PHPテンプレート内で翻訳を適用 2. テーマの多言語化に必要なファイル 必要なディレクトリ構造 your-theme/ ├── config/ │ └── theme.ini # 重要:has_translations = "true"を追加 ├── language/ │ ├── template.pot # 翻訳テンプレート(オプション) │ ├── ja.po # 日本語翻訳ソース │ └── ja.mo # 日本語翻訳バイナリ └── view/ └── (各種テンプレートファイル) 3. ステップバイステップガイド ステップ1:theme.iniの設定 config/theme.iniファイルの[info]セクションに以下の行を追加します: [info] name = "Your Theme Name" version = "1.0.0" author = "Your Name" description = "Theme description" omeka_version_constraint = "^4.1.0" has_translations = "true" # ← この行が重要! ⚠️ 重要: has_translations = "true"がないと、翻訳ファイルが読み込まれません。 ...

Bootstrap 5を用いたOmeka Sのテーマver 4.0.2をリリースしました。

Bootstrap 5を用いたOmeka Sのテーマver 4.0.2をリリースしました。

概要 Bootstrap 5を用いたOmeka Sのテーマを更新しました。今回の更新で追加した機能などについて紹介します。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/releases/tag/4.0.2 新機能 詳細検索ボタンのリンク設定 テーマの設定画面に「Advanced Search URL」という項目を追加しました。 上記の例では、「page/advanced」というページに遷移する設定を行っています。 具体的には、以下の「詳細検索」のボタンをクリックした際に、ここで設定したURLに遷移します。(未設定の場合は、Omekaの通常の詳細検索のページに遷移します。) 以下の記事で、独自の検索ページを作成する方法を紹介しました。こちらと組み合わせて使用することで、独自の検索ページとの画面遷移を実現できます。 不具合の修正 ソート 以下のように、ソート項目が表示されない不具合がありました。 以下のように、$sortByとして使用していたものを、$sortConfigに変更する必要がありました。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/commit/5928a37fc4af1cb26ac0b6df13c25cf4f57eb66e#diff-2388527aaa944d338d7a5144cb4e49aa659702c2d628d12103e090f7cd6ed3bc Advanced Search Advanced Searchモジュールと組み合わせて使用した際、レイアウトが崩れる箇所がありました。まだ統一感が取れていない点がありますが、改善しました。 まとめ Omeka Sの利用にあたり、お役に立ちましたら幸いです。

【Omeka S テーマ開発】Bootstrap 5を用いたOmeka Sテーマを更新しました。

【Omeka S テーマ開発】Bootstrap 5を用いたOmeka Sテーマを更新しました。

Bootstrap 5を用いたOmeka Sテーマを以下で公開しています。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5 今回ご提案をいただき、以下に示すような作成日/更新日を追加しました。 また以下のように、Omeka Sのversion 4が公開されましたので、そちらに対応しました。 https://forum.omeka.org/t/omeka-s-version-4-0-0/16502 ただ、version 3からversion 4への更新にあたり、両versionで共通に使用できないメソッドが存在したため、version 3向けのリリースと、version 4向けのリリースをそれぞれ作成しました。 version 3向け https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/releases/tag/3.0.0 version 4向け https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/releases/tag/4.0.0 今後、基本的にはversion 4向けに改修を加えていくことを考えていますが、参考になりましたら幸いです。

【Omeka S テーマ開発】Bootstrap 5を用いたOmeka Sテーマを公開しました。

【Omeka S テーマ開発】Bootstrap 5を用いたOmeka Sテーマを公開しました。

Bootstrap 5を用いたOmeka Sテーマを公開しました。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5 以下、開発者向けの情報を含む、使用方法について説明します。 テーマの設定画面において、以下の設定が可能です。 上記の設定内容から、一部を取り上げて説明します。 Footer Content フッターに表示する文字列を入力します。以下のように、HTMLを入力することもできます。 Site Sub Title サブタイトルを設定すると、以下のように、トップページにサブタイトルが表示されます。なお、本モジュールは、「Next」モジュールが有効の場合のみ機能します。 https://github.com/Daniel-KM/Omeka-S-module-Next Top Image サイトのトップページの背景画像に使用する画像を選択します。なお、本モジュールは、「Next」モジュールが有効の場合のみ機能します。 https://github.com/Daniel-KM/Omeka-S-module-Next 当該ソースコードは以下です。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/layout/layout.phtml#L68-L112 また、次のように、Nextモジュールが有効な場合のみ、isHomePage関数が使用できます。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/layout/layout.phtml#L30-L36 したがっては、Nextモジュールがインストールされておらず、トップページに使用するページのURLなどが確定している場合には、独自に$isHomePage変数に値を与える関数を使用することも可能です。 Top Button url URLを設定すると、以下のように、設定したURLに遷移する「閲覧」ボタンがトップページに表示されます。 Sort properties ソートに使用する項目を入力します。 以下のように、カンマ区切りで、Termとラベルを設定します。 本設定により、以下のように設定内容が反映されていることが確認できます。 テーマのカスタマイズ内容は以下で確認できます。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/omeka/site/item/browse.phtml#L17-L42 Body properties 検索結果の一覧画面に使用する項目を入力します。 以下のように、カンマ区切りで、Termとラベルを設定します。 本設定により、以下のように設定内容が反映されていることが確認できます。 テーマのカスタマイズ内容は以下で確認できます。 次は、テーマの設定をロードしている部分です。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/omeka/site/item/browse.phtml#L44-L58 次は、ロードした設定に基づき、表示内容を修正している箇所です。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/omeka/site/item/browse.phtml#L184-L200 Layout for Browse Pages デフォルトの表示スタイルを設定します。 (2022年3月14日時点において、バグのため「List」を設定した際にうまく動作しません。修正予定です。) Show a link to collections in item pages? アイテムの詳細画面にアイテムセットへのリンクを付与するか否かを設定します。単一のアイテムセットを使用している場合などに「いいえ」を設定します。 ...

Omeka Sの日本語による全文検索の注意点とMroonga searchモジュール

Omeka Sの日本語による全文検索の注意点とMroonga searchモジュール

事象 Omeka Sは全文検索機能を提供していますが、残念ながら、デフォルトの設定では日本語検索がうまく機能しません。具体的には、部分一致検索がうまく機能しません。 例えば、以下のように「校異」という文字列がタイトルに含まれるアイテムが複数登録されている場合を想定します。 この時、画面左上部の全文検索フォームに「校異」と入力すると、検索結果は0件になります。 一方、「校異源氏物語」と入力すると、正しく検索結果が得られます。 本記事では、この問題に対する対応方法を紹介します。 標準機能での対応 対応策の一つとして、全文検索機能を使用せず、詳細検索において、「任意のプロパティに対する部分一致検索」を使用することが挙げられます。 具体的には、アイテムやアイテムセット、メディアの詳細検索画面から、以下の「値を検索」項目において、「[任意のプロパティ]」「含む」を選択した上で、検索語を入力します。この方法により、例えば「校異」という検索語による部分一致検索が可能です。 テーマの修正 上記では、管理画面での対応方法について説明しました。一方、公開画面においても全文検索フォームが以下のように提供されています。この全文検索フォームをそのまま提供すると、検索の挙動から利用者に混乱を招く恐れがあります。 対応方法の一つとして、テーマのプログラム修正が挙げられます。具体的には、以下の部分です。 https://github.com/omeka/omeka-s/blob/develop/application/view/common/search-form.phtml#L15-L20 この部分の修正方法として、以下の2点が挙げられます。なお、下記の2点の修正を含むテーマを以下からダウンロードいただけます。プログラムの修正等が難しい方は、以下をダウンロードの上、ご利用ください。 https://github.com/omeka-j/default/releases/tag/v1.6.3 上記のテーマは、テーマ名を「Default (CJK)」として、設定画面に全文検索フォームを表示するか否かのオプションを追加しています。また「表示する」に設定した場合、上述した、デフォルトの全文検索フォームではなく、「任意のプロパティに対する部分一致検索」を行うように修正しています。 以下では、このテーマの改修内容を参考に、プログラムの修正方法を示します。以下、プログラムの修正が必要になるため、発展的な内容になります。 (発展)対策1:全文検索フォームを隠す 例えば、全文検索のフォームの記述を削除することで、以下のように、全文検索フォームを隠すことができます。 具体的には、以下の部分を修正します。以下の例では、テーマの設定画面で表示・非表示を選択できるようにするため、themeSettingという関数を使用していますが、単純に、idがsearchのdivを削除またはコメントアウトすることで、検索フォームが非表示となります。 https://github.com/omeka-j/default/blob/develop/view/layout/layout.phtml#L73-L77 (発展)対策2:全文検索を「任意のプロパティに対する部分一致検索」に置き換える この方法では、以下のリンク先に示すように、テーマ側でsearch-form.phtmlを用意して、デフォルトの全文検索を行う記述を、「任意のプロパティに対する部分一致検索」を行うように書き換えます。 https://github.com/omeka-j/default/blob/develop/view/common/search-form.phtml 上記の2つの対応は、根本的な解決にはつながりませんが、応急処置の策として参考になりましたら幸いです。 Mroonga searchモジュールのインストール この問題を根本的に解決する方法として、以下のMroonga searchモジュールをインストールする方法が挙げられます。 github.com 上記のREADME.mdに記載があると通り、まずMySQLまたはMariaDBのMroongaプラグインを有効化します。 mroonga.org その上で、Omeka SのMroonga searchモジュールを通常の方法でインストールすることで、本記事で課題としているCJK対応の全文検索が可能になります。この場合、本モジュールを有効化するのみで、テーマの修正等は必要ありません!有益なモジュールを公開してくださっている開発者の方に深く感謝いたします。 一方、上記のリポジトリにも記載がある通り、以下の点に注意が必要です。 We have not heavily tested the Mroonga engine with large-sized data yet. なお、私も大規模なデータに対する動作検証はできていませんが、私の環境において、本モジュールが正しく動作することを確認済みです。 本モジュールの利用にあたっては、READMEファイルの内容を十分に検討した上でご利用いただくことを推奨します。 まとめ 以上、Omeka Sの日本語による全文検索の注意点とその対応方法をまとめました。今後、標準機能での対応が望まれますが、2022年3月時点での対応策として、本記事が参考になりましたら幸いです。