概要

デフォルト設定のArchivematicaに日本語ファイル名のファイルを入力すると、「ユースケース公募提案書.docx」というファイル名は以下のように変換されます。

yu-suke-suGong_Mu_Ti_An_Shu_.docx

このファイル名変換をカスタマイズする方法について説明します。

概要

ファイル名の変換は以下で行われています。

https://github.com/artefactual/archivematica/blob/qa/1.x/src/MCPClient/lib/clientScripts/change_names.py

具体的には、以下です。

decoded_name=unidecode(basename)

Google Colabでの実行例は以下です。

https://colab.research.google.com/github/nakamura196/000_tools/blob/main/unidecodeを試す.ipynb

カスタマイズ

今回は、pykakasiを使用してみます。

https://codeberg.org/miurahr/pykakasi

また、DockerでArchivematicaを起動しているとします。以下の記事を参考にしてください。

まず、以下にpykakasiを追記します。

https://github.com/artefactual/archivematica/blob/qa/1.x/requirements-dev.txt

そして、以下のファイルも修正します。

https://github.com/artefactual/archivematica/blob/qa/1.x/src/MCPClient/lib/clientScripts/change_names.py

iiifi#k#kkkk#cV#ARdmmmrmaaaaaoELEepppopkkkkknRLLPfooomoaaaaavSeOLrrrrssssseItWAci#dtttutiiiiirOtEChfen....tNeDEadcorsip=sssser_Mnbeosehdyeeeer=sCEgarcduekptttt,HNesaoetcayMMMM="AT_eiddiokkoooo1dR_nnse_ldaaddddk.iSCaaedneskeeeea1gHmm_aia((((k0i=AeeVnmis""""a.tR(aaemiHKJrs"srb=lmp.""""ie=a=ue=ok,,,,.+a.seragnc"e"E=ctk""""e"do_n"roaaaaHt$m"a:runus"""eCIapmonvni)))podieriei(bn$fl)(drd)uv"ee:"ete###re.w(ccecnrsrhoro"tpp"ad.d)elu[nederin^g(o(tcaeb(#)(t-_ab"uznsaaAaes"t-mne)iZean[o0ma1n-rem]9e)ec\c)h-ea_ir.va\ec(dt\e)ar]ns")emptyfilename.")

上記の修正を加えて、Archivematicaを再ビルドした結果、以下のようなファイル名に変換されるようになりました。

yuusukeesukouboteiansho.docx

まとめ

ファイル名の変換については、METSファイルの中で、以下のように記載されています。

<premis:eventOutcomeDetailNote>Originalname="%transferDirectory%objects/.docx";newname="%transferDirectory%objects/yuusukeesukouboteiansho.docx"</premis:eventOutcomeDetailNote>

そのため、ファイル名の変換ルールを気にする必要はないかもしれませんが、参考になりましたら幸いです。