LoginSignup
1
0

More than 1 year has passed since last update.

人名情報を正確に管理できる業務アプリ基盤 ~IPA文字情報基盤を活用して~

Posted at

odooでのFont-Family

IPA文字情報基盤で整備されたIPAmj明朝フォントIPAmjMincho)を活用し、業務アプリ基盤であるodooで日本語の人名情報をより正確に表示・管理できるようにします。
image.png

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は、次の流れで、自動生成されているようです。

  1. Odoo Unicode Support Notoフォントを追加しているのは、o-add-unicode-support-font関数です。これは、/web/static/src/scss/utils.scssで定義されています。
  2. /web/static/src/scss/bootstrap_overridden.scssで、$font-family-sans-serif変数の既定値が定義されます(o-add-unicode-support-font関数の呼び出し)。
  3. /web/views/webclient_templates.xml<template id="_assets_backend_helpers"/>で、/web/static/src/scss/bootstrap_overridden.scssへの<link/>を定義しています。
  4. /web/views/webclient_templates.xml<template id="assets_backend"/>の先頭で、templateのweb._assets_backend_helpersをt-callしています。
  5. その後、<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を追加します。

ipamjmincho.scss
$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.xml
:
<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)の例として、東京都葛飾区と奈良県葛城市について、確認します。
image.png

住所 MJ文字図形名 画像 Moji_Joho IVS
東京都葛飾区 MJ022336 image.png <845B,E0103>
奈良県葛城市 MJ022335 image.png <845B,E0102>

odooのcontacts

実際にodooのcontactsアプリで、地名を登録して確認しました。

image.png

image.png

まとめ

  1. Assets Managementのしくみで、odooを拡張することができることを確認しました。
  2. 実際には、$font-family-sans-serif変数の先頭に、IPAmjMinchoを追加する方法で、"web._assets_backend_helpers"を拡張しました。
  3. 東京都葛飾区と奈良県葛城市を例に、IPA文字情報基盤で整備されたIPAmj明朝フォントIPAmjMincho)をodooで利用できることを確認しました。

ソースコード: https://github.com/jp-96/odoo-fonts

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0