odooでのFont-Family
IPA文字情報基盤で整備されたIPAmj明朝フォント(IPAmjMincho
)を活用し、業務アプリ基盤であるodooで日本語の人名情報をより正確に表示・管理できるようにします。
odooでは、すでに、多言語に対応したOdoo Unicode Support Noto
フォントがデフォルトに設定されており、日本語も表示することが可能です。
Odoo Unicode Support Noto
フォントは、Font-Family
としてCSS(SCSS)で設定されていますが、その設定の前(先頭)に、IPAmjMincho
を追加し、IPAMj明朝フォントが優先的に適用されるようにします。
Assets Management
odooには、Assets Management がありますので、このメカニズムを使って、Font-Family
の先頭にIPAmj明朝フォント(IPAmjMincho
)を追加します。
web.assets_backend
自動生成されるweb.assets_backend.css
内のFont-Family
で、Odoo Unicode Support Noto
が指定されているのですが、その前(先頭)にIPAmjMincho
が追加されるようにします。
結果的に、次のようなCSSファイルが生成されるように拡張します。
:
font-family: IPAmjMincho, "Odoo Unicode Support Noto", "Lucida Grande", Helvetica, Verdana, Arial, sans-serif;
:
参考:Main bundles
自動生成の流れ
Font-Family
を含む、web.assets_backend.cssは、次の流れで、自動生成されているようです。
-
Odoo Unicode Support Noto
フォントを追加しているのは、o-add-unicode-support-font
関数です。これは、/web/static/src/scss/utils.scss
で定義されています。 -
/web/static/src/scss/bootstrap_overridden.scss
で、$font-family-sans-serif
変数の既定値が定義されます(o-add-unicode-support-font
関数の呼び出し)。 -
/web/views/webclient_templates.xml
の<template id="_assets_backend_helpers"/>
で、/web/static/src/scss/bootstrap_overridden.scss
への<link/>
を定義しています。 -
/web/views/webclient_templates.xml
の<template id="assets_backend"/>
の先頭で、templateのweb._assets_backend_helpers
をt-callしています。 - その後、
<template id="assets_backend"/>
内で、間接的に$font-family-sans-serif
変数が参照されています。
拡張方法
自動生成の流れから、$font-family-sans-serif
変数の既定値の設定後、参照される前に、その変数の先頭にIPAmjMincho
を追加する方法で拡張します。
具体的には、templete id='web._assets_backend_helpers'
を拡張します。
IPAmjMincho
の追加
join
関数を使って、$font-family-sans-serif
変数の先頭に、IPAmjMincho
を追加します。
$font-family-sans-serif: join(IPAmjMincho, $font-family-sans-serif, $separator: comma);
Adding files in an asset bundle
Adding files in an asset bundle を参考に、scssへのlinkを追加し、web._assets_backend_helpers
を拡張します。
:
<template id="_assets_backend_helpers" inherit_id="web._assets_backend_helpers">
<xpath expr="//link[last()]" position="after">
<link rel="stylesheet" type="text/scss" href="/ipamjmincho/static/src/scss/ipamjmincho.scss"/>
</xpath>
</template>
:
東京都葛飾区と奈良県葛城市
異体字(Unicode IVS/IVD)の例として、東京都葛飾区と奈良県葛城市について、確認します。
住所 | MJ文字図形名 | 画像 | Moji_Joho IVS |
---|---|---|---|
東京都葛飾区 | MJ022336 | ![]() |
<845B,E0103> |
奈良県葛城市 | MJ022335 | ![]() |
<845B,E0102> |
odooのcontacts
実際にodooのcontactsアプリで、地名を登録して確認しました。
まとめ
- Assets Managementのしくみで、odooを拡張することができることを確認しました。
- 実際には、
$font-family-sans-serif
変数の先頭に、IPAmjMincho
を追加する方法で、"web._assets_backend_helpers"を拡張しました。 - 東京都葛飾区と奈良県葛城市を例に、IPA文字情報基盤で整備されたIPAmj明朝フォント(
IPAmjMincho
)をodooで利用できることを確認しました。