0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 24.04上のsdapsを日本語対応してみた

Posted at

はじめに

現在のsdaps-jaはUbuntu 20.04 LTSがベースになっています。

コンテナで安定して動作しているので問題はないのですが、最新版とは少し距離が空いてしまいました。

検証用のサンプルを利用してコンテナのビルドとチェックをしていきます。

コンテナを作成するレシピはGitHubで公開しています。

またビルドしたコンテナはDockerHubで公開しています。

検証用には次のプロジェクトを利用しています。

Ubuntu 24.04ベースでのコンテナの作成

Ubuntu PPAで作者がnoble(Ubuntu 24.04)用に最新版を登録しているので、これをベースに検証していきます。

基本的にはUbuntu 20.04と同様の変更動作しますが、既知のバグ修正が含まれているため差分のみを適用しています。

そのためlatex.pyファイルだけ1.9.13ベースのものに差し替えています。

主な修正のポイント

海外で作成されたアプリケーションの日本語について検討が必要な部分は主に印刷に関連する部分です。

これはフォントに関連することが多く、コードを綺麗に掻き分けることが難しいところです。

詳細は GitHubの docker-sdaps-ja に添付している(https://github.com/YasuhiroABE/docker-sdaps-ja/blob/141b7d6db699508e439f802668d41a1ab033c216/README.md)[パッチファイル]を参照してください。

コンテナの動作確認

22.04までと同様の変更を行って問題がないか確認します。

既知の問題

単一選択問題について、reportlabを経由したレポートには結果が出力されません。

reportlabに出力ないsinglechoiceの例
  \begin{choicegroup} [singlechoice] {choicegroup test}
    \choice{choice1/選択1}
    \choice{choice2/選択2}
    \choice{choice3/選択3}
    \question{question1/質問1}
    \question{question2/質問2}
    \question{question3/質問3}
  \end{choicegroup}

この問題はオリジナルのsdapsでも引き続き存在しています。

sdaps report texであれば問題なく出力されますし、CSVの出力を直接処理するようにしているため、あまり影響がなく、私も放置しています。

フォントの準備

Ubuntu 22.04と同じDockerfileでバージョンだけ変更するとIPAPMincho.tfmが発見できないとエラーになるため、fonts-ipafont fonts-ipaexfontを加えています。

またReportLabの出力にはTakaoフォントを利用しているので少なくともfonts-takao-pgothicの導入が必要です。

Dockerfileではfonts-takaoを明示的に導入するようにしています。

drwxr-sr-x 2 100999 yasu  4096 Sep  6 14:38 .
drwxrwsrwx 3 yasu   yasu  4096 Sep  6 14:37 ..
-rw-r--r-- 1 100999 yasu   593 Sep  6 14:30 info
-rw-r--r-- 1 100999 yasu   593 Sep  6 14:30 info~
-rw-r--r-- 1 root   yasu   410 Sep  6 14:37 log
-rw-r--r-- 1 100999 yasu  4124 Sep  6 14:23 questionnaire.aux
-rw-r--r-- 1 100999 yasu 55135 Sep  6 14:23 questionnaire.log
-rw-r--r-- 1 100999 yasu     0 Sep  6 14:23 questionnaire.out
-rw-r--r-- 1 100999 yasu 27096 Sep  6 14:23 questionnaire.pdf
-rw-r--r-- 1 100999 yasu  8657 Sep  6 14:23 questionnaire.sdaps
-rw-r--r-- 1 100999 yasu   100 Sep  6 14:23 questionnaire.sdapsarraytic
-rw-r--r-- 1 100999 yasu   100 Sep  6 14:23 questionnaire.sdapsarraytoc
-rw-rw-rw- 1 100999 yasu  2424 Sep  6 14:23 questionnaire.tex
-rw-r--r-- 1 100999 yasu   750 Sep  6 14:23 sdaps.opt
-rw-r--r-- 1 100999 yasu 10036 Sep  6 14:23 sdapsreport.cls
-rw-r--r-- 1 root   yasu 32768 Sep  6 14:37 survey.sqlite
-rw-r--r-- 1 100999 yasu  1473 Sep  6 14:23 translator-sdaps-dictionary-English.dict

古いバージョンのsdapsで作成された質問票を最新版で処理をする際の問題

CSVの出力差などを確認するために、Ubuntu 22.04ベースで作成した質問票をベースにテストした時に遭遇した問題についてです。

DockerHubにはメインで利用している sdaps-ja:ub2000-5 イメージの他に、sdaps-ja:ub2204-20231004 も登録しています。

基本的にバージョンが違ってもQRコードになる質問表IDは同じになるので、回収した質問票を再度スキャンする必要はありません。

しかし質問票を生成したsdapsのバージョンと、sdaps recignizesdaps reportなどの後工程を実行するコマンドは全て同じでなければ出力がおかしくなる場合があります。

そのため必ずバージョンを変更した時には、sdaps setupに相当する作業を繰り返し実行する必要があります。

ただ、この時に質問票が少しでも変更されているとIDが変更になってしまい、以前回収した質問票のスキャンデータが利用できなくなるので注意してください。

コードはpythonなので、質問票IDが違ったとしても実質的な体裁が変更されていなければ、コードを変更して無視するようにすれば問題なく処理できます。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?