[ソフト] Poedit – POTファイルのローカライズツール

POTファイルとは

ソフトウェア開発者にとってローカライズは悩みどころだが、昨今ではGetTextというローカライズ用ライブラリを採用したアプリケーションが増えているらしい。有名なところではWordPressにもGetTextを利用したローカライズの仕組みが組み込まれている。

gettext – GNU Project – Free Software Foundation (FSF)
http://www.gnu.org/software/gettext/

POTファイルとは、GetTextで使われる翻訳リソースを定義したファイルである。

GetTextを用いたローカライズ方法 – Conyac
https://conyac.cc/ja/business/columns/localization_guide_po_pot

* POT (Potable Object Template) – ソースファイルから生成される翻訳リソースの基となるファイル
* PO (Portable Object) – POT Fileを基に各言語に翻訳したファイル
* MO (Machine Object) – PO Fileと同じ内容が記されたバイナリ形式のファイル .potファイルや現状の.poファイルを編集し、.poファイルと.moファイルとして出力できます。

Poedit – 翻訳エディタ

POTファイルベースの翻訳作業に便利な翻訳エディタ。ある案件で実際に使ってみたけど、軽く動くし操作も滑らかなので使い勝手が良い。翻訳作業の効率にはツールの使い勝手は重要。

The fastest and most convenient way to translate interfaces — Poedit
https://poedit.net/

[ソフト] PDFファイルを比較するには

2つのPDFファイルの文書を比較したかったので調べてみた。

Adobe Acrobat DC

まずは、そもそもAcrobatにそういう機能が無いのか。

2つのPDFを比較、ファイル比較ツール | Adobe Acrobat DC
https://acrobat.adobe.com/jp/ja/acrobat/how-to/compare-two-pdf-files.html

知らなかったんだけど、Adobe AcrobatにはStandard版とPro版があるとのこと。Pro版にはファイル比較ツールが搭載されているが、僕が持っているのはStandard版なので機能は搭載されていない。

PDF24 Tools

じゃ、無料で使えるツールは無いものかとググると、まずはオンラインのツールがヒットした。

PDFファイルの比較 – 100%無料 – PDF24 Tools
https://tools.pdf24.org/ja/compare-pdf

オンラインで2つのPDFファイルを比較する。アップロードしたPDFファイルをそれぞれテキスト化して比較しているっぽい。自分的にはこれで充分に用は足りるのだけど、見せ方としてオリジナルのPDFファイルの見栄えで違いをハイライトしてくれるとありがたいんだけど。

DiffPDF

こちらはWindows版のアプリ。

DiffPDF — PDF comparison GUI application
http://www.qtrac.eu/diffpdf.html

紹介元はこちら。

PDF比較、差分チェックに便利なツール①「DiffPDF」 | ドラブロ
https://www.doraxdora.com/blog/2017/07/14/post-1627/

試したみたんだけど僕にはNGだった。行単位で比較しているようなので、一方に行が追加されている(あるいは行が削除されている)と比較する行がずれせいで、その行から後ろは全不一致と判断されてしまう。文字単位でしか違いがないような細微な差分を取るような場合なら使えるだろうけど。

WinMerge + xdocdiff

で、同じ紹介元を見てみたら別のアプリもあった。

PDF比較、差分チェックに便利なツール②「WinMerge」 | ドラブロ
https://www.doraxdora.com/blog/2017/07/16/post-1669/

WinMargeは有名な差分ソフトだけど、プラグインを追加することでPDFをテキストに変換して読み込んで比較するというもの、上に記したオンラインツールの PDF24 Toolsと振る舞いは同じっぽい。

WinMerge – You will see the difference…
http://winmerge.org/

xdocdiff WinMerge Plugin -Compare Word, Excel, PowerPoint, pdf-
http://freemind.s57.xrea.com/xdocdiffPlugin/en/index.html

というわけで、常用するならWindowsアプリのWimMarge+xdocdiff、ちょっと使いたいだけならオンラインツールのPDF24 Toolsが使えそうかな。

[Unix] suできないユーザーへsuする

/etc/passwordでログインシェルに/sbin/nologinが指定されているユーザはsuできない。

そういったユーザには-sオプションでシェルを指定したらsuできる。

参考サイト

su できないユーザーへsu する
https://kazmax.zpp.jp/linux/nologin_to_su.html

【 su 】コマンド――スーパーユーザー(rootユーザー)の権限でシェルを実行する:Linux基本コマンドTips(67) – @IT
https://www.atmarkit.co.jp/ait/articles/1611/24/news028.html

[Apache] FastCGIの予備知識

以下の記事が分かりやすかったので覚書リンク。

nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する – Qiita
https://qiita.com/kotarella1110/items/634f6fafeb33ae0f51dc

CGI

  • Webサーバー上でPHP (動的コンテンツを生成する言語) を動作せるための仕組み。

FastCGI

  • CGIはユーザーから要求がある度にプロセスの生成と破棄を行う。
  • FastCGIは初回リクエスト時に起動したプロセスをメモリ上へ保持を行い、次回リクエストに対してはそのメモリに保持したプロセスの実行を行う。

Apacheの場合

  • PHPにはモジュール版とCGI版の二種類ある。
  • ApacheではモジュールとしてPHPスクリプトを起動することができる。
  • PHPをインストールすると自動的にPHPモジュールもインストールされ、 Apacheはデフォルトでそのモジュールを読み込む。
  • モジュール版はCGI版の逆で、WebサーバーのプロセスのなかでPHPが実行される。
  • CGI版は実行ファイル形式とも呼ばれ、Webサーバーとは別のプロセスで実行される。

[Apache] MPM (Multi-Processing Modules) の予備知識

MPM (Multi-Processing Modules) は、マシンのネットワークポートをバインドしたり、 リクエストを受け付けたり、リクエストを扱うよう子プロセスに割り当てたり、 といった役割を持つ。

Prefork

  • 複数の子プロセスをローンチする
  • 子プロセスは1度に1個のコネクションを処理する
  • Apache2のデフォルトMPM
  • Workerに比べてメモリ使用量が多い
  • 常に最小限のプロセスが実行されているので、リクエストは待たずに処理される

Worker

  • Preforkのように子プロセスを複数生成する
  • 子プロセスは多くのスレッドを実行する
  • スレッドは1度に1個のコネクションを処理する
  • マルチプロセス・マルチスレッドサーバーを実現
  • Preforkに比べてメモリ使用量が少ない

Event

  • Apache 2.4から採用
  • Workerと酷似しているが高ロードの管理用に設計されている
  • より多くのリクエストを同時に処理することができる
  • 他のMPMが直面する‘keep alive problem’を解決しようとするもの
  • クライアントは最初のリクエスト終了後もコネクションをオープンしたまま維持し、続くリクエストを同じソケットを使って送出することができる
  • 結果としてコネクションのオーバーロードが軽減される

コンパイルされているモジュールを調べる

ロードされているモジュールを調べる

現在有効なMPMを調べる

MPMを変更する

参考サイト

What is Apache MPM ( Prefork, Worker and Event )
https://tecadmin.net/apache-mpm-prefork-and-worker-and-event/

マルチプロセッシングモジュール (MPM) – Apache HTTP サーバ バージョン 2.4
https://httpd.apache.org/docs/2.4/ja/mpm.html

prefork – Apache HTTP サーバ バージョン 2.4
https://httpd.apache.org/docs/2.4/ja/mod/prefork.html

worker – Apache HTTP サーバ バージョン 2.4
https://httpd.apache.org/docs/2.4/ja/mod/worker.html

event – Apache HTTP Server Version 2.4
https://httpd.apache.org/docs/2.4/ja/mod/event.html