Linux あれこれ

Linux 関連(一部 Windows11 )の備忘録です。

「Haiku」にて「qpdfview」を日本語化〈H136-5〉

登録日: 2021-11-03 更新日: 2021-11-11

前回、Haiku にて、Linux アプリをHaiku に移植するときに使われる環境 「Haikuports」を構築 しました。

すでに移植されているPDF ビュワーの「qpdfview-0.4.18」は日本語化されていないので、 日本語化にトライしてみました。その備忘録です。

-

-

追記:

2021-11-09

HaikuDepot において「qpdfview-0.4.18-5」になり、日本語化されました。 なので、本作業を行う必要はなくなりました。 Haiku でのアプリの移植作業の参考にはなると思います。

-

-

USB メモリに「nightly ビルド」の「Haiku R1/beta3」をインストール しました。システムとしては最新です。そこで作業しました。

-

-

使用したPC は「ASUS Chromebox CN60」で、 プロセッサは第4世代の「Intel Celeron 2955U 」です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

「前回の作業」

「レシピファイルについて」

「パッチファイルについて」

「ローカルで差分を作成」

「git で差分を作成」

「.patchset の正式な形式」

-

今回の作業:

1). 「レシピファイルを作成:」

2). 「パッチファイルを作成 (1/2):」

3). 「パッチファイルを作成 (2/2):」

-

「まとめ へ」

-

「目次詳細 へ」

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -

-

Haiku R1/beta3」のデスクトップ

-

「nightly ビルド」のデスクトップ画面:

→「nightly ビルド」は開発版と言えますが、更新の回数が多いので不具合が解消されている可能性があります。

壁紙は個人的に変更しています。

-

「nightly ビルド」のアイコン:

→立ち上げデバイス(ボリューム)には「てんとう虫」マークが付きます。

-

「qpdfview-0.4.18」のメニューを日本語化:

-

→多機能なので、日本語化した方が使いやすくなります。

-

「qpdfview-0.4.18」のヘルプ(目次)を日本語化:

-

→ヘルプの翻訳を日本語に切替えるには、通常は翻訳されないと思われる、ファイル名「help.html」を「help_ja.html」に翻訳(変更)します。ただし、コメントを読むとその修正が推奨されていました。

こちらの言語の切替えを翻訳ファイルの機能で代用すれば、他の言語でも使えます。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --

-

現在のシステムのバージョン:

-

2021-11-11 現在:

~> uname -v
hrev55632 Nov 10 2021 08:36:21

→「nightly ビルド」は、頻繁に更新されています。

-

時々、デスクトップが表示しきれないことがあるので、

もし、立ち上げで背景色のまま、デスクトップが表示されないときは「ココ 」を参照

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ---

-

1. 前回までの作業:

-

Linux アプリをHaiku に移植するときに使われる環境を準備:

「Haiku」にてアプリを日本語化する準備〈H136-1〉

-

参考となるアプリの移植例:

「Haiku」にてアプリを日本語化 「Koder」編〈H136-2〉

「Haiku」にてアプリをバージョンアップ「Notepadqq」編〈H136-3〉

「Haiku」にてアプリをバージョンアップ「FeatherPad」編〈H136-4〉

-

今回はその続きとなります。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----

-

2.「haikuports」ツリーにて、アプリを確認:

-


PDF ビュワーの「qpdfview-0.4.18」:

-

在り処の表示:
> cd ~/Git/haikuporter/

> haikuporter -o qpdfview
/boot/home/Git/haikuports/app-text/qpdfview
> cd ~/Git/haikuports/app-text/qpdfview/

> ls -1
additional-files
download             ←(ソースのダウンロード先)パッケージ化の時に自動作成
patches              ←(パッチファイルを置いておくフォルダ)
qpdfview-0.4.18.recipe     ←(レシピファイル: 必須)
work-0.4.18            ←(作業フォルダ)更新チェックの時に自動作成

> ls additional-files
qpdfview.rdef.in        ←(アプリのアイコンなどのリソースが定義されてます)

> ls patches
qpdfview-0.4.18.patchset  ←(ソースファイルの修正に使います)

→「.rdef.in 」が置かれている場所はアプリによってはソースの方にある場合もあります。 今回の場合は、パッケージ化のときに作業フォルダに自動でコピーされます。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -----

-

3. 「qpdfview」のインストール関連の情報を収集:

-

参考:

「qpdfview」のインストールの投稿:

-


1). 公式サイト:

qpdfview

-


2). ダウンロード:

qpdfview-0.4.18.tar.gz

2019-07-24

-

https://launchpad.net/qpdfview/trunk/0.4.18/+download/qpdfview-0.4.18.tar.gz

-

$ sha256sum qpdfview-0.4.18.tar.gz
cc642e7fa74029373ca9b9fbc29adc4883f8b455130a78ad54746d6844a0396c  qpdfview-0.4.18.tar.gz

-


3).インストール手順:

README より

「lrelease qpdfview.pro」、「qmake qpdfview.pro」、「make」を使ってビルド。 「make install」でインストールされます。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- -

-

4. 「qpdfview.pri」でインストールパスを定義:

-


1). インストール時のファイルの配置場所が定義されています

-

追記:

→レシピファイルにある「qmake」にて、必要な定義がされていれば、こちらを定義する必要はありませんでした。

-

ビルド時に使われる「qmake」にて使われる「インストールパス」のデフォルト値を設定しているのが「qpdfview.pri」です。

レシピファイルに記述される「qmake」と「qpdfview.pri」で「インストールパス」(インストール時の機能ごとのパスを定義する定数)を共用しています。

なので、「qmake」に定義されていないインストールバスは、「qpdfview.pri」の値が使われます。

-

レシピファイルでの設定例を抜粋:
 qmake ../qpdfview.pro \
        CONFIG+="without_ps without_cups without_synctex without_dbus without_signals" \
        TARGET_INSTALL_PATH=$appsDir/qPDFView \   ←(実行ファイル、つまりアプリの本体を配置)
        PLUGIN_INSTALL_PATH=$appsDir/qPDFView/lib \   ←(プラグインを配置)
        DATA_INSTALL_PATH=$appsDir/qPDFView/data \    ←(翻訳ファイルとヘルプファイルを配置)
        MANUAL_INSTALL_PATH=$manDir         ←(マニュアルを配置)

→「DATA_INSTALL_PATH」が定義されていないと「実行ファイル」は翻訳されません。

一緒にヘルプファイルも配置されますが、それだけではヘルプファイルは翻訳(切替)されません。

-

$appsDir」を使っているのは、パッケージ化するときのインストール先は「パッケージ内のアプリケーションフォルダ」になるからです。

-

参考: Haiku で使われる環境変数:

$appsDir」以外に「$dataDir」とかあります。

環境変数については「HaikuPorts のレシピを書くときの注意点 」にも書かれています。

最初、名前から「$dataDir」を使って失敗しました。おかげで遠回しになりました。

-

「qmake」で定義されないインストールパスは「qpdfview.pri」の定義が使われます:
ICON_INSTALL_PATH = /usr/share/icons/hicolor/scalable/apps  ←(アイコンを配置)
LAUNCHER_INSTALL_PATH = /usr/share/applications  ←(デスクトップファイルを配置)
APPDATA_INSTALL_PATH = /usr/share/appdata  ←(アプリケーションデータ?を配置)

-

パッケージ化の実行中は、

chroot により、「/boot/home/Git/haikuports/app-text/qpdfview/work-0.4.18/」が/root になるので、

「/boot/home/Git/haikuports/app-text/qpdfview/work-0.4.18/usr/share/*」フォルダが作成されて配置されます。 これらは作業フォルダに作成され配置されるだけで、Haiku では使われません。埋もれてしまいます。

-

以降はそれをまだ知らないときの話です。

-


-

「qpdfview.pri」の内容:
> cat qpdfview-0.4.18/qpdfview.pri
isEmpty(APPLICATION_VERSION):APPLICATION_VERSION = 0.4.18

isEmpty(TARGET_INSTALL_PATH):TARGET_INSTALL_PATH = /usr/bin
isEmpty(PLUGIN_INSTALL_PATH):PLUGIN_INSTALL_PATH = /usr/lib/qpdfview
isEmpty(DATA_INSTALL_PATH):DATA_INSTALL_PATH = /usr/share/qpdfview
isEmpty(MANUAL_INSTALL_PATH):MANUAL_INSTALL_PATH = /usr/share/man/man1
isEmpty(ICON_INSTALL_PATH):ICON_INSTALL_PATH = /usr/share/icons/hicolor/scalable/apps
isEmpty(LAUNCHER_INSTALL_PATH):LAUNCHER_INSTALL_PATH = /usr/share/applications
isEmpty(APPDATA_INSTALL_PATH):APPDATA_INSTALL_PATH = /usr/share/appdata

win32:include(qpdfview_win32.pri)
os2:include(qpdfview_os2.pri)

→デフォルト値は Linux ディストリビューションのいつものファイル配置です。

OS ごとに設定ファイルを持てそうですが、情報はなし。

-


2). Haiku での留意点は、パッケージ化中は「chroot」の環境ということ:

パッケージ化実行中の /root
/boot/home/Git/haikuports/app-text/qpdfview/work-0.4.18/

-

パッケージ化実行中の pwd
/boot/home/Git/haikuports/app-text/qpdfview/work-0.4.18/sources/qpdfview-0.4.18/haiku_build/

../translations/*.qm

-


3). ちなみに、「Xubuntu 20.04.3」にインストールした場合のインストール先:

/usr/share/qpdfview/help_ja.html
/usr/share/qpdfview/qpdfview_ja.qm

-


4). Haiku で定義を変更しないでインストールした場合のインストール先:

  • 「qpdfview.pri」では、Linuxファイルシステムが前提の配置でインストールパスが定義されています。

  • 翻訳ファイルも指定先を見に行くので、Haiku に合わせて配置しないと翻訳されません。

  • この時はまだ、「qmake」に「DATA_INSTALL_PATH」を定義していない状態です。

/boot/home/Git/haikuports/app-text/qpdfview/work-0.4.18/sources/qpdfview-0.4.18/usr/share/
> cd ~/Git/haikuports/app-text/qpdfview/work-0.4.18/usr/share

> ls -1
appdata
applications
icons
qpdfview
> ls -1 appdata/
qpdfview.appdata.xml

> ls -1 applications/
qpdfview.desktop

> ls icons/hicolor/scalable/apps/qpdfview.svg
icons/hicolor/scalable/apps/qpdfview.svg
> ls qpdfview/
help_az.html     help_pl.html     qpdfview_ca.qm     qpdfview_kk.qm
:
help_ja.html     qpdfview_ast.qm  qpdfview_hr.qm     qpdfview_tr.qm
help_ko.html     qpdfview_az.qm   qpdfview_hu.qm     qpdfview_ug.qm
help_ku.html     qpdfview_be.qm   qpdfview_id.qm     qpdfview_uk.qm
help_lt.html     qpdfview_bg.qm   qpdfview_it.qm     qpdfview_vi.qm
help_ms.html     qpdfview_bs.qm   qpdfview_ja.qm     qpdfview_zh_CN.qm

→「.html」と「.qm」が混在しています。

「translations.qrc」の定義が効いていそうですが、フォルダ分けしたままでも良さそうな気もします。

-


5). 「qpdfview.pri」で定義されるインストールパスの「2つの機能」:

-

(1). ビルド時にそのディレクトリに、該当のファイルを配置します

Haiku の場合は「パッケージ化」を経由してインストールされることになります。そのため、直接システムファイルの位置を指示できないので、変数を含んだ指定になります。

ところが、フォルダ名が「$XXXX」とかになっていると正しいファルダ名が生成されません。

→かろうじて、先頭の 1文字が消えたフォルダ名( $appsSirppsSir )が作られます。そして、その配下にファイルが配置されるので力技で必要な位置に持ってこれます。

→力技には「レシピファイル」の修正が必要です。

-

追記:

レシピファイルの中の「qmake」のパラメータにも同じ定義を設定したら、作業フォルダ内にフォルダが作られなくなり、解決しました。どちらの定義も同じフォルダ名にするのがコツみたい。Haiku では定義は3つほどしか利用価値はありません。qmake がファイル配置の機能として使われているみたい。

追記: あとでわかったことです。作業フォルダ内にフォルダが作られなくなったのは、「qpdfview.pri」のすべてに環境変数を指定したからです。どちらの定義も同じフォルダ名にする必要はありません。「qmake」の定義で上書きされます。

-

レシピファイルの「qmake」でのフォルダの定義と、パッチファイルにある「qpdfview.pri」のパッチの定義を合わせておく必要があります。

追記: 「qmake」で必要な定義ができたら、つまり、「qmake」のみでフォルダが定義できて、インストールまでこぎつけたら、「qpdfview.pri」のパッチの定義はデフォルト値を設定しているだけなので、削除できます。

-

(2). 該当のファイルの位置を、プログラムに指示(例えば、翻訳ファイルの位置)

→これが一番のポイント。プログラムに翻訳ファイルの場所が指示されます。変数の正しい値が伝わってくれれば、そこに配置すれば翻訳できます。

追記: これは「qpdfview.pri」の機能ではなく、使われているパラメータの「TARGET_INSTALL_PATH」や「DATA_INSTALL_PATH」等の機能です。

-


6). 「qpdfview」のインストールパスを修正:

→追記: 「qmake」でパラメータが指定され「qpdfview.pri」の定義が要らなくなったら、パッチは不要です。

-

Fix installation path

> lpe qpdfview-0.4.18/qpdfview.pri
isEmpty(APPLICATION_VERSION):APPLICATION_VERSION = 0.4.18

isEmpty(TARGET_INSTALL_PATH):TARGET_INSTALL_PATH = $appsDir/qPDFView
isEmpty(PLUGIN_INSTALL_PATH):PLUGIN_INSTALL_PATH = $appsDir/qPDFView/lib
isEmpty(DATA_INSTALL_PATH):DATA_INSTALL_PATH = $appsDir/qPDFView/data
isEmpty(MANUAL_INSTALL_PATH):MANUAL_INSTALL_PATH = $appsDir/qPDFView/man/man1
isEmpty(ICON_INSTALL_PATH):ICON_INSTALL_PATH = $appsDir/qPDFView/icons/hicolor/scalable/apps
isEmpty(LAUNCHER_INSTALL_PATH):LAUNCHER_INSTALL_PATH = $appsDir/qPDFView/applications
isEmpty(APPDATA_INSTALL_PATH):APPDATA_INSTALL_PATH = $appsDir/qPDFView/appdata

win32:include(qpdfview_win32.pri)
os2:include(qpdfview_os2.pri)

-

修正後の差分:
> diff -Naur a b
diff -Naur a/qpdfview.pri b/qpdfview.pri
--- a/qpdfview.pri  2019-07-25 04:18:33.000000000 +0900
+++ b/qpdfview.pri  2021-11-01 21:16:53.358352023 +0900
@@ -1,12 +1,12 @@
 isEmpty(APPLICATION_VERSION):APPLICATION_VERSION = 0.4.18
 
-isEmpty(TARGET_INSTALL_PATH):TARGET_INSTALL_PATH = /usr/bin
-isEmpty(PLUGIN_INSTALL_PATH):PLUGIN_INSTALL_PATH = /usr/lib/qpdfview
-isEmpty(DATA_INSTALL_PATH):DATA_INSTALL_PATH = /usr/share/qpdfview
-isEmpty(MANUAL_INSTALL_PATH):MANUAL_INSTALL_PATH = /usr/share/man/man1
-isEmpty(ICON_INSTALL_PATH):ICON_INSTALL_PATH = /usr/share/icons/hicolor/scalable/apps
-isEmpty(LAUNCHER_INSTALL_PATH):LAUNCHER_INSTALL_PATH = /usr/share/applications
-isEmpty(APPDATA_INSTALL_PATH):APPDATA_INSTALL_PATH = /usr/share/appdata
+isEmpty(TARGET_INSTALL_PATH):TARGET_INSTALL_PATH = $appsDir/qPDFView
+isEmpty(PLUGIN_INSTALL_PATH):PLUGIN_INSTALL_PATH = $appsDir/qPDFView/lib
+isEmpty(DATA_INSTALL_PATH):DATA_INSTALL_PATH = $appsDir/qPDFView/data
+isEmpty(MANUAL_INSTALL_PATH):MANUAL_INSTALL_PATH = $appsDir/qPDFView/man/man1
+isEmpty(ICON_INSTALL_PATH):ICON_INSTALL_PATH = $appsDir/qPDFView/icons/hicolor/scalable/apps
+isEmpty(LAUNCHER_INSTALL_PATH):LAUNCHER_INSTALL_PATH = $appsDir/qPDFView/applications
+isEmpty(APPDATA_INSTALL_PATH):APPDATA_INSTALL_PATH = $appsDir/qPDFView/appdata
 
 win32:include(qpdfview_win32.pri)
 os2:include(qpdfview_os2.pri)

→追記: 必要な定義だけにして、すべて定義しなおす必要はありませんでした。ただし、必要な定義がわからなかったわけです。

-

「$appsDir/qpdfview」の指定で、パッケージ化すると:

→フォルダ名が変数なので、「$a」が消えた「ppsDir」フォルダが作られました:

/boot/home/Git/haikuports/app-text/qpdfview/work-0.4.18/sources/qpdfview-0.4.18/

ppsDir/qpdfview/qpdfview_ja.qm
ppsDir/qpdfview/help_ja.html
ppsDir/qpdfview/appdata/qpdfview.appdata.xml
ppsDir/qpdfview/applications/qpdfview.desktop
ppsDir/qpdfview/icons/hicolor/scalable/apps/qpdfview.svg

→配下のファイルは有効ですが、一部のファイルしか使われません。

追記: これは「qpdfview.pri」が上記の設定で「qmake」に「DATA_INSTALL_PATH」の定義を追加していないときの現象です。「qpdfview.pri」の設定がいじる前の値ならエラーしません。翻訳できないだけです。

-


7). レシピの修正:

:

BUILD()
{
    lrelease qpdfview.pro

    mkdir -p haiku_build && cd haiku_build
    qmake ../qpdfview.pro \
        CONFIG+="without_ps without_cups without_synctex without_dbus without_signals" \
        TARGET_INSTALL_PATH=$appsDir/qPDFView \
        PLUGIN_INSTALL_PATH=$appsDir/qPDFView/lib \
        MANUAL_INSTALL_PATH=$manDir

    make $jobArgs
}

INSTALL()
{
    cd haiku_build
    make install

    mkdir -p $appsDir/qPDFView/data
    cp -r ../ppsDir/qPDFView/data/*.qm $appsDir/qPDFView/data
    cp -r ../ppsDir/qPDFView/data/*.html $appsDir/qPDFView/data
    cp -r ../ppsDir/qPDFView/appdata $appsDir/qPDFView/
    mv $appsDir/qPDFView/qpdfview $appsDir/qPDFView/qPDFView

    # Icon
    local APP_SIGNATURE="application/x-vnd.qpdfview"
    local MAJOR="`echo "$portVersion" | cut -d. -f1`"
    local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
    local MINOR="`echo "$portVersion" | cut -d. -f3`"
    sed \
        -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
        -e "s|@MAJOR@|$MAJOR|" \
        -e "s|@MIDDLE@|$MIDDLE|" \
        -e "s|@MINOR@|$MINOR|" \
        $portDir/additional-files/qpdfview.rdef.in > qpdfview.rdef

    addResourcesToBinaries qpdfview.rdef $appsDir/qPDFView/qPDFView
    addAppDeskbarSymlink $appsDir/qPDFView/qPDFView
}

→漏れたファイルをコピー

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- --

-

5. 日本語化にはソースの修正が必要

-

1). 現状は、日本語を含むいくつかの翻訳ファイル(translations/*.ts ) が追加されていますが反映されていません:

qpdfview_en_AU.ts
qpdfview_fa.ts
qpdfview_ja.ts   ←(日本語)
qpdfview_ko.ts
qpdfview_ku.ts
qpdfview_lv.ts
qpdfview_nb.ts
qpdfview_nds.ts
qpdfview_oc.ts
qpdfview_sr.ts
qpdfview_uz.ts
qpdfview_zh_TW.ts

→適用されるように「qpdfview.pro」、および「translations.qrc」に追加しました。

-

2). また、翻訳ファイルが追加されていても「help.qrc」に登録がない言語がありました

help_ast.html
help_be.html
help_bs.html
help_el.html
help_en_AU.html
help_eo.html
help_eu.html
help_he.html
help_hr.html
help_hu.html
help_id.html
help_kk.html
help_ky.html
help_lv.html
help_my.html
help_nb.html
help_nds.html
help_oc.html
help_ro.html
help_th.html
help_ug.html
help_uz.html

→これらはヘルプファイルが存在せず、英語のヘルプが使われます。あえて翻訳していない可能性があるので修正しません。日本語のヘルプは翻訳途中ですが登録されていました。

-

3). 日本語の翻訳ファイルが反映されるように修正:

Changed to reflect Japanese translation files

-

(1). 「qpdfview.pro」に「ja」を含むいくつかの言語を追加:

-

> lpe qpdfview-0.4.18/qpdfview.pro

-

修正後の差分:

> diff -Naur a b
diff -Naur a/qpdfview.pro b/qpdfview.pro
--- a/qpdfview.pro  2019-07-25 04:18:33.000000000 +0900
+++ b/qpdfview.pro  2021-10-31 20:06:01.576423410 +0900
@@ -41,11 +41,13 @@
     translations/qpdfview_da.ts \
     translations/qpdfview_de.ts \
     translations/qpdfview_el.ts \
+    translations/qpdfview_en_AU.ts \
     translations/qpdfview_en_GB.ts \
     translations/qpdfview_eo.ts \
     translations/qpdfview_es.ts \
     translations/qpdfview_eu.ts \
     translations/qpdfview_fi.ts \
+    translations/qpdfview_fa.ts \
     translations/qpdfview_fr.ts \
     translations/qpdfview_gl.ts \
     translations/qpdfview_he.ts \
@@ -53,21 +55,31 @@
     translations/qpdfview_hu.ts \
     translations/qpdfview_id.ts \
     translations/qpdfview_it.ts \
+    translations/qpdfview_ja.ts \
     translations/qpdfview_kk.ts \
+    translations/qpdfview_ko.ts \
+    translations/qpdfview_ku.ts \
     translations/qpdfview_ky.ts \
     translations/qpdfview_lt.ts \
+    translations/qpdfview_lv.ts \
     translations/qpdfview_ms.ts \
     translations/qpdfview_my.ts \
+    translations/qpdfview_nb.ts \
+    translations/qpdfview_nds.ts \
+    translations/qpdfview_oc.ts \
     translations/qpdfview_pl.ts \
     translations/qpdfview_pt.ts \
     translations/qpdfview_pt_BR.ts \
     translations/qpdfview_ro.ts \
     translations/qpdfview_ru.ts \
     translations/qpdfview_sk.ts \
+    translations/qpdfview_sr.ts \
     translations/qpdfview_sv.ts \
     translations/qpdfview_th.ts \
     translations/qpdfview_tr.ts \
     translations/qpdfview_ug.ts \
     translations/qpdfview_uk.ts \
+    translations/qpdfview_uz.ts \
     translations/qpdfview_vi.ts \
-    translations/qpdfview_zh_CN.ts
+    translations/qpdfview_zh_CN.ts \
+    translations/qpdfview_zh_TW.ts

-

(2). 「translations.qrc」に「ja」を含むいくつかの言語を追加:
> lpe qpdfview-0.4.18/translations.qrc

-

修正後の差分:

> diff -Naur a b
diff -Naur a/translations.qrc b/translations.qrc
--- a/translations.qrc  2019-07-25 04:18:33.000000000 +0900
+++ b/translations.qrc  2021-10-31 20:07:02.576423410 +0900
@@ -10,10 +10,12 @@
         <file alias="qpdfview_da.qm">translations/qpdfview_da.qm</file>
         <file alias="qpdfview_de.qm">translations/qpdfview_de.qm</file>
         <file alias="qpdfview_el.qm">translations/qpdfview_el.qm</file>
+        <file alias="qpdfview_en_AU.qm">translations/qpdfview_en_AU.qm</file>
         <file alias="qpdfview_en_GB.qm">translations/qpdfview_en_GB.qm</file>
         <file alias="qpdfview_eo.qm">translations/qpdfview_eo.qm</file>
         <file alias="qpdfview_es.qm">translations/qpdfview_es.qm</file>
         <file alias="qpdfview_eu.qm">translations/qpdfview_eu.qm</file>
+        <file alias="qpdfview_fa.qm">translations/qpdfview_fa.qm</file>
         <file alias="qpdfview_fi.qm">translations/qpdfview_fi.qm</file>
         <file alias="qpdfview_fr.qm">translations/qpdfview_fr.qm</file>
         <file alias="qpdfview_gl.qm">translations/qpdfview_gl.qm</file>
@@ -22,23 +24,33 @@
         <file alias="qpdfview_hu.qm">translations/qpdfview_hu.qm</file>
         <file alias="qpdfview_id.qm">translations/qpdfview_id.qm</file>
         <file alias="qpdfview_it.qm">translations/qpdfview_it.qm</file>
+        <file alias="qpdfview_ja.qm">translations/qpdfview_ja.qm</file>
         <file alias="qpdfview_kk.qm">translations/qpdfview_kk.qm</file>
+        <file alias="qpdfview_ko.qm">translations/qpdfview_ko.qm</file>
+        <file alias="qpdfview_ku.qm">translations/qpdfview_ku.qm</file>
         <file alias="qpdfview_ky.qm">translations/qpdfview_ky.qm</file>
         <file alias="qpdfview_lt.qm">translations/qpdfview_lt.qm</file>
+        <file alias="qpdfview_lv.qm">translations/qpdfview_lv.qm</file>
         <file alias="qpdfview_ms.qm">translations/qpdfview_ms.qm</file>
         <file alias="qpdfview_my.qm">translations/qpdfview_my.qm</file>
+        <file alias="qpdfview_nb.qm">translations/qpdfview_nb.qm</file>
+        <file alias="qpdfview_nds.qm">translations/qpdfview_nds.qm</file>
+        <file alias="qpdfview_oc.qm">translations/qpdfview_oc.qm</file>
         <file alias="qpdfview_pl.qm">translations/qpdfview_pl.qm</file>
         <file alias="qpdfview_pt_BR.qm">translations/qpdfview_pt_BR.qm</file>
         <file alias="qpdfview_pt.qm">translations/qpdfview_pt.qm</file>
         <file alias="qpdfview_ro.qm">translations/qpdfview_ro.qm</file>
         <file alias="qpdfview_ru.qm">translations/qpdfview_ru.qm</file>
         <file alias="qpdfview_sk.qm">translations/qpdfview_sk.qm</file>
+        <file alias="qpdfview_sr.qm">translations/qpdfview_sr.qm</file>
         <file alias="qpdfview_sv.qm">translations/qpdfview_sv.qm</file>
         <file alias="qpdfview_th.qm">translations/qpdfview_th.qm</file>
         <file alias="qpdfview_tr.qm">translations/qpdfview_tr.qm</file>
         <file alias="qpdfview_ug.qm">translations/qpdfview_ug.qm</file>
         <file alias="qpdfview_uk.qm">translations/qpdfview_uk.qm</file>
+        <file alias="qpdfview_uz.qm">translations/qpdfview_uz.qm</file>
         <file alias="qpdfview_vi.qm">translations/qpdfview_vi.qm</file>
         <file alias="qpdfview_zh_CN.qm">translations/qpdfview_zh_CN.qm</file>
+        <file alias="qpdfview_zh_TW.qm">translations/qpdfview_zh_TW.qm</file>
     </qresource>
 </RCC>

-

4). 日本語の翻訳を現在の一般的な言い回しに手直し(任意):

Fixed translation of Japanese

-

(1). 日本語の「translations/qpdfview_ja.ts」の翻訳を手直し:
> lpe qpdfview-0.4.18/translations/qpdfview_ja.ts

-

修正後の差分:

> diff -Naur a b
diff -Naur a/translations/qpdfview_ja.ts b/translations/qpdfview_ja.ts
--- a/translations/qpdfview_ja.ts   2019-07-25 04:18:33.000000000 +0900
+++ b/translations/qpdfview_ja.ts   2021-10-31 20:08:03.576423410 +0900
@@ -278,7 +278,7 @@
     <message>
         <location filename="../sources/bookmarkdialog.cpp" line="39"/>
         <source>Bookmark</source>
-        <translation>しおり</translation>
+        <translation>ブックマーク</translation>
     </message>
     <message>
         <location filename="../sources/bookmarkdialog.cpp" line="48"/>
@@ -316,7 +316,7 @@
     <message>
         <location filename="../sources/bookmarkmenu.cpp" line="56"/>
         <source>&amp;Remove bookmark</source>
-        <translation>しおりを外す(&amp;R)</translation>
+        <translation>ブックマークを削除(&amp;R)</translation>
     </message>
 </context>
 <context>
@@ -324,7 +324,7 @@
     <message>
         <location filename="../sources/database.cpp" line="988"/>
         <source>Jump to page %1</source>
-        <translation>%1ページヘ跳ぶ</translation>
+        <translation>%1ページヘジャンプ</translation>
     </message>
 </context>
 <context>
@@ -577,7 +577,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="1609"/>
         <source>Jump to page</source>
-        <translation>指定ページへ跳ぶ</translation>
+        <translation>指定ページへジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="1609"/>
@@ -587,7 +587,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="2014"/>
         <source>Jump to page %1</source>
-        <translation>%1ページヘ跳ぶ</translation>
+        <translation>%1ページヘジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2165"/>
@@ -627,7 +627,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="2398"/>
         <source>&amp;Edit bookmark</source>
-        <translation>しおりを編集(&amp;E)</translation>
+        <translation>ブックマークを編集(&amp;E)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2815"/>
@@ -747,17 +747,17 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3180"/>
         <source>&amp;Jump to page...</source>
-        <translation>指定ページへ跳ぶ(&amp;J)...</translation>
+        <translation>指定ページへジャンプ(&amp;J)...</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3182"/>
         <source>Jump &amp;backward</source>
-        <translation>後ろに跳ぶ(&amp;B)</translation>
+        <translation>後ろにジャンプ(&amp;B)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3183"/>
         <source>Jump for&amp;ward</source>
-        <translation>前に跳ぶ(&amp;W)</translation>
+        <translation>前にジャンプ(&amp;W)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3185"/>
@@ -927,17 +927,17 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3246"/>
         <source>&amp;Previous bookmark</source>
-        <translation>前のしおり(&amp;P)</translation>
+        <translation>前のブックマーク(&amp;P)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3247"/>
         <source>&amp;Next bookmark</source>
-        <translation>次のしおり(&amp;N)</translation>
+        <translation>次のブックマーク(&amp;N)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3249"/>
         <source>&amp;Add bookmark</source>
-        <translation>しおりを付ける(&amp;A)</translation>
+        <translation>ブックマークを追加(&amp;A)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3261"/>
@@ -967,7 +967,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3461"/>
         <source>Book&amp;marks</source>
-        <translation>しおり(&amp;M)</translation>
+        <translation>ブックマーク(&amp;M)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3533"/>
@@ -978,7 +978,7 @@
         <location filename="../sources/mainwindow.cpp" line="2397"/>
         <location filename="../sources/mainwindow.cpp" line="3250"/>
         <source>&amp;Remove bookmark</source>
-        <translation>しおりを外す(&amp;R)</translation>
+        <translation>ブックマークを削除(&amp;R)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2959"/>
@@ -998,7 +998,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3251"/>
         <source>Remove all bookmarks</source>
-        <translation>しおりを全て外す</translation>
+        <translation>ブックマークを全て削除</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3255"/>
@@ -1061,7 +1061,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3579"/>
         <source>&amp;Bookmarks</source>
-        <translation>しおり(&amp;B)</translation>
+        <translation>ブックマーク(&amp;B)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3590"/>
@@ -1086,12 +1086,12 @@
     <message>
         <location filename="../sources/pageitem.cpp" line="379"/>
         <source>Go to page %1.</source>
-        <translation>%1ページに跳びます。</translation>
+        <translation>%1ページに飛びます。</translation>
     </message>
     <message>
         <location filename="../sources/pageitem.cpp" line="383"/>
         <source>Go to page %1 of file &apos;%2&apos;.</source>
-        <translation>ファイル「%2」の%1ページに跳びます。</translation>
+        <translation>ファイル「%2」の%1ページに飛びます。</translation>
     </message>
     <message>
         <location filename="../sources/pageitem.cpp" line="391"/>
@@ -1548,7 +1548,7 @@
     <message>
         <location filename="../sources/settingsdialog.cpp" line="262"/>
         <source>Restore bookmarks:</source>
-        <translation>しおりを復元:</translation>
+        <translation>ブックマークを復元:</translation>
     </message>
     <message>
         <location filename="../sources/settingsdialog.cpp" line="265"/>
@@ -1950,12 +1950,12 @@
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="262"/>
         <source>Skip backward</source>
-        <translation>後ろに跳ぶ</translation>
+        <translation>後ろにジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="266"/>
         <source>Skip forward</source>
-        <translation>前に跳ぶ</translation>
+        <translation>前にジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="270"/>

-

(2). 日本語の「help/help_ja.html」の翻訳を手直し:

翻訳ファイルで使っている語句に合わせます。 ヘルプファイルの日本語化は半分ぐらいで終わっていますが、翻訳された部分の修正は必要でしょう。

> lpe qpdfview-0.4.18/help/help_ja.html

-

修正後の差分:

> diff -Naur a b
diff -Naur a/help/help_ja.html b/help/help_ja.html
--- a/help/help_ja.html 2019-07-25 04:18:33.000000000 +0900
+++ b/help/help_ja.html 2021-10-31 20:09:04.576423410 +0900
@@ -44,7 +44,7 @@
         <li><a href="#edit">編集</a></li>
         <li><a href="#view">表示</a></li>
         <li><a href="#tabs">タブ</a></li>
-        <li><a href="#bookmarks">しおり</a></li>
+        <li><a href="#bookmarks">ブックマーク</a></li>
         <li><a href="#help">ヘルプ</a></li>
     </ol>
     <li><a href="#mainview">メインビュー</a></li>
@@ -87,13 +87,13 @@
 
 <ul>
     <li><b>前ページ/次ページ/最初のページ/最後のページ</b> 文書の前のページ、次のページ、最初のページ、最後のページへ移動します。</li>
-    <li><b>指定ページへ跳ぶ...</b> 現在のタブに表示するページを入力するダイアログを開きます。</li>
-    <li><b>後ろに跳ぶ/前に跳ぶ</b> 表示されているページの履歴で前後に跳びます。</li>
+    <li><b>指定ページへジャンプ...</b> 現在のタブに表示するページを入力するダイアログを開きます。</li>
+    <li><b>後ろにジャンプ/前にジャンプ</b> 表示されているページの履歴で前後に飛びます。</li>
     <li><b>検索...</b>
 メインビューの下に検索ドックを開きます。そこに文字を入力すると、2秒後に自動的に検索が開始されます。また、リターンキーを押して手動で開始することもできます。リターンキーを押下する際に
 Shift キーも押しておくと、現在のタブだけではなく全てのタブに対して検索を行います
 (この挙動は、設定で拡張検索ドックが有効になっていると逆になります)。</li>
-    <li><b>前を検索/次を検索</b> 文書内の検索用語が出現する前の場所、次の場所に跳びます。</li>
+    <li><b>前を検索/次を検索</b> 文書内の検索用語が出現する前の場所、次の場所に飛びます。</li>
     <li><b>検索を取り消す</b> 現在実行中の検索を取り止め、検索ドックを閉じます。</li>
     <li><b>クリップボードにコピー</b> チェックを入れると、ドラッグで範囲選択できるようになり、選択した部分のテキストや画像をコピーすることができます。</li>
     <li><b>註釈を追加</b> チェックを入れると、ドラッグで範囲選択できるようになり、選択した部分に註釈を追加することができます。</li>
@@ -130,7 +130,7 @@
     <li><b>プレゼンテーション...</b> F12 を押すとプレゼンテーションモードになります。Home キーを押すと最初のページを、End
 キーを押すと最後のページを表示します。矢印キーの → と ↓、スペースキーと Page Down キーで次のページに移動します。矢印キーの ← と
 ↑、Back Space キーと Page Up キーで前のページに移動します。Ctrl
-キーを押しながらリターンキーを押すと、前に表示したページに跳びます。</li>
+キーを押しながらリターンキーを押すと、前に表示したページに飛びます。</li>
 </ul>
 
 <p><b>拡大率</b>は Ctrl + L
@@ -149,17 +149,17 @@
 <p>このメニューには、クリックすることで現在のタブとして表示できる全てのタブが、メニュー項目として表示されます。タブは中クリックで閉じることができます。最初の9個までのタブは、Alt
 キーを押しながら 1 〜 9 の数字キーを押すことで切り替えることもできます。</p>
 
-<h4><a name="bookmarks">しおり</a> <a href="#top">&uarr;</a></h4>
+<h4><a name="bookmarks">ブックマーク</a> <a href="#top">&uarr;</a></h4>
 
 <ul>
-    <li><b>前のしおり</b> 現在のページより前の直近のしおりに跳びます。</li>
-    <li><b>次のしおり</b> 現在のページより後の直近のしおりに跳びます。</li>
-    <li><b>しおりを付ける</b> 現在のファイルとページにしおりを追加します。</li>
-    <li><b>しおりを外す</b> 現在のファイルとページからしおりを削除します。</li>
-    <li><b>しおりを全て外す</b> 全てのしおりを削除します。</li>
+    <li><b>前のブックマーク</b> 現在のページより前の直近のブックマークに飛びます。</li>
+    <li><b>次のブックマーク</b> 現在のページより後の直近のブックマークに飛びます。</li>
+    <li><b>ブックマークを追加</b> 現在のファイルとページにブックマークを追加します。</li>
+    <li><b>ブックマークを削除</b> 現在のファイルとページからブックマークを削除します。</li>
+    <li><b>ブックマークを全て削除</b> 全てのブックマークを削除します。</li>
     <li><b>開く</b> 任意のファイルを現在のタブに開きます。タブが無い場合は新しいタブにファイルが開かれます。</li>
     <li><b>新規タブで開く</b> 新しいタブにファイルを開きます。</li>
-    <li><b>指定ページへ跳ぶ</b> 対象のファイルを既に開いている場合は、直接そのページに移動します。そうでない場合は新しいタブにファイルを開きます。</li>
+    <li><b>指定ページへジャンプ</b> 対象のファイルを既に開いている場合は、直接そのページに移動します。そうでない場合は新しいタブにファイルを開きます。</li>
 </ul>
 
 <h4><a name="help">ヘルプ</a> <a href="#top">&uarr;</a></h4>

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

-

6. 現在、Haiku に移植されている「qpdfview-0.4.18」の情報:

-

1). 「qpdfview」の在り処:

> cd ~/Git/haikuporter/
> haikuporter -o qpdfview
/boot/home/Git/haikuports/app-text/qpdfview

-

> cd /boot/home/Git/haikuports/app-text/qpdfview/
> ls -1
additional-files
download
patches
qpdfview-0.4.18.recipe
work-0.4.18

-

2). レシピファイル:

~/Git/haikuports/app-text/qpdfview> cat qpdfview-0.4.18.recipe
:
SOURCE_URI="$HOMEPAGE/trunk/$portVersion/+download/qpdfview-$portVersion.tar.gz"
CHECKSUM_SHA256="cc642e7fa74029373ca9b9fbc29adc4883f8b455130a78ad54746d6844a0396c"
SOURCE_DIR="qpdfview-$portVersion"
PATCHES="qpdfview-$portVersion.patchset"
ADDITIONAL_FILES="qpdfview.rdef.in"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

PROVIDES="
    qpdfview$secondaryArchSuffix = $portVersion
    app:qPDFView$secondaryArchSuffix = $portVersion
    "
REQUIRES="
    haiku$secondaryArchSuffix
    lib:libdjvulibre$secondaryArchSuffix
    lib:libGl$secondaryArchSuffix
    lib:libmagic$secondaryArchSuffix
    lib:libpoppler$secondaryArchSuffix
    lib:libpoppler_qt5$secondaryArchSuffix
    lib:libQt5Concurrent$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Sql$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5Widgets$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libdjvulibre$secondaryArchSuffix
    devel:libGl$secondaryArchSuffix
    devel:libmagic$secondaryArchSuffix
    devel:libpoppler$secondaryArchSuffix >= 104
    devel:libpoppler_qt5$secondaryArchSuffix
    devel:libQt5Concurrent$secondaryArchSuffix
    devel:libQt5Core$secondaryArchSuffix
    devel:libQt5Gui$secondaryArchSuffix
    devel:libQt5PrintSupport$secondaryArchSuffix
    devel:libQt5Sql$secondaryArchSuffix
    devel:libQt5Svg$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libz$secondaryArchSuffix
    "
BUILD_PREREQUIRES="
    cmd:gcc$secondaryArchSuffix
    cmd:lrelease$secondaryArchSuffix >= 5
    cmd:make
    cmd:pkg_config$secondaryArchSuffix
    cmd:qmake$secondaryArchSuffix >= 5
    "

BUILD()
{
    lrelease qpdfview.pro

    mkdir -p haiku_build && cd haiku_build
    qmake ../qpdfview.pro \
        CONFIG+="without_ps without_cups without_synctex without_dbus without_signals" \
        TARGET_INSTALL_PATH=$appsDir/qPDFView \
        PLUGIN_INSTALL_PATH=$appsDir/qPDFView/lib \
        MANUAL_INSTALL_PATH=$manDir

    make $jobArgs
}

INSTALL()
{
    cd haiku_build
    make install

    mv $appsDir/qPDFView/qpdfview $appsDir/qPDFView/qPDFView
    # Icon
    local MAJOR="`echo "$portVersion" | cut -d. -f1`"
    local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
    local MINOR="`echo "$portVersion" | cut -d. -f3`"

    sed \
        -e "s|@MAJOR@|$MAJOR|" \
        -e "s|@MIDDLE@|$MIDDLE|" \
        -e "s|@MINOR@|$MINOR|" \
        $portDir/additional-files/qpdfview.rdef.in > qpdfview.rdef

    addResourcesToBinaries qpdfview.rdef \
        $appsDir/qPDFView/qPDFView

    addAppDeskbarSymlink $appsDir/qPDFView/qPDFView
}

-

3). パッチファイル:

~/Git/haikuports/app-text/qpdfview> ls -1 patches
qpdfview-0.4.18.patchset

-

~/Git/haikuports/app-text/qpdfview> cat patches/qpdfview-0.4.18.patchset
From c75c6606e3ad5c701cf6ab78c2b68dad1abdc3cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Tue, 11 Jul 2017 14:16:23 +0200
Subject: Haiku build fix


diff --git a/application.pro b/application.pro
index 509f6e2..4893525 100644
--- a/application.pro
+++ b/application.pro
@@ -262,6 +262,8 @@ static_resources {
     RESOURCES += help.qrc translations.qrc
 }
 
+haiku:LIBS += -lnetwork -lpoppler -lpoppler-qt5
+
 DEFINES += DATA_INSTALL_PATH=\\\"$${DATA_INSTALL_PATH}\\\"
 
 
-- 
2.30.0


From ec4088665b53ea9e343997d319c2b1db89944fb9 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 15 Jan 2021 09:38:14 +0100
Subject: Patch for newer Qt versions


diff --git a/sources/model.h b/sources/model.h
index 6363c32..dc10a8c 100644
--- a/sources/model.h
+++ b/sources/model.h
@@ -27,6 +27,7 @@ along with qpdfview.  If not, see <http://www.gnu.org/licenses/>.
 #include <QtPlugin>
 #include <QWidget>
 #include <QVector>
+#include <QPainterPath>
 
 class QAbstractItemModel;
 class QColor;
-- 
2.30.0

→2件のパッチのコミットがあります。

-

4). 「.rdef.in」ファイル:

~/Git/haikuports/app-text/qpdfview> ls -1 additional-files
qpdfview.rdef.in

-

~/Git/haikuports/app-text/qpdfview> cat additional-files/qpdfview.rdef.in
resource app_flags B_MULTIPLE_LAUNCH;

resource app_version {
        major  = @MAJOR@,
        middle = @MIDDLE@,
        minor  = @MINOR@,
        variety = B_APPV_FINAL,
        internal = 0,
        short_info = "Qt document reader",
        long_info = "A tabbed document viewer"
};

resource app_signature "application/x-vnd.qpdfview";

resource("QT:QPA_FLAGS") "Q_REF_TO_ARGV|Q_REF_TO_FORK";

resource file_types message {
        "types" = "application/pdf",
        "types" = "application/x-pdf",
        "types" = "application/x-djvu",
        "types" = "image/jpeg",
        "types" = "image/gif",
        "types" = "image/png",
        "types" = "image/tiff",
        "types" = "image/bmp"
};

resource vector_icon {
        $"6E636966160401740501020106023B32CABB51823CAA303C919C45272B4AD4C5"
        $"00FCFAF4FF808076020106023B32CABB51823CAA303C919C45272B4AD4C500FF"
        $"90AAFA6D021B020116023B32CABB51823CAA303C919C45272B4AD4C500ACFF01"
        $"020106023CE282BB546036E147387EF949E15946B04353E2E2D7FF9494900201"
        $"06023DCD35BCD70A3BA2333C6ECB49FEE64906E453FCFBF4FFBFBFB002011602"
        $"3DCD35BCD70A3BA2333C6ECB49FEE64906E453ACFF4A020106023DCD35BCD70A"
        $"3BA2333C6ECB49FEE64906E45389BBFFFF0552BB04995B03F700190500040054"
        $"0510057802001604378852378852378852B788524B078548705100883FFFBF88"
        $"FF88020016033B1FD53CCE7DBF7EBB3DE4084BE51A48106D00FD58E7FFFF0201"
        $"02023C80000000000000003A00004940004A800000CECEFFA4FF9898FFAD0366"
        $"6698020002023E5400000000000000400000495800000000006464BAAAFFC7C7"
        $"E0B605FF020006033D000000000000000040000049800000000000D1D1EA964C"
        $"4C76FF75759B220606FE033A5E435D415E455C50504956574A5E445D455F435A"
        $"3A633E5A3A3A060DFFBFFB032250224C22512E56285334593A5C355C3F5C4B4E"
        $"455351495843584359425B3D5B415B39502E53324D2A4A28472B472B462A4128"
        $"36343C303038283C283A283F2E46273F284A060DFFBFFB032250224C22512E56"
        $"285334593A5C355C3F5C4B4E455351495843584359425B3D5B415B39502E5332"
        $"4D2A4A28472B472B462A412836343C303038283C283A283F2E46273F284A0604"
        $"AF3247324632482750274F275030543A4B08023C4E345608023F5138580606EF"
        $"0F283C283F28BD52363430383C304128482C472A492E502E4D2B502E2E462E46"
        $"273F060EEFFFFA0F283C283F2A3C3E313536472C4A28502E4D2A53325B3D5B39"
        $"5B3F5843594258434B4E514945533A5C3F5C355C2E5623502F562A5334593A5B"
        $"385B3C5B3C563D5839512E46344C273F0802493F424508024945454908023F47"
        $"384C08024E47484D0802434B3C51080244513F5608052F423242333F363F373D"
        $"08054C304B3249324934473402043C3F3D3F3C3E383A393A3939433442344434"
        $"46384637463902044B3D4B3D4D3E514651445246593E5941593C533656365236"
        $"0233B974C802B968C804BF13C734CA68C6A5C4A6C64DCD11C6CDD229C896D00A"
        $"C745D277C8C7D2F1C942D2BCC901D304C959D31CC98BD310C972D31EC8C5D320"
        $"C739D31FC7FFD31BC745D307C759D312C750D29FC7B3D13FC774D1BEC78CCEA5"
        $"C6F4CB22C3D8CCD4C54DC901C204C506BE31C6E3C02FC42CBD47C29ABB5CC35D"
        $"BC52C240BAEBC1BAB9F8C1F6BA74C132B8DCC190BB7EC164BC4BC197BB60C1AC"
        $"BB25C1A1BB42C20CBA19C480B8BBC2E5B8CEC514B8B4C61FB929C5A8B8ECC659"
        $"B947C6A6B99EC685B970C714BA71C6B8B76DC71AB9B7C6ADB790C687B7D2C699"
        $"B7B1C60CB8AFC446BA16C51BB969C36EBAC7C22DBC37C2D5BB68C10EBD97BEB6"
        $"C048BFBEBEDDBD99C1CEBB7CC4E8BC97C361BACDC5D8B936C7B6BA25C6E6B8D7"
        $"C80AB7CEC853B860C848B782C859B6F3C825B734C83DB6CFC816B69BC7E6B6B1"
        $"C801B7D5C949B6BECA05B612CB21B758C906B9E2C863B8A4C8C4BA37C849BA17"
        $"C6CCBA17C6FEBA17C6B7B9E2C535BA0AC52DB801C596B64BC7D1B681C635B629"
        $"C8CDB67DCB16B5F7CA24B6E0CBC7B8B9CB5EB80FCBB6B965CB05BA43C9E1B9DD"
        $"CA67BAECC905BC2FC746BB8FC826BDC0C516C10BC0D3BF2FC2E2C1C8C002C335"
        $"BE45C261BF06C3B9BDCCC4DABCEBC450BD5FC63FBBBFC710B911C702BAABC71F"
        $"B78AC480B57BC72CB585C2F6B576C1A8B7D2C211B6E5C0F4B963C185BCDCC106"
        $"BB46C1D9BDE5C379BFB8C2B9BED6C44FC0B4C60EC29FC521C1AFC7E2C47ACBF8"
        $"C7EDC9F1C632CD76C933D1FCCA8BCFA2CA7FD401CA95D359C74ED373C83FD333"
        $"C5F6CFDCC4EFD155C5525AC36EBDE7C4E3C3B9C405BC6AC51CB974C595BAF0C5"
        $"5BB909C5A50233B833C694B828C696BDD2C5C7C927C537C365C4DFCBD0C55FD0"
        $"E9C728CECAC5D7D137C759D1B1C7D4D17CC793D1C3C7EBD1DCC81DD1D0C804D1"
        $"DDC757D1E0C5CBD1DFC691D1DAC5D7D1C7C5EBD1D2C5E2D15FC645CFFEC606D0"
        $"7EC61ECD64C587C9E1C26ACB94C3DFC7C1C096C3C6BCC3C5A3BEC1C2EBBBD9C1"
        $"5AB9EEC21DBAE4C100B97DC07AB88AC0B5B906BFF2B76EC050BA10C023BADDC0"
        $"57B9F2C06BB9B7C061B9D4C0CCB8ABC33FB74DC1A5B760C3D3B746C4DEB7BBC4"
        $"68B77EC518B7D9C566B830C544B802C5D4B903C577B5FFC5DAB849C56CB622C5"
        $"47B664C559B643C4CCB741C306B8A8C3DBB7FBC22EB959C0EDBAC9C195B9FBBF"
        $"CEBC29BD75BEDABE7EBD6FBC58C060BA3BC37ABB57C1F3B98DC46AB7F6C648B8"
        $"E5C578B797C69CB68DC6E5B720C6DAB641C6EBB5B2C6B7B5F4C6D0B58EC6A8B5"
        $"5BC679B571C693B695C7DBB57DC897B4D1C9B3B618C798B8A1C6F5B764C756B8"
        $"F6C6DBB8D7C55EB8D7C590B8D7C549B8A1C3C7B8CAC3BFB6C1C428B50AC663B5"
        $"40C4C7B4E9C760B53DC9A8B4B7C8B6B59FCA59B779C9F0B6CFCA48B825C997B9"
        $"03C873B89DC8F9B9ABC797BAEEC5D8BA4EC6B8BC80C3A8BFCBBF65BDEFC174C0"
        $"87BE94C1F5BCD7C121BD98C279BC5EC39ABB7DC310BBF1C4FFBA51C5D0B7A3C5"
        $"C1B93DC5DEB61CC33FB40DC5ECB417C1B5B408C067B664C0D1B577BFB4B7F5C0"
        $"45BB6EBFC5B9D8C098BC77C238BE4AC179BD69C30EBF46C4CEC131C3E1C041C6"
        $"A2C30CCAB7C67FC8B1C4C4CC35C7C5D0BBC91DCE61C911D2C1C927D219C5E0D2"
        $"33C6D1D1F34CCE9CC381D015C3E4C8DCC200BCA6C375C279C297BB2AC3AEB833"
        $"C427B9AFC3ED2CC4370604FEC7E3BF753F603F60C62B605E4D5EC91C5EC2C6C7"
        $"E3BF75CA3CC0D6C7E3BF750604FA503C533E5E305E30CC4DB8A05F2A602C5F2A"
        $"0605EB035626582456264436513D5D2E5D2ECBFCB7AD5E256128CA9BB3E50604"
        $"BF503B503B5239C66C34C73836C5A0324A334B324A3345370802C62B30C9E927"
        $"02073B343B34B7D034204520BE002045204F204F20C9773B60B7D060C3B46056"
        $"4F56C977564F5645564556BE003B34C3B2343B3402053B363B36B84136224522"
        $"BE7022C50A3B54B84154C34254544554C50A54BE703B36C341363B3602053B3A"
        $"3B3AC25F3A504550BF5150C4283B50C26050B92250264526C42826BF513B3AB9"
        $"213A3B3A02053B4E3B4EC15B4EC52347C45E4BC45EC0F03B40C15B40BA2840B6"
        $"6147B723C0F0B7234B3B4EBA274E3B4E0003B6A1C2E2B6A1C2E2B7DCC1B43BC0"
        $"CABAC8C0CAC0BAC0CAC4D6C2D6C399C1A7C4D6C2D602073B3C3B3CB9933C2845"
        $"28BFC228C204B66147B641C247B723C0F03B40BA2740C15B40C52347C45EC0F0"
        $"C541C2474E454EC2044EBFC23B3CC1EF3C3B3C020231442E4334453540384132"
        $"3F0203C22FC23DC22FC23DC171C315BE81C3B6C064C37BBE81C3B6C14AC394C0"
        $"4BC3EFC28EC32302073B543B54B8415422C1EC22C51F22C1EC22C58A22C58A22"
        $"C8F13B5EB8415EC3425E54C58A54C8F154C58A54C1EC54C1EC54C51F3B54C341"
        $"543B54190A0001000240055CBCCAD03CC2AA3FFEEBC7CFF14678CC0A01010112"
        $"40055CBCCAD03CC2AA3FFEEBC7CFF14678CC01178300040A0201020240055CBC"
        $"CAD03CC2AA3FFEEBC7CFF14678CC0A0301030240055CBCCAD03CC2AA3FFEEBC7"
        $"CFF14678CC0A040204051240055CBCCAD03CC2AA3FFEEBC7CFF14678CC011781"
        $"00040A0501060240055CBCCAD03CC2AA3FFEEBC7CFF14678CC0A060107024005"
        $"5CBCCAD03CC2AA3FFEEBC7CFF14678CC0A070608090A0B0C0D1240055CBCCAD0"
        $"3CC2AA3FFEEBC7CFF14678CC01178100040A08020E0F1240055CBCCAD03CC2AA"
        $"3FFEEBC7CFF14678CC01178100040A0701100240055CBCCAD03CC2AA3FFEEBC7"
        $"CFF14678CC0A0801110240055CBCCAD03CC2AA3FFEEBC7CFF14678CC0A090112"
        $"023DB416396A1ABA17223E446E4716BC43F9660A0A0113023DB416396A1ABA17"
        $"223E446E473ABB445D6D0A0C021415023E4E15ABC0F52BC0633E680248DD3348"
        $"90660A0D0116023E6DA2ABDE832BF3BC3E7AF4491E894755110A0F0117023E6D"
        $"A2ABDE832BF3BC3E7AF4491E894755110A0B0119123E4A55AB9BF42BBA483E50"
        $"49493C6547C4F501178500040A01021A1B123E6DA2ABDE832BF3BC3E7AF4491E"
        $"8947551101178400040A10021A1B023E6DA2ABDE832BF3BC3E7AF4491E894755"
        $"110A11011C023E6DA2ABDE832BF3BC3E7AF4491E894755110A12011D1A3E6DA2"
        $"ABDE832BF3BC3E7AF4491E8947551115FF01178200040A13011E023E6DA2ABDE"
        $"832BF3BC3E7AF4491E894755110A14021F20023E6DA2ABDE832BF3BC3E7AF449"
        $"1E894755110A0E0118123E6DA2ABDE832BF3BC3E7AF4491E8947551101178320"
        $"040A150121023E6DA2ABDE832BF3BC3E7AF4491E89475511"
};

→アプリをシステムに登録(実行ファイルにファイル属性として組み込み)するときに必要な情報(アイコン等)です。

-

参考: インストール後に実行ファイルのファイル属性を確認:
> cd /boot/system/apps/qPDFView/

> ls
lib  qPDFView

-

実行ファイルのファイル属性:
> listattr qPDFView
File: qPDFView
        Type       Size  Name                                
----------------------------------------------------------
        Text        18  "SYS:PACKAGE"    ←「パッケージ名」
        Text        30  "SYS:PACKAGE_FILE"  ←「パッケージのファイル名」
 MIME String        35  "BEOS:TYPE"
 MIME String        27  "BEOS:APP_SIG"   ←「シグネチャ」
      'APPF'         4  "BEOS:APP_FLAGS"
      'MSGG'       235  "BEOS:FILE_TYPES"
   Mini Icon       256  "BEOS:M:STD_ICON"  ←「アイコン」
        Icon      1024  "BEOS:L:STD_ICON"  ←「アイコン」
      'APPV'       680  "BEOS:APP_VERSION"
      'VICN'      3192  "BEOS:ICON"     ←「アイコン」

5501 bytes total in attributes.

> catattr "BEOS:APP_SIG" qPDFView
qPDFView : 'MIMS' : application/x-vnd.qpdfview

→「実行ファイル」自体がアプリ用のフォルダを持っているのと同じです。

ファイル属性にアプリの違うサイズの「アイコンイメージ」まで含むことにびっくり。どう含むかはレシピの記述しだい。どう使われるかはアプリしだいなので、移植アプリで有効なのは「アプリのアイコン」がメインと言えます。Haiku アプリの場合は「シグネチャ」が翻訳ファイルとのつなぎになり重要です。移植アプリでどうなのかはわかりません。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----

-

7. 正常に「qpdfview」のパッケージ化ができるか確認:

-


パッケージ化を実行

> cd ~/Git/haikuporter/
~/Git/haikuporter> hp qpdfview
:
grabbing qpdfview-0.4.18-4-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/qpdfview-0.4.18-4-x86_64.hpkg

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- -----

-

8.「qpdfview」の日本語化:

-


1). レシピファイルの修正は不要だろうとこの時は思っていました:

-


2). パッチファイルを追加:

  • 日本語の翻訳ファイルが含まれていますが、ビルド時に反映されないので修正。

  • 日本語の翻訳を現在の一般的な言い回しに手直し(任意)。

-


3). パッチファイルを仮に修正:

コミット番号がまだないので、仮のヘッダー部を付けました。 任意を含むので、楽に削除できるようにコミットを2つに分けました。

-

> lpe ~/Git/haikuports/app-text/qpdfview/patches/qpdfview-0.4.18.patchset

↓ パッチファイルの最後に、2行空けて、下記を追加


From 00001 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:03:10 +0900
Subject: Fix installation path 


diff --git a/qpdfview.pri b/qpdfview.pri
--- a/qpdfview.pri  2019-07-25 04:18:33.000000000 +0900
+++ b/qpdfview.pri  2021-10-31 20:05:01.576423410 +0900
@@ -1,12 +1,12 @@
 isEmpty(APPLICATION_VERSION):APPLICATION_VERSION = 0.4.18
 
-isEmpty(TARGET_INSTALL_PATH):TARGET_INSTALL_PATH = /usr/bin
-isEmpty(PLUGIN_INSTALL_PATH):PLUGIN_INSTALL_PATH = /usr/lib/qpdfview
-isEmpty(DATA_INSTALL_PATH):DATA_INSTALL_PATH = /usr/share/qpdfview
-isEmpty(MANUAL_INSTALL_PATH):MANUAL_INSTALL_PATH = /usr/share/man/man1
-isEmpty(ICON_INSTALL_PATH):ICON_INSTALL_PATH = /usr/share/icons/hicolor/scalable/apps
-isEmpty(LAUNCHER_INSTALL_PATH):LAUNCHER_INSTALL_PATH = /usr/share/applications
-isEmpty(APPDATA_INSTALL_PATH):APPDATA_INSTALL_PATH = /usr/share/appdata
+isEmpty(TARGET_INSTALL_PATH):TARGET_INSTALL_PATH = $appsDir/qPDFView
+isEmpty(PLUGIN_INSTALL_PATH):PLUGIN_INSTALL_PATH = $appsDir/qPDFView/lib
+isEmpty(DATA_INSTALL_PATH):DATA_INSTALL_PATH = $appsDir/qPDFView/data
+isEmpty(MANUAL_INSTALL_PATH):MANUAL_INSTALL_PATH = $appsDir/qPDFView/man/man1
+isEmpty(ICON_INSTALL_PATH):ICON_INSTALL_PATH = $appsDir/qPDFView/icons/hicolor/scalable/apps
+isEmpty(LAUNCHER_INSTALL_PATH):LAUNCHER_INSTALL_PATH = $appsDir/qPDFView/applications
+isEmpty(APPDATA_INSTALL_PATH):APPDATA_INSTALL_PATH = $appsDir/qPDFView/appdata
 
 win32:include(qpdfview_win32.pri)
 os2:include(qpdfview_os2.pri)
--
2.30.2 


From 00002 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:04:08 +0900
Subject: Changed to reflect Japanese translation files 

diff --git a/qpdfview.pro b/qpdfview.pro
--- a/qpdfview.pro  2019-07-25 04:18:33.000000000 +0900
+++ b/qpdfview.pro  2021-10-31 20:06:02.576423410 +0900
@@ -41,11 +41,13 @@
     translations/qpdfview_da.ts \
     translations/qpdfview_de.ts \
     translations/qpdfview_el.ts \
+    translations/qpdfview_en_AU.ts \
     translations/qpdfview_en_GB.ts \
     translations/qpdfview_eo.ts \
     translations/qpdfview_es.ts \
     translations/qpdfview_eu.ts \
     translations/qpdfview_fi.ts \
+    translations/qpdfview_fa.ts \
     translations/qpdfview_fr.ts \
     translations/qpdfview_gl.ts \
     translations/qpdfview_he.ts \
@@ -53,21 +55,31 @@
     translations/qpdfview_hu.ts \
     translations/qpdfview_id.ts \
     translations/qpdfview_it.ts \
+    translations/qpdfview_ja.ts \
     translations/qpdfview_kk.ts \
+    translations/qpdfview_ko.ts \
+    translations/qpdfview_ku.ts \
     translations/qpdfview_ky.ts \
     translations/qpdfview_lt.ts \
+    translations/qpdfview_lv.ts \
     translations/qpdfview_ms.ts \
     translations/qpdfview_my.ts \
+    translations/qpdfview_nb.ts \
+    translations/qpdfview_nds.ts \
+    translations/qpdfview_oc.ts \
     translations/qpdfview_pl.ts \
     translations/qpdfview_pt.ts \
     translations/qpdfview_pt_BR.ts \
     translations/qpdfview_ro.ts \
     translations/qpdfview_ru.ts \
     translations/qpdfview_sk.ts \
+    translations/qpdfview_sr.ts \
     translations/qpdfview_sv.ts \
     translations/qpdfview_th.ts \
     translations/qpdfview_tr.ts \
     translations/qpdfview_ug.ts \
     translations/qpdfview_uk.ts \
+    translations/qpdfview_uz.ts \
     translations/qpdfview_vi.ts \
-    translations/qpdfview_zh_CN.ts
+    translations/qpdfview_zh_CN.ts \
+    translations/qpdfview_zh_TW.ts


diff --git a/translations.qrc b/translations.qrc
--- a/translations.qrc  2019-07-25 04:18:33.000000000 +0900
+++ b/translations.qrc  2021-10-31 20:07:03.576423410 +0900
@@ -10,10 +10,12 @@
         <file alias="qpdfview_da.qm">translations/qpdfview_da.qm</file>
         <file alias="qpdfview_de.qm">translations/qpdfview_de.qm</file>
         <file alias="qpdfview_el.qm">translations/qpdfview_el.qm</file>
+        <file alias="qpdfview_en_AU.qm">translations/qpdfview_en_AU.qm</file>
         <file alias="qpdfview_en_GB.qm">translations/qpdfview_en_GB.qm</file>
         <file alias="qpdfview_eo.qm">translations/qpdfview_eo.qm</file>
         <file alias="qpdfview_es.qm">translations/qpdfview_es.qm</file>
         <file alias="qpdfview_eu.qm">translations/qpdfview_eu.qm</file>
+        <file alias="qpdfview_fa.qm">translations/qpdfview_fa.qm</file>
         <file alias="qpdfview_fi.qm">translations/qpdfview_fi.qm</file>
         <file alias="qpdfview_fr.qm">translations/qpdfview_fr.qm</file>
         <file alias="qpdfview_gl.qm">translations/qpdfview_gl.qm</file>
@@ -22,23 +24,33 @@
         <file alias="qpdfview_hu.qm">translations/qpdfview_hu.qm</file>
         <file alias="qpdfview_id.qm">translations/qpdfview_id.qm</file>
         <file alias="qpdfview_it.qm">translations/qpdfview_it.qm</file>
+        <file alias="qpdfview_ja.qm">translations/qpdfview_ja.qm</file>
         <file alias="qpdfview_kk.qm">translations/qpdfview_kk.qm</file>
+        <file alias="qpdfview_ko.qm">translations/qpdfview_ko.qm</file>
+        <file alias="qpdfview_ku.qm">translations/qpdfview_ku.qm</file>
         <file alias="qpdfview_ky.qm">translations/qpdfview_ky.qm</file>
         <file alias="qpdfview_lt.qm">translations/qpdfview_lt.qm</file>
+        <file alias="qpdfview_lv.qm">translations/qpdfview_lv.qm</file>
         <file alias="qpdfview_ms.qm">translations/qpdfview_ms.qm</file>
         <file alias="qpdfview_my.qm">translations/qpdfview_my.qm</file>
+        <file alias="qpdfview_nb.qm">translations/qpdfview_nb.qm</file>
+        <file alias="qpdfview_nds.qm">translations/qpdfview_nds.qm</file>
+        <file alias="qpdfview_oc.qm">translations/qpdfview_oc.qm</file>
         <file alias="qpdfview_pl.qm">translations/qpdfview_pl.qm</file>
         <file alias="qpdfview_pt_BR.qm">translations/qpdfview_pt_BR.qm</file>
         <file alias="qpdfview_pt.qm">translations/qpdfview_pt.qm</file>
         <file alias="qpdfview_ro.qm">translations/qpdfview_ro.qm</file>
         <file alias="qpdfview_ru.qm">translations/qpdfview_ru.qm</file>
         <file alias="qpdfview_sk.qm">translations/qpdfview_sk.qm</file>
+        <file alias="qpdfview_sr.qm">translations/qpdfview_sr.qm</file>
         <file alias="qpdfview_sv.qm">translations/qpdfview_sv.qm</file>
         <file alias="qpdfview_th.qm">translations/qpdfview_th.qm</file>
         <file alias="qpdfview_tr.qm">translations/qpdfview_tr.qm</file>
         <file alias="qpdfview_ug.qm">translations/qpdfview_ug.qm</file>
         <file alias="qpdfview_uk.qm">translations/qpdfview_uk.qm</file>
+        <file alias="qpdfview_uz.qm">translations/qpdfview_uz.qm</file>
         <file alias="qpdfview_vi.qm">translations/qpdfview_vi.qm</file>
         <file alias="qpdfview_zh_CN.qm">translations/qpdfview_zh_CN.qm</file>
+        <file alias="qpdfview_zh_TW.qm">translations/qpdfview_zh_TW.qm</file>
     </qresource>
 </RCC>
--
2.30.2 


From 00003 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:06:01 +0900
Subject: Fixed translation of Japanese 


diff --git a/translations/qpdfview_ja.ts b/translations/qpdfview_ja.ts
--- a/translations/qpdfview_ja.ts   2019-07-25 04:18:33.000000000 +0900
+++ b/translations/qpdfview_ja.ts   2021-10-31 20:08:03.576423410 +0900
@@ -278,7 +278,7 @@
     <message>
         <location filename="../sources/bookmarkdialog.cpp" line="39"/>
         <source>Bookmark</source>
-        <translation>しおり</translation>
+        <translation>ブックマーク</translation>
     </message>
     <message>
         <location filename="../sources/bookmarkdialog.cpp" line="48"/>
@@ -316,7 +316,7 @@
     <message>
         <location filename="../sources/bookmarkmenu.cpp" line="56"/>
         <source>&amp;Remove bookmark</source>
-        <translation>しおりを外す(&amp;R)</translation>
+        <translation>ブックマークを削除(&amp;R)</translation>
     </message>
 </context>
 <context>
@@ -324,7 +324,7 @@
     <message>
         <location filename="../sources/database.cpp" line="988"/>
         <source>Jump to page %1</source>
-        <translation>%1ページヘ跳ぶ</translation>
+        <translation>%1ページヘジャンプ</translation>
     </message>
 </context>
 <context>
@@ -577,7 +577,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="1609"/>
         <source>Jump to page</source>
-        <translation>指定ページへ跳ぶ</translation>
+        <translation>指定ページへジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="1609"/>
@@ -587,7 +587,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="2014"/>
         <source>Jump to page %1</source>
-        <translation>%1ページヘ跳ぶ</translation>
+        <translation>%1ページヘジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2165"/>
@@ -627,7 +627,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="2398"/>
         <source>&amp;Edit bookmark</source>
-        <translation>しおりを編集(&amp;E)</translation>
+        <translation>ブックマークを編集(&amp;E)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2815"/>
@@ -747,17 +747,17 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3180"/>
         <source>&amp;Jump to page...</source>
-        <translation>指定ページへ跳ぶ(&amp;J)...</translation>
+        <translation>指定ページへジャンプ(&amp;J)...</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3182"/>
         <source>Jump &amp;backward</source>
-        <translation>後ろに跳ぶ(&amp;B)</translation>
+        <translation>後ろにジャンプ(&amp;B)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3183"/>
         <source>Jump for&amp;ward</source>
-        <translation>前に跳ぶ(&amp;W)</translation>
+        <translation>前にジャンプ(&amp;W)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3185"/>
@@ -927,17 +927,17 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3246"/>
         <source>&amp;Previous bookmark</source>
-        <translation>前のしおり(&amp;P)</translation>
+        <translation>前のブックマーク(&amp;P)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3247"/>
         <source>&amp;Next bookmark</source>
-        <translation>次のしおり(&amp;N)</translation>
+        <translation>次のブックマーク(&amp;N)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3249"/>
         <source>&amp;Add bookmark</source>
-        <translation>しおりを付ける(&amp;A)</translation>
+        <translation>ブックマークを追加(&amp;A)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3261"/>
@@ -967,7 +967,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3461"/>
         <source>Book&amp;marks</source>
-        <translation>しおり(&amp;M)</translation>
+        <translation>ブックマーク(&amp;M)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3533"/>
@@ -978,7 +978,7 @@
         <location filename="../sources/mainwindow.cpp" line="2397"/>
         <location filename="../sources/mainwindow.cpp" line="3250"/>
         <source>&amp;Remove bookmark</source>
-        <translation>しおりを外す(&amp;R)</translation>
+        <translation>ブックマークを削除(&amp;R)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2959"/>
@@ -998,7 +998,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3251"/>
         <source>Remove all bookmarks</source>
-        <translation>しおりを全て外す</translation>
+        <translation>ブックマークを全て削除</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3255"/>
@@ -1061,7 +1061,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3579"/>
         <source>&amp;Bookmarks</source>
-        <translation>しおり(&amp;B)</translation>
+        <translation>ブックマーク(&amp;B)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3590"/>
@@ -1086,12 +1086,12 @@
     <message>
         <location filename="../sources/pageitem.cpp" line="379"/>
         <source>Go to page %1.</source>
-        <translation>%1ページに跳びます。</translation>
+        <translation>%1ページに飛びます。</translation>
     </message>
     <message>
         <location filename="../sources/pageitem.cpp" line="383"/>
         <source>Go to page %1 of file &apos;%2&apos;.</source>
-        <translation>ファイル「%2」の%1ページに跳びます。</translation>
+        <translation>ファイル「%2」の%1ページに飛びます。</translation>
     </message>
     <message>
         <location filename="../sources/pageitem.cpp" line="391"/>
@@ -1548,7 +1548,7 @@
     <message>
         <location filename="../sources/settingsdialog.cpp" line="262"/>
         <source>Restore bookmarks:</source>
-        <translation>しおりを復元:</translation>
+        <translation>ブックマークを復元:</translation>
     </message>
     <message>
         <location filename="../sources/settingsdialog.cpp" line="265"/>
@@ -1950,12 +1950,12 @@
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="262"/>
         <source>Skip backward</source>
-        <translation>後ろに跳ぶ</translation>
+        <translation>後ろにジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="266"/>
         <source>Skip forward</source>
-        <translation>前に跳ぶ</translation>
+        <translation>前にジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="270"/>


diff --git a/help/help_ja.html b/help/help_ja.html
--- a/help/help_ja.html 2019-07-25 04:18:33.000000000 +0900
+++ b/help/help_ja.html 2021-10-31 20:09:04.576423410 +0900
@@ -44,7 +44,7 @@
         <li><a href="#edit">編集</a></li>
         <li><a href="#view">表示</a></li>
         <li><a href="#tabs">タブ</a></li>
-        <li><a href="#bookmarks">しおり</a></li>
+        <li><a href="#bookmarks">ブックマーク</a></li>
         <li><a href="#help">ヘルプ</a></li>
     </ol>
     <li><a href="#mainview">メインビュー</a></li>
@@ -87,13 +87,13 @@
 
 <ul>
     <li><b>前ページ/次ページ/最初のページ/最後のページ</b> 文書の前のページ、次のページ、最初のページ、最後のページへ移動します。</li>
-    <li><b>指定ページへ跳ぶ...</b> 現在のタブに表示するページを入力するダイアログを開きます。</li>
-    <li><b>後ろに跳ぶ/前に跳ぶ</b> 表示されているページの履歴で前後に跳びます。</li>
+    <li><b>指定ページへジャンプ...</b> 現在のタブに表示するページを入力するダイアログを開きます。</li>
+    <li><b>後ろにジャンプ/前にジャンプ</b> 表示されているページの履歴で前後に飛びます。</li>
     <li><b>検索...</b>
 メインビューの下に検索ドックを開きます。そこに文字を入力すると、2秒後に自動的に検索が開始されます。また、リターンキーを押して手動で開始することもできます。リターンキーを押下する際に
 Shift キーも押しておくと、現在のタブだけではなく全てのタブに対して検索を行います
 (この挙動は、設定で拡張検索ドックが有効になっていると逆になります)。</li>
-    <li><b>前を検索/次を検索</b> 文書内の検索用語が出現する前の場所、次の場所に跳びます。</li>
+    <li><b>前を検索/次を検索</b> 文書内の検索用語が出現する前の場所、次の場所に飛びます。</li>
     <li><b>検索を取り消す</b> 現在実行中の検索を取り止め、検索ドックを閉じます。</li>
     <li><b>クリップボードにコピー</b> チェックを入れると、ドラッグで範囲選択できるようになり、選択した部分のテキストや画像をコピーすることができます。</li>
     <li><b>註釈を追加</b> チェックを入れると、ドラッグで範囲選択できるようになり、選択した部分に註釈を追加することができます。</li>
@@ -130,7 +130,7 @@
     <li><b>プレゼンテーション...</b> F12 を押すとプレゼンテーションモードになります。Home キーを押すと最初のページを、End
 キーを押すと最後のページを表示します。矢印キーの → と ↓、スペースキーと Page Down キーで次のページに移動します。矢印キーの ← と
 ↑、Back Space キーと Page Up キーで前のページに移動します。Ctrl
-キーを押しながらリターンキーを押すと、前に表示したページに跳びます。</li>
+キーを押しながらリターンキーを押すと、前に表示したページに飛びます。</li>
 </ul>
 
 <p><b>拡大率</b>は Ctrl + L
@@ -149,17 +149,17 @@
 <p>このメニューには、クリックすることで現在のタブとして表示できる全てのタブが、メニュー項目として表示されます。タブは中クリックで閉じることができます。最初の9個までのタブは、Alt
 キーを押しながら 1 〜 9 の数字キーを押すことで切り替えることもできます。</p>
 
-<h4><a name="bookmarks">しおり</a> <a href="#top">&uarr;</a></h4>
+<h4><a name="bookmarks">ブックマーク</a> <a href="#top">&uarr;</a></h4>
 
 <ul>
-    <li><b>前のしおり</b> 現在のページより前の直近のしおりに跳びます。</li>
-    <li><b>次のしおり</b> 現在のページより後の直近のしおりに跳びます。</li>
-    <li><b>しおりを付ける</b> 現在のファイルとページにしおりを追加します。</li>
-    <li><b>しおりを外す</b> 現在のファイルとページからしおりを削除します。</li>
-    <li><b>しおりを全て外す</b> 全てのしおりを削除します。</li>
+    <li><b>前のブックマーク</b> 現在のページより前の直近のブックマークに飛びます。</li>
+    <li><b>次のブックマーク</b> 現在のページより後の直近のブックマークに飛びます。</li>
+    <li><b>ブックマークを追加</b> 現在のファイルとページにブックマークを追加します。</li>
+    <li><b>ブックマークを削除</b> 現在のファイルとページからブックマークを削除します。</li>
+    <li><b>ブックマークを全て削除</b> 全てのブックマークを削除します。</li>
     <li><b>開く</b> 任意のファイルを現在のタブに開きます。タブが無い場合は新しいタブにファイルが開かれます。</li>
     <li><b>新規タブで開く</b> 新しいタブにファイルを開きます。</li>
-    <li><b>指定ページへ跳ぶ</b> 対象のファイルを既に開いている場合は、直接そのページに移動します。そうでない場合は新しいタブにファイルを開きます。</li>
+    <li><b>指定ページへジャンプ</b> 対象のファイルを既に開いている場合は、直接そのページに移動します。そうでない場合は新しいタブにファイルを開きます。</li>
 </ul>
 
 <h4><a name="help">ヘルプ</a> <a href="#top">&uarr;</a></h4>
--
2.30.2 

→追加したコミットは3つで、差分は5つ

-


4). レシピファイルを仮に修正:

正式なパッチファイルを作成する準備

レシピを退避:

> cd ~/Git/haikuports/app-text/qpdfview/
> cp qpdfview-0.4.18.recipe qpdfview-0.4.18.recipe-ORG

-

レシピを修正:

> lpe qpdfview-0.4.18.recipe

→「BUILD()」を含んだ、それ以降の行をすべて削除

-


5). 「work-0.4.18」フォルダを削除

> rm -r ~/Git/haikuports/app-text/qpdfview/work-0.4.18

-


6). パッケージ化を実行

> cd ~/Git/haikuporter/
~/Git/haikuporter> hp qpdfview

:
Applying patchset "/boot/home/Git/haikuports/app-text/qpdfview/patches/qpdfview-0.4.18.patchset" ...
Applying: Haiku build fix
Applying: Patch for newer Qt versions
Applying: Fix installation path
Applying: Changed to reflect Japanese translation files
Applying: Fixed translation of Japanese
:
grabbing qpdfview-0.4.18-4-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/qpdfview-0.4.18-4-x86_64.hpkg

→パッケージ化できたように表示しますが、無視します。

-


7). コミット履歴の確認:

> cd ~/Git/haikuports/app-text/qpdfview/work-0.4.18/sources/qpdfview-0.4.18/
> git log
4.18> git log
commit a48f65f154e60da9dd5928d50e87bc3b321c87cf (HEAD -> haikuport)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Oct 29 15:06:01 2021 +0900

    Fixed translation of Japanese

commit 84b1a80a68cca80666aa89da87477be85aca872d
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Oct 29 15:04:08 2021 +0900

    Changed to reflect Japanese translation files

commit 9b4348f73715e3b40db7cb5de6a76ef00a8169ba
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Oct 29 15:03:10 2021 +0900

    Fix installation path

commit 7057cfb36ff6f0a402d789bb8cf544da37da0db1
Author: Jerome Duval <jerome.duval@gmail.com>
Date:   Fri Jan 15 09:38:14 2021 +0100

    Patch for newer Qt versions

commit 68a9d5d7e6a1c489c707a78473bb7bdb36ebedc2
Author: Zoltán Mizsei <zmizsei@extrowerk.com>
Date:   Tue Jul 11 14:16:23 2017 +0200

    Haiku build fix

commit f01081526c359e0d5798f136b0299f5899c13234 (tag: ORIGIN)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Mon Nov 1 13:38:17 2021 +0900

    import

→コミットは 6つですが、パッチとしてはコミットが 5つ (2+1+2) 必要です。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -

-

9. 正式なパッチファイルを作成:

-


1). やり方は「メール可能なパッチファイル」を作成すること:

コミットされていないと使えないコマンドです。

> git format-patch -5

0001-Haiku-build-fix.patch
0002-Patch-for-newer-Qt-versions.patch
0003-Fix-installation-path.patch
0004-Changed-to-reflect-Japanese-translation-files.patch
0005-Fixed-translation-of-Japanese.patch

→パッチファイルの数の指定は必須で、コミットごとにファイルが作成され、コミットメッセージがファイル名になります。ファイル名指定や作者指定、コミット番号間の指定ができます。

-

コミットのログは古い番号が下ですが、パッチとしては古い番号が上です。パッチは古い順に適用する必要があります。その辺りを考えて、ファイルの番号が付いていることに注目。親切です。ログとは逆順です。

これらを複数含んだファイルが「patchset」ファイルです。 コミット番号があるということは、チェックサム (sha1) が付いているのと同じらしいのですが、よくわかりません。

-


2). 作成された 5つのパッチファイルの内容を2行ずつ空けて並べました

-

> lpe ~/Git/haikuports/app-text/qpdfview/patches/qpdfview-0.4.18.patchset

↓ すべての内容を置換

From 65447b84f2c158ebe678f84f7cff06c015e9040d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Tue, 11 Jul 2017 14:16:23 +0200
Subject: [PATCH 1/5] Haiku build fix

---
 application.pro | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/application.pro b/application.pro
index 509f6e2..4893525 100644
--- a/application.pro
+++ b/application.pro
@@ -262,6 +262,8 @@ static_resources {
     RESOURCES += help.qrc translations.qrc
 }
 
+haiku:LIBS += -lnetwork -lpoppler -lpoppler-qt5
+
 DEFINES += DATA_INSTALL_PATH=\\\"$${DATA_INSTALL_PATH}\\\"
 
 
-- 
2.30.2

From ed7aaa2b7f01ce07df73f223618200677faa47d4 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 15 Jan 2021 09:38:14 +0100
Subject: [PATCH 2/5] Patch for newer Qt versions

---
 sources/model.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sources/model.h b/sources/model.h
index 6363c32..dc10a8c 100644
--- a/sources/model.h
+++ b/sources/model.h
@@ -27,6 +27,7 @@ along with qpdfview.  If not, see <http://www.gnu.org/licenses/>.
 #include <QtPlugin>
 #include <QWidget>
 #include <QVector>
+#include <QPainterPath>
 
 class QAbstractItemModel;
 class QColor;
-- 
2.30.2


From c5d6a0ffa020ce7b75469ef778ef7d1f250e0245 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:03:10 +0900
Subject: [PATCH 3/5] Fix installation path

---
 qpdfview.pri | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/qpdfview.pri b/qpdfview.pri
index 6dbd353..6155ab7 100644
--- a/qpdfview.pri
+++ b/qpdfview.pri
@@ -1,12 +1,12 @@
 isEmpty(APPLICATION_VERSION):APPLICATION_VERSION = 0.4.18
 
-isEmpty(TARGET_INSTALL_PATH):TARGET_INSTALL_PATH = /usr/bin
-isEmpty(PLUGIN_INSTALL_PATH):PLUGIN_INSTALL_PATH = /usr/lib/qpdfview
-isEmpty(DATA_INSTALL_PATH):DATA_INSTALL_PATH = /usr/share/qpdfview
-isEmpty(MANUAL_INSTALL_PATH):MANUAL_INSTALL_PATH = /usr/share/man/man1
-isEmpty(ICON_INSTALL_PATH):ICON_INSTALL_PATH = /usr/share/icons/hicolor/scalable/apps
-isEmpty(LAUNCHER_INSTALL_PATH):LAUNCHER_INSTALL_PATH = /usr/share/applications
-isEmpty(APPDATA_INSTALL_PATH):APPDATA_INSTALL_PATH = /usr/share/appdata
+isEmpty(TARGET_INSTALL_PATH):TARGET_INSTALL_PATH = $appsDir/qPDFView
+isEmpty(PLUGIN_INSTALL_PATH):PLUGIN_INSTALL_PATH = $appsDir/qPDFView/lib
+isEmpty(DATA_INSTALL_PATH):DATA_INSTALL_PATH = $appsDir/qPDFView/data
+isEmpty(MANUAL_INSTALL_PATH):MANUAL_INSTALL_PATH = $appsDir/qPDFView/man/man1
+isEmpty(ICON_INSTALL_PATH):ICON_INSTALL_PATH = $appsDir/qPDFView/icons/hicolor/scalable/apps
+isEmpty(LAUNCHER_INSTALL_PATH):LAUNCHER_INSTALL_PATH = $appsDir/qPDFView/applications
+isEmpty(APPDATA_INSTALL_PATH):APPDATA_INSTALL_PATH = $appsDir/qPDFView/appdata
 
 win32:include(qpdfview_win32.pri)
 os2:include(qpdfview_os2.pri)
-- 
2.30.2


From b5af672c965a1febb3521ed1875d712804fc6350 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:04:08 +0900
Subject: [PATCH 4/5] Changed to reflect Japanese translation files

---
 qpdfview.pro     | 14 +++++++++++++-
 translations.qrc | 12 ++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/qpdfview.pro b/qpdfview.pro
index b9c112f..2170492 100644
--- a/qpdfview.pro
+++ b/qpdfview.pro
@@ -41,11 +41,13 @@ TRANSLATIONS += \
     translations/qpdfview_da.ts \
     translations/qpdfview_de.ts \
     translations/qpdfview_el.ts \
+    translations/qpdfview_en_AU.ts \
     translations/qpdfview_en_GB.ts \
     translations/qpdfview_eo.ts \
     translations/qpdfview_es.ts \
     translations/qpdfview_eu.ts \
     translations/qpdfview_fi.ts \
+    translations/qpdfview_fa.ts \
     translations/qpdfview_fr.ts \
     translations/qpdfview_gl.ts \
     translations/qpdfview_he.ts \
@@ -53,21 +55,31 @@ TRANSLATIONS += \
     translations/qpdfview_hu.ts \
     translations/qpdfview_id.ts \
     translations/qpdfview_it.ts \
+    translations/qpdfview_ja.ts \
     translations/qpdfview_kk.ts \
+    translations/qpdfview_ko.ts \
+    translations/qpdfview_ku.ts \
     translations/qpdfview_ky.ts \
     translations/qpdfview_lt.ts \
+    translations/qpdfview_lv.ts \
     translations/qpdfview_ms.ts \
     translations/qpdfview_my.ts \
+    translations/qpdfview_nb.ts \
+    translations/qpdfview_nds.ts \
+    translations/qpdfview_oc.ts \
     translations/qpdfview_pl.ts \
     translations/qpdfview_pt.ts \
     translations/qpdfview_pt_BR.ts \
     translations/qpdfview_ro.ts \
     translations/qpdfview_ru.ts \
     translations/qpdfview_sk.ts \
+    translations/qpdfview_sr.ts \
     translations/qpdfview_sv.ts \
     translations/qpdfview_th.ts \
     translations/qpdfview_tr.ts \
     translations/qpdfview_ug.ts \
     translations/qpdfview_uk.ts \
+    translations/qpdfview_uz.ts \
     translations/qpdfview_vi.ts \
-    translations/qpdfview_zh_CN.ts
+    translations/qpdfview_zh_CN.ts \
+    translations/qpdfview_zh_TW.ts
diff --git a/translations.qrc b/translations.qrc
index 7627a38..d631e13 100644
--- a/translations.qrc
+++ b/translations.qrc
@@ -10,10 +10,12 @@
         <file alias="qpdfview_da.qm">translations/qpdfview_da.qm</file>
         <file alias="qpdfview_de.qm">translations/qpdfview_de.qm</file>
         <file alias="qpdfview_el.qm">translations/qpdfview_el.qm</file>
+        <file alias="qpdfview_en_AU.qm">translations/qpdfview_en_AU.qm</file>
         <file alias="qpdfview_en_GB.qm">translations/qpdfview_en_GB.qm</file>
         <file alias="qpdfview_eo.qm">translations/qpdfview_eo.qm</file>
         <file alias="qpdfview_es.qm">translations/qpdfview_es.qm</file>
         <file alias="qpdfview_eu.qm">translations/qpdfview_eu.qm</file>
+        <file alias="qpdfview_fa.qm">translations/qpdfview_fa.qm</file>
         <file alias="qpdfview_fi.qm">translations/qpdfview_fi.qm</file>
         <file alias="qpdfview_fr.qm">translations/qpdfview_fr.qm</file>
         <file alias="qpdfview_gl.qm">translations/qpdfview_gl.qm</file>
@@ -22,23 +24,33 @@
         <file alias="qpdfview_hu.qm">translations/qpdfview_hu.qm</file>
         <file alias="qpdfview_id.qm">translations/qpdfview_id.qm</file>
         <file alias="qpdfview_it.qm">translations/qpdfview_it.qm</file>
+        <file alias="qpdfview_ja.qm">translations/qpdfview_ja.qm</file>
         <file alias="qpdfview_kk.qm">translations/qpdfview_kk.qm</file>
+        <file alias="qpdfview_ko.qm">translations/qpdfview_ko.qm</file>
+        <file alias="qpdfview_ku.qm">translations/qpdfview_ku.qm</file>
         <file alias="qpdfview_ky.qm">translations/qpdfview_ky.qm</file>
         <file alias="qpdfview_lt.qm">translations/qpdfview_lt.qm</file>
+        <file alias="qpdfview_lv.qm">translations/qpdfview_lv.qm</file>
         <file alias="qpdfview_ms.qm">translations/qpdfview_ms.qm</file>
         <file alias="qpdfview_my.qm">translations/qpdfview_my.qm</file>
+        <file alias="qpdfview_nb.qm">translations/qpdfview_nb.qm</file>
+        <file alias="qpdfview_nds.qm">translations/qpdfview_nds.qm</file>
+        <file alias="qpdfview_oc.qm">translations/qpdfview_oc.qm</file>
         <file alias="qpdfview_pl.qm">translations/qpdfview_pl.qm</file>
         <file alias="qpdfview_pt_BR.qm">translations/qpdfview_pt_BR.qm</file>
         <file alias="qpdfview_pt.qm">translations/qpdfview_pt.qm</file>
         <file alias="qpdfview_ro.qm">translations/qpdfview_ro.qm</file>
         <file alias="qpdfview_ru.qm">translations/qpdfview_ru.qm</file>
         <file alias="qpdfview_sk.qm">translations/qpdfview_sk.qm</file>
+        <file alias="qpdfview_sr.qm">translations/qpdfview_sr.qm</file>
         <file alias="qpdfview_sv.qm">translations/qpdfview_sv.qm</file>
         <file alias="qpdfview_th.qm">translations/qpdfview_th.qm</file>
         <file alias="qpdfview_tr.qm">translations/qpdfview_tr.qm</file>
         <file alias="qpdfview_ug.qm">translations/qpdfview_ug.qm</file>
         <file alias="qpdfview_uk.qm">translations/qpdfview_uk.qm</file>
+        <file alias="qpdfview_uz.qm">translations/qpdfview_uz.qm</file>
         <file alias="qpdfview_vi.qm">translations/qpdfview_vi.qm</file>
         <file alias="qpdfview_zh_CN.qm">translations/qpdfview_zh_CN.qm</file>
+        <file alias="qpdfview_zh_TW.qm">translations/qpdfview_zh_TW.qm</file>
     </qresource>
 </RCC>
-- 
2.30.2


From d4b4bba37b33751be7612e2c6962f1796f1adde9 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:06:01 +0900
Subject: [PATCH 5/5] Fixed translation of Japanese

---
 help/help_ja.html           | 24 ++++++++++-----------
 translations/qpdfview_ja.ts | 42 ++++++++++++++++++-------------------
 2 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/help/help_ja.html b/help/help_ja.html
index 4cff09f..c86e043 100644
--- a/help/help_ja.html
+++ b/help/help_ja.html
@@ -44,7 +44,7 @@ This file is additionally licensed under the Creative Commons Attribution-ShareA
         <li><a href="#edit">編集</a></li>
         <li><a href="#view">表示</a></li>
         <li><a href="#tabs">タブ</a></li>
-        <li><a href="#bookmarks">しおり</a></li>
+        <li><a href="#bookmarks">ブックマーク</a></li>
         <li><a href="#help">ヘルプ</a></li>
     </ol>
     <li><a href="#mainview">メインビュー</a></li>
@@ -87,13 +87,13 @@ This file is additionally licensed under the Creative Commons Attribution-ShareA
 
 <ul>
     <li><b>前ページ/次ページ/最初のページ/最後のページ</b> 文書の前のページ、次のページ、最初のページ、最後のページへ移動します。</li>
-    <li><b>指定ページへ跳ぶ...</b> 現在のタブに表示するページを入力するダイアログを開きます。</li>
-    <li><b>後ろに跳ぶ/前に跳ぶ</b> 表示されているページの履歴で前後に跳びます。</li>
+    <li><b>指定ページへジャンプ...</b> 現在のタブに表示するページを入力するダイアログを開きます。</li>
+    <li><b>後ろにジャンプ/前にジャンプ</b> 表示されているページの履歴で前後に飛びます。</li>
     <li><b>検索...</b>
 メインビューの下に検索ドックを開きます。そこに文字を入力すると、2秒後に自動的に検索が開始されます。また、リターンキーを押して手動で開始することもできます。リターンキーを押下する際に
 Shift キーも押しておくと、現在のタブだけではなく全てのタブに対して検索を行います
 (この挙動は、設定で拡張検索ドックが有効になっていると逆になります)。</li>
-    <li><b>前を検索/次を検索</b> 文書内の検索用語が出現する前の場所、次の場所に跳びます。</li>
+    <li><b>前を検索/次を検索</b> 文書内の検索用語が出現する前の場所、次の場所に飛びます。</li>
     <li><b>検索を取り消す</b> 現在実行中の検索を取り止め、検索ドックを閉じます。</li>
     <li><b>クリップボードにコピー</b> チェックを入れると、ドラッグで範囲選択できるようになり、選択した部分のテキストや画像をコピーすることができます。</li>
     <li><b>註釈を追加</b> チェックを入れると、ドラッグで範囲選択できるようになり、選択した部分に註釈を追加することができます。</li>
@@ -130,7 +130,7 @@ Shift キーも押しておくと、現在のタブだけではなく全ての
     <li><b>プレゼンテーション...</b> F12 を押すとプレゼンテーションモードになります。Home キーを押すと最初のページを、End
 キーを押すと最後のページを表示します。矢印キーの → と ↓、スペースキーと Page Down キーで次のページに移動します。矢印キーの ← と
 ↑、Back Space キーと Page Up キーで前のページに移動します。Ctrl
-キーを押しながらリターンキーを押すと、前に表示したページに跳びます。</li>
+キーを押しながらリターンキーを押すと、前に表示したページに飛びます。</li>
 </ul>
 
 <p><b>拡大率</b>は Ctrl + L
@@ -149,17 +149,17 @@ Shift キーも押しておくと、現在のタブだけではなく全ての
 <p>このメニューには、クリックすることで現在のタブとして表示できる全てのタブが、メニュー項目として表示されます。タブは中クリックで閉じることができます。最初の9個までのタブは、Alt
 キーを押しながら 1 〜 9 の数字キーを押すことで切り替えることもできます。</p>
 
-<h4><a name="bookmarks">しおり</a> <a href="#top">&uarr;</a></h4>
+<h4><a name="bookmarks">ブックマーク</a> <a href="#top">&uarr;</a></h4>
 
 <ul>
-    <li><b>前のしおり</b> 現在のページより前の直近のしおりに跳びます。</li>
-    <li><b>次のしおり</b> 現在のページより後の直近のしおりに跳びます。</li>
-    <li><b>しおりを付ける</b> 現在のファイルとページにしおりを追加します。</li>
-    <li><b>しおりを外す</b> 現在のファイルとページからしおりを削除します。</li>
-    <li><b>しおりを全て外す</b> 全てのしおりを削除します。</li>
+    <li><b>前のブックマーク</b> 現在のページより前の直近のブックマークに飛びます。</li>
+    <li><b>次のブックマーク</b> 現在のページより後の直近のブックマークに飛びます。</li>
+    <li><b>ブックマークを追加</b> 現在のファイルとページにブックマークを追加します。</li>
+    <li><b>ブックマークを削除</b> 現在のファイルとページからブックマークを削除します。</li>
+    <li><b>ブックマークを全て削除</b> 全てのブックマークを削除します。</li>
     <li><b>開く</b> 任意のファイルを現在のタブに開きます。タブが無い場合は新しいタブにファイルが開かれます。</li>
     <li><b>新規タブで開く</b> 新しいタブにファイルを開きます。</li>
-    <li><b>指定ページへ跳ぶ</b> 対象のファイルを既に開いている場合は、直接そのページに移動します。そうでない場合は新しいタブにファイルを開きます。</li>
+    <li><b>指定ページへジャンプ</b> 対象のファイルを既に開いている場合は、直接そのページに移動します。そうでない場合は新しいタブにファイルを開きます。</li>
 </ul>
 
 <h4><a name="help">ヘルプ</a> <a href="#top">&uarr;</a></h4>
diff --git a/translations/qpdfview_ja.ts b/translations/qpdfview_ja.ts
index 6440e97..c0c8d4f 100644
--- a/translations/qpdfview_ja.ts
+++ b/translations/qpdfview_ja.ts
@@ -278,7 +278,7 @@
     <message>
         <location filename="../sources/bookmarkdialog.cpp" line="39"/>
         <source>Bookmark</source>
-        <translation>しおり</translation>
+        <translation>ブックマーク</translation>
     </message>
     <message>
         <location filename="../sources/bookmarkdialog.cpp" line="48"/>
@@ -316,7 +316,7 @@
     <message>
         <location filename="../sources/bookmarkmenu.cpp" line="56"/>
         <source>&amp;Remove bookmark</source>
-        <translation>しおりを外す(&amp;R)</translation>
+        <translation>ブックマークを削除(&amp;R)</translation>
     </message>
 </context>
 <context>
@@ -324,7 +324,7 @@
     <message>
         <location filename="../sources/database.cpp" line="988"/>
         <source>Jump to page %1</source>
-        <translation>%1ページヘ跳ぶ</translation>
+        <translation>%1ページヘジャンプ</translation>
     </message>
 </context>
 <context>
@@ -577,7 +577,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="1609"/>
         <source>Jump to page</source>
-        <translation>指定ページへ跳ぶ</translation>
+        <translation>指定ページへジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="1609"/>
@@ -587,7 +587,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="2014"/>
         <source>Jump to page %1</source>
-        <translation>%1ページヘ跳ぶ</translation>
+        <translation>%1ページヘジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2165"/>
@@ -627,7 +627,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="2398"/>
         <source>&amp;Edit bookmark</source>
-        <translation>しおりを編集(&amp;E)</translation>
+        <translation>ブックマークを編集(&amp;E)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2815"/>
@@ -747,17 +747,17 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3180"/>
         <source>&amp;Jump to page...</source>
-        <translation>指定ページへ跳ぶ(&amp;J)...</translation>
+        <translation>指定ページへジャンプ(&amp;J)...</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3182"/>
         <source>Jump &amp;backward</source>
-        <translation>後ろに跳ぶ(&amp;B)</translation>
+        <translation>後ろにジャンプ(&amp;B)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3183"/>
         <source>Jump for&amp;ward</source>
-        <translation>前に跳ぶ(&amp;W)</translation>
+        <translation>前にジャンプ(&amp;W)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3185"/>
@@ -927,17 +927,17 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3246"/>
         <source>&amp;Previous bookmark</source>
-        <translation>前のしおり(&amp;P)</translation>
+        <translation>前のブックマーク(&amp;P)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3247"/>
         <source>&amp;Next bookmark</source>
-        <translation>次のしおり(&amp;N)</translation>
+        <translation>次のブックマーク(&amp;N)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3249"/>
         <source>&amp;Add bookmark</source>
-        <translation>しおりを付ける(&amp;A)</translation>
+        <translation>ブックマークを追加(&amp;A)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3261"/>
@@ -967,7 +967,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3461"/>
         <source>Book&amp;marks</source>
-        <translation>しおり(&amp;M)</translation>
+        <translation>ブックマーク(&amp;M)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3533"/>
@@ -978,7 +978,7 @@
         <location filename="../sources/mainwindow.cpp" line="2397"/>
         <location filename="../sources/mainwindow.cpp" line="3250"/>
         <source>&amp;Remove bookmark</source>
-        <translation>しおりを外す(&amp;R)</translation>
+        <translation>ブックマークを削除(&amp;R)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2959"/>
@@ -998,7 +998,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3251"/>
         <source>Remove all bookmarks</source>
-        <translation>しおりを全て外す</translation>
+        <translation>ブックマークを全て削除</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3255"/>
@@ -1061,7 +1061,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3579"/>
         <source>&amp;Bookmarks</source>
-        <translation>しおり(&amp;B)</translation>
+        <translation>ブックマーク(&amp;B)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3590"/>
@@ -1086,12 +1086,12 @@
     <message>
         <location filename="../sources/pageitem.cpp" line="379"/>
         <source>Go to page %1.</source>
-        <translation>%1ページに跳びます。</translation>
+        <translation>%1ページに飛びます。</translation>
     </message>
     <message>
         <location filename="../sources/pageitem.cpp" line="383"/>
         <source>Go to page %1 of file &apos;%2&apos;.</source>
-        <translation>ファイル「%2」の%1ページに跳びます。</translation>
+        <translation>ファイル「%2」の%1ページに飛びます。</translation>
     </message>
     <message>
         <location filename="../sources/pageitem.cpp" line="391"/>
@@ -1548,7 +1548,7 @@
     <message>
         <location filename="../sources/settingsdialog.cpp" line="262"/>
         <source>Restore bookmarks:</source>
-        <translation>しおりを復元:</translation>
+        <translation>ブックマークを復元:</translation>
     </message>
     <message>
         <location filename="../sources/settingsdialog.cpp" line="265"/>
@@ -1950,12 +1950,12 @@
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="262"/>
         <source>Skip backward</source>
-        <translation>後ろに跳ぶ</translation>
+        <translation>後ろにジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="266"/>
         <source>Skip forward</source>
-        <translation>前に跳ぶ</translation>
+        <translation>前にジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="270"/>
-- 
2.30.2

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --

-

10. ヘルプが日本語表示されるようにレシピファイルを修正:

-


1). メニューは日本語表示されましたが、ヘルプが日本語化されません

→英語のヘルプは表示されるのでファイルの配置はOK です。

OS の違いによるプログラム側の切り替えがうまく働かない(locale のパラメータとか表示はLinux とは異なります)からでしょう。プログラム的なことはわからないので強引にローカライズしました。

-

最初は自動でヘルプを切り替えるつもりでした:
 HELP_L=`locale -l`
    cp $appsDir/qPDFView/data/help_$HELP_L.html \
        $appsDir/qPDFView/data/help.html

→パッケージ化にて下記のエラー:

cp: cannot stat '/packages/qpdfview-0.4.18-4/.self/apps/qPDFView/data/help_en.html': No such file or directory

→よく考えたら、chrootローカライズ環境は英語 (en) です。なので、英語のヘルプファイルを見に行きます。 自動切り替えにはアプリ側をいじるしかないので、手動設定にしてデフォルトは英語にしました。

-


2). 最終的に見直したレシピファイル:

> cd ~/Git/haikuports/app-text/qpdfview/
> cp qpdfview-0.4.18.recipe-ORG qpdfview-0.4.18.recipe

-

> lpe qpdfview-0.4.18.recipe
:
SOURCE_URI="$HOMEPAGE/trunk/$portVersion/+download/qpdfview-$portVersion.tar.gz"
CHECKSUM_SHA256="cc642e7fa74029373ca9b9fbc29adc4883f8b455130a78ad54746d6844a0396c"
SOURCE_DIR="qpdfview-$portVersion"
PATCHES="qpdfview-$portVersion.patchset"
ADDITIONAL_FILES="qpdfview.rdef.in"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

PROVIDES="
    qpdfview$secondaryArchSuffix = $portVersion
    app:qPDFView$secondaryArchSuffix = $portVersion
    "
REQUIRES="
    haiku$secondaryArchSuffix
    lib:libdjvulibre$secondaryArchSuffix
    lib:libGl$secondaryArchSuffix
    lib:libmagic$secondaryArchSuffix
    lib:libpoppler$secondaryArchSuffix
    lib:libpoppler_qt5$secondaryArchSuffix
    lib:libQt5Concurrent$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Sql$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5Widgets$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libdjvulibre$secondaryArchSuffix
    devel:libGl$secondaryArchSuffix
    devel:libmagic$secondaryArchSuffix
    devel:libpoppler$secondaryArchSuffix >= 104
    devel:libpoppler_qt5$secondaryArchSuffix
    devel:libQt5Concurrent$secondaryArchSuffix
    devel:libQt5Core$secondaryArchSuffix
    devel:libQt5Gui$secondaryArchSuffix
    devel:libQt5PrintSupport$secondaryArchSuffix
    devel:libQt5Sql$secondaryArchSuffix
    devel:libQt5Svg$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libz$secondaryArchSuffix
    "
BUILD_PREREQUIRES="
    cmd:gcc$secondaryArchSuffix
    cmd:lrelease$secondaryArchSuffix >= 5
    cmd:make
    cmd:pkg_config$secondaryArchSuffix
    cmd:qmake$secondaryArchSuffix >= 5
    "

BUILD()
{
    lrelease qpdfview.pro

    mkdir -p haiku_build && cd haiku_build
    qmake ../qpdfview.pro \
        CONFIG+="without_ps without_cups without_synctex without_dbus without_signals" \
        TARGET_INSTALL_PATH=$appsDir/qPDFView \
        PLUGIN_INSTALL_PATH=$appsDir/qPDFView/lib \
        MANUAL_INSTALL_PATH=$manDir

    make $jobArgs
}

INSTALL()
{
    cd haiku_build
    make install

    mkdir -p $appsDir/qPDFView/data
    cp -r ../ppsDir/qPDFView/appdata $appsDir/qPDFView/
    cp -r ../ppsDir/qPDFView/data/* $appsDir/qPDFView/data/

    #Translate Help file (Please uncomment and change the language)
    #cp $appsDir/qPDFView/data/help_ja.html $appsDir/qPDFView/data/help.html
    
    mv $appsDir/qPDFView/qpdfview $appsDir/qPDFView/qPDFView
    # Icon
    local MAJOR="`echo "$portVersion" | cut -d. -f1`"
    local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
    local MINOR="`echo "$portVersion" | cut -d. -f3`"
    sed \
        -e "s|@MAJOR@|$MAJOR|" \
        -e "s|@MIDDLE@|$MIDDLE|" \
        -e "s|@MINOR@|$MINOR|" \
        $portDir/additional-files/qpdfview.rdef.in > qpdfview.rdef

    addResourcesToBinaries qpdfview.rdef \
        $appsDir/qPDFView/qPDFView

    addAppDeskbarSymlink $appsDir/qPDFView/qPDFView
}

→ヘルプファイルを翻訳したい時は、「#Translate Help file ...」の下の行のコメントを外します。 自動化するにはアプリ側の変更が必要です。

-


3). 「work-0.4.18」フォルダを削除

> rm -r ~/Git/haikuports/app-text/qpdfview/work-0.4.18

-


4). パッケージ化を実行

> cd ~/Git/haikuporter/
~/Git/haikuporter> hp qpdfview
:
Applying patchset "/boot/home/Git/haikuports/app-text/qpdfview/patches/qpdfview-0.4.18.patchset" ...
Applying: Haiku build fix
Applying: Patch for newer Qt versions
Applying: Fix installation path
Applying: Changed to reflect Japanese translation files
Applying: Fixed translation of Japanese
:
grabbing qpdfview-0.4.18-4-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/qpdfview-0.4.18-4-x86_64.hpkg

→正常に終了

-


5). パッケージ化されたかの確認:

> ls -1 ~/Git/haikuports/packages/

qpdfview-0.4.18-4-x86_64.hpkg  ←(追加されました)

-


6). インストールして確認:

> pkgman install ~/Git/haikuports/packages/qpdfview-0.4.18-4-x86_64.hpkg

→メニューから起動して確認。

メニューもヘルプも日本語化されました。

(コメントを解除しないと、ヘルプは日本語化されません)

-

-


7). システム更新で上書きされます

個人的に問題なのは、Haiku が「nightly ビルド」ということで、ほぼ毎日更新があり、適用するとせっかく日本語化した「qpdfview」が元の英語に戻ってしまうこと。

→下記の実行で復帰します:

> pkgman uninstall qpdfview
> pkgman install /boot/home/Git/haikuports/packages/qpdfview-0.4.18-4-x86_64.hpkg

→端末の履歴があるので楽です。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ---

-

11. 日本語の翻訳を除いてから、プルリクエストを提出:

-

プルリクエストしてレビューしてもらい、修正が完了してから、再度プルリクエストしました。

-

追記: →採用:

FuRuYa7 QPDFView: Reflection of Japanese translation (#6379)

-

最初、プルリクエストしたら、レビューしてのリクエスト(指摘の項目)が多いので驚きました。すべてクリアしないとOK をもらえません。ただし、気長に待ってくれます。

できるだけアップストリームで処理(アプリの本家で対応)してもらう方針みたい。これにより、両方のアプリの質も上がり、移植もしやすくなります。

的確なアドバイスがあります。おかげて、レシピは以前よりも確実なものに仕上がったと思います。ただし、それが採用されるかはわかりません。ただし、採用されなくても向こうは専門家なので、こちらの勉強になることは確かです。

→追記: 採用されました。「」になり日本語化されました。ヘルプ表示も日本語です。

-

ヘルプの表示が自動で日本語に切替えできないのが、問題として残っていました

アプリ側をいじる必要がありそう。

-

追記: 翻訳ファイルを利用した自動化に成功しました

→これだと、各言語ごとに翻訳されたヘルプファイルは、翻訳を見直す必要があります。

コメントを読むとこの部分の翻訳は「推奨」みたい。なので、すでに対処済(理解して行っていたかは不明)の言語が半分ほどありました。

-

    <message>
        <location filename="../sources/helpdialog.cpp" line="48"/>
        <source>help.html</source>
        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
        <translation>help_ja.html</translation>   ←(修正しました)
    </message>

和訳:

可能な場合は、ローカライズ(翻訳)されたヘルプのファイル名に置き換えてください。 例 help_fr.html

→指定する場合は、実際にそのファイル名のファイルが必要です。

-

翻訳されたヘルプファイルがすでにあるもの:
> cd /boot/home/Git/haikuports/app-text/qpdfview/work-0.4.18/sources/qpdfview-0.4.18/help/
> ls -1

help_az.html
help_bg.html
help_ca.html     ←(すでに修正済でした)
help_cs.html     ←(すでに修正済でした)
help_da.html
help_de.html     ←(すでに修正済でした)
help_en_GB.html   ←(すでに修正済でした)
help_es.html     ←(すでに修正済でした)
help_fa.html
help_fi.html
help_fr.html     ←(すでに修正済でした)
help_gl.html
help_it.html     ←(すでに修正済でした)
help_ja.html
help_ko.html
help_ku.html
help_lt.html     ←(すでに修正済でした)
help_ms.html
help_pl.html
help_pt_BR.html   ←(すでに修正済でした)
help_pt.html     ←(すでに修正済でした)
help_ru.html     ←(すでに修正済でした)
help_sk.html     ←(すでに修正済でした)
help_sr.html
help_sv.html
help_tr.html
help_uk.html     ←(すでに修正済でした)
help_vi.html
help_zh_CN.html   ←(すでに修正済でした)
help_zh_TW.html
help.html      ←(デフォルトなので除きます)

→英語のヘルプで使いたいと思っている言語もありますが、これらのヘルプファイルが存在する(無くても可)ということは、ヘルプの翻訳を望んでいるということです。

なので、ファイルが存在して、修正されていない言語のみ限定でパッチしました。 また、ファイルがあっても一部しか翻訳されていない部分は英語になります。対象部分が未定義とかファイル名が現地語になって誤っていたのは修正しました。

-

推奨だけど強制ではない(そのままでも可の)翻訳ですが、ファイルがある場合はファイル名を翻訳(修正)しました:

translations/qpdfview_ja.ts :

-        <translation>help.html</translation>
+        <translation>help_ja.html</translation>

→推奨なので、アップストリーム(アプリの本家)にはプルリクエストできません。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----

-

12. プルリクエストで仕上がった、レシピファイルとパッチファイル

-

提出先がアプリの本家になる「日本語の翻訳」の部分はパッチファイルから外してあります。

-


1). レシピファイル:

> cat ~/Git/haikuports/app-text/qpdfview/qpdfview-0.4.18.recipe
SUMMARY="A tabbed document viewer"
DESCRIPTION="qPDFView is a tabbed document viewer using Poppler, libspectre, \
DjVuLibre, CUPS and Qt, licensed under GPL version 2 or later."
HOMEPAGE="https://launchpad.net/qpdfview/"
COPYRIGHT="Adam Reichold et al."
LICENSE="GNU GPL v2"
REVISION="4"
SOURCE_URI="$HOMEPAGE/trunk/$portVersion/+download/qpdfview-$portVersion.tar.gz"
CHECKSUM_SHA256="cc642e7fa74029373ca9b9fbc29adc4883f8b455130a78ad54746d6844a0396c"
SOURCE_DIR="qpdfview-$portVersion"
PATCHES="qpdfview-$portVersion.patchset"
ADDITIONAL_FILES="qpdfview.rdef.in"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

PROVIDES="
    qpdfview$secondaryArchSuffix = $portVersion
    app:qPDFView$secondaryArchSuffix = $portVersion
    "
REQUIRES="
    haiku$secondaryArchSuffix
    lib:libdjvulibre$secondaryArchSuffix
    lib:libGl$secondaryArchSuffix
    lib:libmagic$secondaryArchSuffix
    lib:libpoppler$secondaryArchSuffix
    lib:libpoppler_qt5$secondaryArchSuffix
    lib:libQt5Concurrent$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Sql$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5Widgets$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libdjvulibre$secondaryArchSuffix
    devel:libGl$secondaryArchSuffix
    devel:libmagic$secondaryArchSuffix
    devel:libpoppler$secondaryArchSuffix >= 104
    devel:libpoppler_qt5$secondaryArchSuffix
    devel:libQt5Concurrent$secondaryArchSuffix
    devel:libQt5Core$secondaryArchSuffix
    devel:libQt5Gui$secondaryArchSuffix
    devel:libQt5PrintSupport$secondaryArchSuffix
    devel:libQt5Sql$secondaryArchSuffix
    devel:libQt5Svg$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libz$secondaryArchSuffix
    "
BUILD_PREREQUIRES="
    cmd:gcc$secondaryArchSuffix
    cmd:lrelease$secondaryArchSuffix >= 5
    cmd:make
    cmd:pkg_config$secondaryArchSuffix
    cmd:qmake$secondaryArchSuffix >= 5
    "

BUILD()
{
    lrelease qpdfview.pro

    mkdir -p haiku_build && cd haiku_build
    qmake ../qpdfview.pro \
        CONFIG+="without_ps without_cups without_synctex without_dbus without_signals" \
        TARGET_INSTALL_PATH=$appsDir/qPDFView \
        PLUGIN_INSTALL_PATH=$appsDir/qPDFView/lib \
        DATA_INSTALL_PATH=$appsDir/qPDFView/data \    ←(これがないと翻訳されません)
        MANUAL_INSTALL_PATH=$manDir

    make $jobArgs
}

INSTALL()
{
    cd haiku_build
    make install

    #To translate the help file, modify "translations/qpdfview_??.ts". ←(ヘルプの翻訳の注意書き)
    #Replace the written "<translation>help.html</translation>"
    # with "<translation>help_??.html</translation>".

    mv $appsDir/qPDFView/qpdfview $appsDir/qPDFView/qPDFView
    # Icon
    local MAJOR="`echo "$portVersion" | cut -d. -f1`"
    local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
    local MINOR="`echo "$portVersion" | cut -d. -f3`"
    sed \
        -e "s|@MAJOR@|$MAJOR|" \
        -e "s|@MIDDLE@|$MIDDLE|" \
        -e "s|@MINOR@|$MINOR|" \
        $portDir/additional-files/qpdfview.rdef.in > qpdfview.rdef

    addResourcesToBinaries qpdfview.rdef \
        $appsDir/qPDFView/qPDFView

    addAppDeskbarSymlink $appsDir/qPDFView/qPDFView
}

→「qmake」の部分がポイントでした。

メニューは日本語化されますが、ヘルプは英語です。ヘルプを日本語化するには、「translations/qpdfview_ja.ts」の内容の一部を変更する必要がありますが、修正するパッチを追加したので、パッケージ化で日本語化されます。

-

参考: ヘルプの日本語表示への切替について:

「sources/helpdialog.cpp」の「ヘルプファイル名」がローカライズされていることに気づきました。

47行目:

    //: Please replace by file name of localized help if available, e.g. "help_fr.html".
    m_textBrowser->setSource(QUrl::fromLocalFile(tr("help.html")));

-

→ヘルプファイルを翻訳するには、例えば「translations/qpdfview_ja.ts」ファイルに書かれている「help.html」を「help_ja.html」に置き換えます。これでアプリに使うべきファイル名が渡されます。翻訳ファイルの機能をファイルの切替に応用しました。

というか、コメントを読むとそう出来ていたみたい。というか、原因となる部分にコメントは書かれているので、そこまでたどり着けないとコメントは読めません。たどり着いて、コメントを見て、あぁそうなのか、と理解するわけです。README かINSTALL など最初に見るインストールガイドに書いておくべきかな。というか、書かれていてもよく読んでいなかっただけだったりして。

-


2). パッチファイル:

> cat ~/Git/haikuports/app-text/qpdfview/patches/qpdfview-0.4.18.patchset
From c75c6606e3ad5c701cf6ab78c2b68dad1abdc3cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Tue, 11 Jul 2017 14:16:23 +0200
Subject: Haiku build fix          ←(既存のパッチ)


diff --git a/application.pro b/application.pro
index 509f6e2..4893525 100644
--- a/application.pro
+++ b/application.pro
@@ -262,6 +262,8 @@ static_resources {
     RESOURCES += help.qrc translations.qrc
 }
 
+haiku:LIBS += -lnetwork -lpoppler -lpoppler-qt5
+
 DEFINES += DATA_INSTALL_PATH=\\\"$${DATA_INSTALL_PATH}\\\"
 
 
-- 
2.30.0


From ec4088665b53ea9e343997d319c2b1db89944fb9 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 15 Jan 2021 09:38:14 +0100
Subject: Patch for newer Qt versions       ←(既存のパッチ)


diff --git a/sources/model.h b/sources/model.h
index 6363c32..dc10a8c 100644
--- a/sources/model.h
+++ b/sources/model.h
@@ -27,6 +27,7 @@ along with qpdfview.  If not, see <http://www.gnu.org/licenses/>.
 #include <QtPlugin>
 #include <QWidget>
 #include <QVector>
+#include <QPainterPath>
 
 class QAbstractItemModel;
 class QColor;
-- 
2.30.0


From b5af672c965a1febb3521ed1875d712804fc6350 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:04:08 +0900
Subject: [PATCH] Changed to reflect Japanese translation files


diff --git a/qpdfview.pro b/qpdfview.pro
index b9c112f..2170492 100644
--- a/qpdfview.pro
+++ b/qpdfview.pro
@@ -41,11 +41,13 @@ TRANSLATIONS += \
     translations/qpdfview_da.ts \
     translations/qpdfview_de.ts \
     translations/qpdfview_el.ts \
+    translations/qpdfview_en_AU.ts \
     translations/qpdfview_en_GB.ts \
     translations/qpdfview_eo.ts \
     translations/qpdfview_es.ts \
     translations/qpdfview_eu.ts \
     translations/qpdfview_fi.ts \
+    translations/qpdfview_fa.ts \
     translations/qpdfview_fr.ts \
     translations/qpdfview_gl.ts \
     translations/qpdfview_he.ts \
@@ -53,21 +55,31 @@ TRANSLATIONS += \
     translations/qpdfview_hu.ts \
     translations/qpdfview_id.ts \
     translations/qpdfview_it.ts \
+    translations/qpdfview_ja.ts \
     translations/qpdfview_kk.ts \
+    translations/qpdfview_ko.ts \
+    translations/qpdfview_ku.ts \
     translations/qpdfview_ky.ts \
     translations/qpdfview_lt.ts \
+    translations/qpdfview_lv.ts \
     translations/qpdfview_ms.ts \
     translations/qpdfview_my.ts \
+    translations/qpdfview_nb.ts \
+    translations/qpdfview_nds.ts \
+    translations/qpdfview_oc.ts \
     translations/qpdfview_pl.ts \
     translations/qpdfview_pt.ts \
     translations/qpdfview_pt_BR.ts \
     translations/qpdfview_ro.ts \
     translations/qpdfview_ru.ts \
     translations/qpdfview_sk.ts \
+    translations/qpdfview_sr.ts \
     translations/qpdfview_sv.ts \
     translations/qpdfview_th.ts \
     translations/qpdfview_tr.ts \
     translations/qpdfview_ug.ts \
     translations/qpdfview_uk.ts \
+    translations/qpdfview_uz.ts \
     translations/qpdfview_vi.ts \
-    translations/qpdfview_zh_CN.ts
+    translations/qpdfview_zh_CN.ts \
+    translations/qpdfview_zh_TW.ts
diff --git a/translations.qrc b/translations.qrc
index 7627a38..d631e13 100644
--- a/translations.qrc
+++ b/translations.qrc
@@ -10,10 +10,12 @@
         <file alias="qpdfview_da.qm">translations/qpdfview_da.qm</file>
         <file alias="qpdfview_de.qm">translations/qpdfview_de.qm</file>
         <file alias="qpdfview_el.qm">translations/qpdfview_el.qm</file>
+        <file alias="qpdfview_en_AU.qm">translations/qpdfview_en_AU.qm</file>
         <file alias="qpdfview_en_GB.qm">translations/qpdfview_en_GB.qm</file>
         <file alias="qpdfview_eo.qm">translations/qpdfview_eo.qm</file>
         <file alias="qpdfview_es.qm">translations/qpdfview_es.qm</file>
         <file alias="qpdfview_eu.qm">translations/qpdfview_eu.qm</file>
+        <file alias="qpdfview_fa.qm">translations/qpdfview_fa.qm</file>
         <file alias="qpdfview_fi.qm">translations/qpdfview_fi.qm</file>
         <file alias="qpdfview_fr.qm">translations/qpdfview_fr.qm</file>
         <file alias="qpdfview_gl.qm">translations/qpdfview_gl.qm</file>
@@ -22,23 +24,33 @@
         <file alias="qpdfview_hu.qm">translations/qpdfview_hu.qm</file>
         <file alias="qpdfview_id.qm">translations/qpdfview_id.qm</file>
         <file alias="qpdfview_it.qm">translations/qpdfview_it.qm</file>
+        <file alias="qpdfview_ja.qm">translations/qpdfview_ja.qm</file>
         <file alias="qpdfview_kk.qm">translations/qpdfview_kk.qm</file>
+        <file alias="qpdfview_ko.qm">translations/qpdfview_ko.qm</file>
+        <file alias="qpdfview_ku.qm">translations/qpdfview_ku.qm</file>
         <file alias="qpdfview_ky.qm">translations/qpdfview_ky.qm</file>
         <file alias="qpdfview_lt.qm">translations/qpdfview_lt.qm</file>
+        <file alias="qpdfview_lv.qm">translations/qpdfview_lv.qm</file>
         <file alias="qpdfview_ms.qm">translations/qpdfview_ms.qm</file>
         <file alias="qpdfview_my.qm">translations/qpdfview_my.qm</file>
+        <file alias="qpdfview_nb.qm">translations/qpdfview_nb.qm</file>
+        <file alias="qpdfview_nds.qm">translations/qpdfview_nds.qm</file>
+        <file alias="qpdfview_oc.qm">translations/qpdfview_oc.qm</file>
         <file alias="qpdfview_pl.qm">translations/qpdfview_pl.qm</file>
         <file alias="qpdfview_pt_BR.qm">translations/qpdfview_pt_BR.qm</file>
         <file alias="qpdfview_pt.qm">translations/qpdfview_pt.qm</file>
         <file alias="qpdfview_ro.qm">translations/qpdfview_ro.qm</file>
         <file alias="qpdfview_ru.qm">translations/qpdfview_ru.qm</file>
         <file alias="qpdfview_sk.qm">translations/qpdfview_sk.qm</file>
+        <file alias="qpdfview_sr.qm">translations/qpdfview_sr.qm</file>
         <file alias="qpdfview_sv.qm">translations/qpdfview_sv.qm</file>
         <file alias="qpdfview_th.qm">translations/qpdfview_th.qm</file>
         <file alias="qpdfview_tr.qm">translations/qpdfview_tr.qm</file>
         <file alias="qpdfview_ug.qm">translations/qpdfview_ug.qm</file>
         <file alias="qpdfview_uk.qm">translations/qpdfview_uk.qm</file>
+        <file alias="qpdfview_uz.qm">translations/qpdfview_uz.qm</file>
         <file alias="qpdfview_vi.qm">translations/qpdfview_vi.qm</file>
         <file alias="qpdfview_zh_CN.qm">translations/qpdfview_zh_CN.qm</file>
+        <file alias="qpdfview_zh_TW.qm">translations/qpdfview_zh_TW.qm</file>
     </qresource>
 </RCC>
-- 
2.30.2


From 5860cc6ebce838730c160506b701509c573e4ac0 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:06:01 +0900
Subject: [PATCH] Fix to translate help file   ←(レシピにある注意書きの「ヘルプの翻訳」を行うパッチ)
                       アプリの本家には提出せずに、こちらにプルリクエスト

diff --git a/translations/qpdfview_az.ts b/translations/qpdfview_az.ts
index 61e42ee..1403809 100644
--- a/translations/qpdfview_az.ts
+++ b/translations/qpdfview_az.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>help.html</translation>
+        <translation>help_az.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_bg.ts b/translations/qpdfview_bg.ts
index 2f369d4..1a67a8e 100644
--- a/translations/qpdfview_bg.ts
+++ b/translations/qpdfview_bg.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>help.html</translation>
+        <translation>help_bg.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_da.ts b/translations/qpdfview_da.ts
index 0b0e167..e440414 100644
--- a/translations/qpdfview_da.ts
+++ b/translations/qpdfview_da.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>help.html</translation>
+        <translation>help_da.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_fa.ts b/translations/qpdfview_fa.ts
index 875530e..7720023 100644
--- a/translations/qpdfview_fa.ts
+++ b/translations/qpdfview_fa.ts
@@ -429,9 +429,8 @@
     <message>
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
-        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.
-</extracomment>
-        <translation type="unfinished"></translation>
+        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
+        <translation>help_fa.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_fi.ts b/translations/qpdfview_fi.ts
index 72b8147..2f2b8f8 100644
--- a/translations/qpdfview_fi.ts
+++ b/translations/qpdfview_fi.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation type="unfinished"></translation>
+        <translation>help_fi.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_gl.ts b/translations/qpdfview_gl.ts
index 6169aeb..896ea10 100644
--- a/translations/qpdfview_gl.ts
+++ b/translations/qpdfview_gl.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>help.html</translation>
+        <translation>help_gl.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_ja.ts b/translations/qpdfview_ja.ts
index c0c8d4f..88446dc 100644
--- a/translations/qpdfview_ja.ts
+++ b/translations/qpdfview_ja.ts
@@ -429,9 +429,8 @@
     <message>
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
-        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.
-</extracomment>
-        <translation>help.html</translation>
+        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
+        <translation>help_ja.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_ko.ts b/translations/qpdfview_ko.ts
index 5ab35b3..3a7b272 100644
--- a/translations/qpdfview_ko.ts
+++ b/translations/qpdfview_ko.ts
@@ -429,9 +429,8 @@
     <message>
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
-        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.
-</extracomment>
-        <translation type="unfinished"></translation>
+        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
+        <translation>help_ko.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_ku.ts b/translations/qpdfview_ku.ts
index 0e721f7..436b43b 100644
--- a/translations/qpdfview_ku.ts
+++ b/translations/qpdfview_ku.ts
@@ -429,9 +429,8 @@
     <message>
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
-        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.
-</extracomment>
-        <translation type="unfinished"></translation>
+        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
+        <translation>help_ku.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_ms.ts b/translations/qpdfview_ms.ts
index 9756691..38b4147 100644
--- a/translations/qpdfview_ms.ts
+++ b/translations/qpdfview_ms.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>help.html</translation>
+        <translation>help_ms.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_pl.ts b/translations/qpdfview_pl.ts
index 99bc54c..b9f2763 100644
--- a/translations/qpdfview_pl.ts
+++ b/translations/qpdfview_pl.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>help.html</translation>
+        <translation>help_pl.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_sr.ts b/translations/qpdfview_sr.ts
index 19c2b58..e6c387e 100644
--- a/translations/qpdfview_sr.ts
+++ b/translations/qpdfview_sr.ts
@@ -429,9 +429,8 @@
     <message>
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
-        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.
-</extracomment>
-        <translation>помоћ_rs.html</translation>
+        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
+        <translation>help_sr.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_sv.ts b/translations/qpdfview_sv.ts
index 24cdc6b..9dc9ee3 100644
--- a/translations/qpdfview_sv.ts
+++ b/translations/qpdfview_sv.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>help.html</translation>
+        <translation>help_sv.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_tr.ts b/translations/qpdfview_tr.ts
index 3c8e8a7..465b3b0 100644
--- a/translations/qpdfview_tr.ts
+++ b/translations/qpdfview_tr.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>yardım.html</translation>
+        <translation>help_tr.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_vi.ts b/translations/qpdfview_vi.ts
index 5735371..dfec310 100644
--- a/translations/qpdfview_vi.ts
+++ b/translations/qpdfview_vi.ts
@@ -417,7 +417,7 @@
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
         <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
-        <translation>help.html</translation>
+        <translation>help_vi.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
diff --git a/translations/qpdfview_zh_TW.ts b/translations/qpdfview_zh_TW.ts
index 55278e3..06152a6 100644
--- a/translations/qpdfview_zh_TW.ts
+++ b/translations/qpdfview_zh_TW.ts
@@ -429,9 +429,8 @@
     <message>
         <location filename="../sources/helpdialog.cpp" line="48"/>
         <source>help.html</source>
-        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.
-</extracomment>
-        <translation type="unfinished"></translation>
+        <extracomment>Please replace by file name of localized help if available, e.g. &quot;help_fr.html&quot;.</extracomment>
+        <translation>help_zh_TW.html</translation>
     </message>
     <message>
         <location filename="../sources/helpdialog.cpp" line="63"/>
-- 
2.30.2

→日本語だけでなく、他の言語(16)も反映されるように修正。一部をアプリの本家にバグ報告。

これらのコミットを入れないと、日本語化されたヘルプファイルがあってもヘルプ(目次)の表示は英語のままです。

locale の機能の差なのか、アプリでやるべき切替操作がHaiku の場合だとうまく働かないので、翻訳ファイルの機能で代用しました。(「sources/helpdialog.cpp」に書かれているヘルプファイル名「help.html」を変更します)

パッケージ化の時は、どの言語の環境にインストールされるのかはわかりません。 パッケージ化のときでなく、アプリの起動時に切り替えできることがポイントです。

-

-

追記: 「qpdfview.pri」のパッチがなくても動いたので、そのパッチ部分を削除しました。

→今までの苦労は何だったのか…。

-

レシピファイルは、qmake のパラメータ「DATA_INSTALL_PATH」を『1行追加しただけ』になりました。

$dataDir ではダメで、$appsDir でOK でした)

「qmake」があれば充分でしたね。自分の認識誤り。

-

「qpdfview.pri」が意味を持つのではなく、共通で使われているパラメータの定数「DATA_INSTALL_PATH」が重要でした。「qmake」があれば充分

→「qpdfview.pri」の指定がないので、デフォルトの「/usr/share」のパスが活きています。

作業ディレクトリの「work-0.4.18」に「usr」フォルダが作成されて、システムへの配置に漏れた「アイコン」や「デスクトップファイル」などのHaiku では使われないファイルがありました。作業ディレクトリ上なので支障ありません。

-


3). パッチファイル(上記の続き: 日本語対応分):

提出先のサイトが違うので、プルリクエストから除外した部分です。個人的に日本語化したい時に追加できます。

-

> lpe ~/Git/haikuports/app-text/qpdfview/patches/qpdfview-0.4.18.patchset

ファイルの後ろに空行を2つ入れてから、追加:

From d4b4bba37b33751be7612e2c6962f1796f1adde9 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 29 Oct 2021 15:06:01 +0900
Subject: [PATCH 1/2] Fixed translation of Japanese


diff --git a/help/help_ja.html b/help/help_ja.html
index 4cff09f..c86e043 100644
--- a/help/help_ja.html
+++ b/help/help_ja.html
@@ -44,7 +44,7 @@ This file is additionally licensed under the Creative Commons Attribution-ShareA
         <li><a href="#edit">編集</a></li>
         <li><a href="#view">表示</a></li>
         <li><a href="#tabs">タブ</a></li>
-        <li><a href="#bookmarks">しおり</a></li>
+        <li><a href="#bookmarks">ブックマーク</a></li>
         <li><a href="#help">ヘルプ</a></li>
     </ol>
     <li><a href="#mainview">メインビュー</a></li>
@@ -87,13 +87,13 @@ This file is additionally licensed under the Creative Commons Attribution-ShareA
 
 <ul>
     <li><b>前ページ/次ページ/最初のページ/最後のページ</b> 文書の前のページ、次のページ、最初のページ、最後のページへ移動します。</li>
-    <li><b>指定ページへ跳ぶ...</b> 現在のタブに表示するページを入力するダイアログを開きます。</li>
-    <li><b>後ろに跳ぶ/前に跳ぶ</b> 表示されているページの履歴で前後に跳びます。</li>
+    <li><b>指定ページへジャンプ...</b> 現在のタブに表示するページを入力するダイアログを開きます。</li>
+    <li><b>後ろにジャンプ/前にジャンプ</b> 表示されているページの履歴で前後に飛びます。</li>
     <li><b>検索...</b>
 メインビューの下に検索ドックを開きます。そこに文字を入力すると、2秒後に自動的に検索が開始されます。また、リターンキーを押して手動で開始することもできます。リターンキーを押下する際に
 Shift キーも押しておくと、現在のタブだけではなく全てのタブに対して検索を行います
 (この挙動は、設定で拡張検索ドックが有効になっていると逆になります)。</li>
-    <li><b>前を検索/次を検索</b> 文書内の検索用語が出現する前の場所、次の場所に跳びます。</li>
+    <li><b>前を検索/次を検索</b> 文書内の検索用語が出現する前の場所、次の場所に飛びます。</li>
     <li><b>検索を取り消す</b> 現在実行中の検索を取り止め、検索ドックを閉じます。</li>
     <li><b>クリップボードにコピー</b> チェックを入れると、ドラッグで範囲選択できるようになり、選択した部分のテキストや画像をコピーすることができます。</li>
     <li><b>註釈を追加</b> チェックを入れると、ドラッグで範囲選択できるようになり、選択した部分に註釈を追加することができます。</li>
@@ -130,7 +130,7 @@ Shift キーも押しておくと、現在のタブだけではなく全ての
     <li><b>プレゼンテーション...</b> F12 を押すとプレゼンテーションモードになります。Home キーを押すと最初のページを、End
 キーを押すと最後のページを表示します。矢印キーの → と ↓、スペースキーと Page Down キーで次のページに移動します。矢印キーの ← と
 ↑、Back Space キーと Page Up キーで前のページに移動します。Ctrl
-キーを押しながらリターンキーを押すと、前に表示したページに跳びます。</li>
+キーを押しながらリターンキーを押すと、前に表示したページに飛びます。</li>
 </ul>
 
 <p><b>拡大率</b>は Ctrl + L
@@ -149,17 +149,17 @@ Shift キーも押しておくと、現在のタブだけではなく全ての
 <p>このメニューには、クリックすることで現在のタブとして表示できる全てのタブが、メニュー項目として表示されます。タブは中クリックで閉じることができます。最初の9個までのタブは、Alt
 キーを押しながら 1 〜 9 の数字キーを押すことで切り替えることもできます。</p>
 
-<h4><a name="bookmarks">しおり</a> <a href="#top">&uarr;</a></h4>
+<h4><a name="bookmarks">ブックマーク</a> <a href="#top">&uarr;</a></h4>
 
 <ul>
-    <li><b>前のしおり</b> 現在のページより前の直近のしおりに跳びます。</li>
-    <li><b>次のしおり</b> 現在のページより後の直近のしおりに跳びます。</li>
-    <li><b>しおりを付ける</b> 現在のファイルとページにしおりを追加します。</li>
-    <li><b>しおりを外す</b> 現在のファイルとページからしおりを削除します。</li>
-    <li><b>しおりを全て外す</b> 全てのしおりを削除します。</li>
+    <li><b>前のブックマーク</b> 現在のページより前の直近のブックマークに飛びます。</li>
+    <li><b>次のブックマーク</b> 現在のページより後の直近のブックマークに飛びます。</li>
+    <li><b>ブックマークを追加</b> 現在のファイルとページにブックマークを追加します。</li>
+    <li><b>ブックマークを削除</b> 現在のファイルとページからブックマークを削除します。</li>
+    <li><b>ブックマークを全て削除</b> 全てのブックマークを削除します。</li>
     <li><b>開く</b> 任意のファイルを現在のタブに開きます。タブが無い場合は新しいタブにファイルが開かれます。</li>
     <li><b>新規タブで開く</b> 新しいタブにファイルを開きます。</li>
-    <li><b>指定ページへ跳ぶ</b> 対象のファイルを既に開いている場合は、直接そのページに移動します。そうでない場合は新しいタブにファイルを開きます。</li>
+    <li><b>指定ページへジャンプ</b> 対象のファイルを既に開いている場合は、直接そのページに移動します。そうでない場合は新しいタブにファイルを開きます。</li>
 </ul>
 
 <h4><a name="help">ヘルプ</a> <a href="#top">&uarr;</a></h4>
diff --git a/translations/qpdfview_ja.ts b/translations/qpdfview_ja.ts
index 6440e97..c0c8d4f 100644
--- a/translations/qpdfview_ja.ts
+++ b/translations/qpdfview_ja.ts
@@ -278,7 +278,7 @@
     <message>
         <location filename="../sources/bookmarkdialog.cpp" line="39"/>
         <source>Bookmark</source>
-        <translation>しおり</translation>
+        <translation>ブックマーク</translation>
     </message>
     <message>
         <location filename="../sources/bookmarkdialog.cpp" line="48"/>
@@ -316,7 +316,7 @@
     <message>
         <location filename="../sources/bookmarkmenu.cpp" line="56"/>
         <source>&amp;Remove bookmark</source>
-        <translation>しおりを外す(&amp;R)</translation>
+        <translation>ブックマークを削除(&amp;R)</translation>
     </message>
 </context>
 <context>
@@ -324,7 +324,7 @@
     <message>
         <location filename="../sources/database.cpp" line="988"/>
         <source>Jump to page %1</source>
-        <translation>%1ページヘ跳ぶ</translation>
+        <translation>%1ページヘジャンプ</translation>
     </message>
 </context>
 <context>
@@ -577,7 +577,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="1609"/>
         <source>Jump to page</source>
-        <translation>指定ページへ跳ぶ</translation>
+        <translation>指定ページへジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="1609"/>
@@ -587,7 +587,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="2014"/>
         <source>Jump to page %1</source>
-        <translation>%1ページヘ跳ぶ</translation>
+        <translation>%1ページヘジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2165"/>
@@ -627,7 +627,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="2398"/>
         <source>&amp;Edit bookmark</source>
-        <translation>しおりを編集(&amp;E)</translation>
+        <translation>ブックマークを編集(&amp;E)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2815"/>
@@ -747,17 +747,17 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3180"/>
         <source>&amp;Jump to page...</source>
-        <translation>指定ページへ跳ぶ(&amp;J)...</translation>
+        <translation>指定ページへジャンプ(&amp;J)...</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3182"/>
         <source>Jump &amp;backward</source>
-        <translation>後ろに跳ぶ(&amp;B)</translation>
+        <translation>後ろにジャンプ(&amp;B)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3183"/>
         <source>Jump for&amp;ward</source>
-        <translation>前に跳ぶ(&amp;W)</translation>
+        <translation>前にジャンプ(&amp;W)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3185"/>
@@ -927,17 +927,17 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3246"/>
         <source>&amp;Previous bookmark</source>
-        <translation>前のしおり(&amp;P)</translation>
+        <translation>前のブックマーク(&amp;P)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3247"/>
         <source>&amp;Next bookmark</source>
-        <translation>次のしおり(&amp;N)</translation>
+        <translation>次のブックマーク(&amp;N)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3249"/>
         <source>&amp;Add bookmark</source>
-        <translation>しおりを付ける(&amp;A)</translation>
+        <translation>ブックマークを追加(&amp;A)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3261"/>
@@ -967,7 +967,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3461"/>
         <source>Book&amp;marks</source>
-        <translation>しおり(&amp;M)</translation>
+        <translation>ブックマーク(&amp;M)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3533"/>
@@ -978,7 +978,7 @@
         <location filename="../sources/mainwindow.cpp" line="2397"/>
         <location filename="../sources/mainwindow.cpp" line="3250"/>
         <source>&amp;Remove bookmark</source>
-        <translation>しおりを外す(&amp;R)</translation>
+        <translation>ブックマークを削除(&amp;R)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="2959"/>
@@ -998,7 +998,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3251"/>
         <source>Remove all bookmarks</source>
-        <translation>しおりを全て外す</translation>
+        <translation>ブックマークを全て削除</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3255"/>
@@ -1061,7 +1061,7 @@
     <message>
         <location filename="../sources/mainwindow.cpp" line="3579"/>
         <source>&amp;Bookmarks</source>
-        <translation>しおり(&amp;B)</translation>
+        <translation>ブックマーク(&amp;B)</translation>
     </message>
     <message>
         <location filename="../sources/mainwindow.cpp" line="3590"/>
@@ -1086,12 +1086,12 @@
     <message>
         <location filename="../sources/pageitem.cpp" line="379"/>
         <source>Go to page %1.</source>
-        <translation>%1ページに跳びます。</translation>
+        <translation>%1ページに飛びます。</translation>
     </message>
     <message>
         <location filename="../sources/pageitem.cpp" line="383"/>
         <source>Go to page %1 of file &apos;%2&apos;.</source>
-        <translation>ファイル「%2」の%1ページに跳びます。</translation>
+        <translation>ファイル「%2」の%1ページに飛びます。</translation>
     </message>
     <message>
         <location filename="../sources/pageitem.cpp" line="391"/>
@@ -1548,7 +1548,7 @@
     <message>
         <location filename="../sources/settingsdialog.cpp" line="262"/>
         <source>Restore bookmarks:</source>
-        <translation>しおりを復元:</translation>
+        <translation>ブックマークを復元:</translation>
     </message>
     <message>
         <location filename="../sources/settingsdialog.cpp" line="265"/>
@@ -1950,12 +1950,12 @@
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="262"/>
         <source>Skip backward</source>
-        <translation>後ろに跳ぶ</translation>
+        <translation>後ろにジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="266"/>
         <source>Skip forward</source>
-        <translation>前に跳ぶ</translation>
+        <translation>前にジャンプ</translation>
     </message>
     <message>
         <location filename="../sources/shortcuthandler.cpp" line="270"/>
--
2.30.2

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -----

-

13. 参考: Qt アプリの翻訳ファイルの配置はアプリごとにマチマチ

-

  • 翻訳ファイルの置かれるべき場所を知っているのはアプリだけ。置かれる場所がわからないので迷います

-

Qt5 ツールの場合:

/boot/system/data/Qt5/translations/assistant_ja.qm
/boot/system/data/Qt5/translations/designer_ja.qm
/boot/system/data/Qt5/translations/linguist_ja.qm
/boot/system/data/Qt5/translations/qt_help_ja.qm
/boot/system/data/Qt5/translations/qt_ja.qm
/boot/system/data/Qt5/translations/qtbase_ja.qm

-

Otter ブラウザの場合:

/boot/system/apps/Otter-Browser/locale/otter-browser_ja.qm

-

Qt アプリ外の場合:

/boot/system/data/locale/ja/LC_MESSAGES/kwrite.mo
/boot/system/data/locale/ja/LC_MESSAGES/nano.mo

→予想しやすい配置

-

Haiku 専用のアプリの場合:

/boot/system/data/locale/catalogs/x-vnd.Mozc-MozcTool/ja.catalog

→配置の場所はだいたいがここだけど、実行ファイルに組み込まれる前の元ファイルです。また、ファイル属性が重要な意味を持ちます。(ファイル属性として)組み込まれれば不要になるので、例えば「Koder」では配置していません。

→配置はないし、Git のメイン(最新と思っていたら旧バージョンでした)にもなかったので、翻訳ファイルがないと思い、無駄に翻訳ファイルを作ってしまいました。GitHub でのバージョン名やタグの付け方とか、管理はマチマチなので、こうだろうと勝手に思っていると痛い思いをします。

-

翻訳者と開発者は違うことがほとんどなので、翻訳してもそれが採用されたかどうかすぐにはわかりません。不具合で表示されない場合、その言語の人、それも翻訳者でも不採用と思い気づけないわけで、漏れてしまうことが時々あります。

翻訳ファイルが配置されていれば「翻訳ファイルはあるけど翻訳されていない」等、開発者でなくても気づきやすいと個人的には思います。無駄といえば無駄ですが…。色々なケースがあると思っていた方が良いです。

-

ちなみに、「qpdfview」の場合は、翻訳ファイルとか、その修正は受け付けているけど、反映されるのは大きなバージョンのタイミングのようです。なので、翻訳者が翻訳ファイルを修正してもそれが採用されているのかわからないからか、いくつかの言語の翻訳ファイルの反映が漏れてされない状態でした。(認識されていて次期バージョンで対応)

-

Xubuntu 20.04.3 に「qpdfview」をインストールした場合:

/usr/share/qpdfview/help_ja.html
/usr/share/qpdfview/qpdfview_ja.qm

→アプリ直下に置かれてました。

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -

-

14. 参考: Haiku のファイル属性について:

-

前回の「featherpad」アプリにおいて調べた情報です。

-

1). フォルダにもファイル属性があります:

-

2). 「/boot/system/」にはファイル属性は設定されていません

つまり、ここから下にマウントされて行くということ。

> listattr /boot/system/
listattr: stat failed for "SYS:PACKAGE": No such file or directory
listattr: stat failed for "SYS:PACKAGE_FILE": No such file or directory

-

3). 「/boot/system/apps/」以降から、ファイル属性が設定されています

> listattr /boot/system/apps/
        Text        27  "SYS:PACKAGE"    →string : haiku-r1~beta3_hrev55602-1
        Text        39  "SYS:PACKAGE_FILE" →string : haiku-r1~beta3_hrev55602-1-x86_64.hpkg
        Text        45  "SYS:NAME"     →string : x-vnd.Haiku-libtracker:B_APPS_DIRECTORY:apps
 MIME String        31  "BEOS:TYPE"  →MIMS' : application/x-vnd.Be-directory

→更新の対象となる「システム」のパッケージになっています。

-

4). ファイル属性の内容:

> catattr "SYS:NAME" /boot/system/apps/
/boot/system/apps/ : string : x-vnd.Haiku-libtracker:B_APPS_DIRECTORY:apps

> catattr "SYS:PACKAGE" /boot/system/apps/
/boot/system/apps/ : string : haiku-r1~beta3_hrev55602-1

> catattr "SYS:PACKAGE_FILE" /boot/system/apps/
/boot/system/apps/ : string : haiku-r1~beta3_hrev55602-1-x86_64.hpkg

> catattr "BEOS:TYPE" /boot/system/apps/
/boot/system/apps/ : 'MIMS' : application/x-vnd.Be-directory

-

5). その下の「/boot/system/apps/FeatherPad/」(アプリのフォルダ)のファイル属性

> listattr /boot/system/apps/FeatherPad/
File: /boot/system/apps/FeatherPad/
        Text        19  "SYS:PACKAGE"    →string : featherpad-1.0.1-1
        Text        31  "SYS:PACKAGE_FILE" →string : featherpad-1.0.1-1-x86_64.hpkg
 MIME String        31  "BEOS:TYPE"

→アプリのパッケージ名が確認できます。

-

6). 「/boot/system/apps/FeatherPad/data/」のファイル属性

> listattr /boot/system/apps/FeatherPad/data/
File: /boot/system/apps/FeatherPad/data/
        Type       Size  Name                                
----------------------------------------------------------
        Text        19  "SYS:PACKAGE"    →string : featherpad-1.0.1-1
        Text        31  "SYS:PACKAGE_FILE" →string : featherpad-1.0.1-1-x86_64.hpkg
 MIME String        31  "BEOS:TYPE"

-

7). 「/boot/system/apps/FeatherPad/data/help_ja」のファイル属性

> listattr /boot/system/apps/FeatherPad/data/help_ja
File: help_ja
        Type       Size  Name                                
----------------------------------------------------------
        Text        19  "SYS:PACKAGE"
        Text        31  "SYS:PACKAGE_FILE"
 MIME String        11  "BEOS:TYPE"

142 bytes total in attributes.

→フォルダの属性が一部引き継がれます。

-

> catattr "SYS:PACKAGE" help_ja
help_ja : string : featherpad-1.0.1-1

> catattr "SYS:PACKAGE_FILE" help_ja
help_ja : string : featherpad-1.0.1-1-x86_64.hpkg

> catattr "BEOS:TYPE" help_ja
help_ja : 'MIMS' : text/plain

-

8). 「/boot/system/apps/FeatherPad/translations/」のファイル属性

> listattr featherpad_ja.qm
File: featherpad_ja.qm
        Type       Size  Name                                
----------------------------------------------------------
        Text        19  "SYS:PACKAGE"
        Text        31  "SYS:PACKAGE_FILE"
 MIME String        25  "BEOS:TYPE"

75 bytes total in attributes.

-

9). 「/boot/system/apps/FeatherPad/translations/featherpad_ja.qm」のファイル属性

        Text        19  "SYS:PACKAGE"    →string : featherpad-1.0.1-1
        Text        31  "SYS:PACKAGE_FILE" →string : featherpad-1.0.1-1-x86_64.hpkg
 MIME String        25  "BEOS:TYPE"

-

> catattr "SYS:PACKAGE" featherpad_ja.qm
featherpad_ja.qm : string : featherpad-1.0.1-1

> catattr "SYS:PACKAGE_FILE" featherpad_ja.qm
featherpad_ja.qm : string : featherpad-1.0.1-1-x86_64.hpkg

> catattr "BEOS:TYPE" featherpad_ja.qm
featherpad_ja.qm : 'MIMS' : application/octet-stream

-


10). /boot/system/apps/FeatherPad/data/help_ja

-

> cd /boot/system/apps/FeatherPad/data/

> listattr help_ja
File: help_ja
        Type       Size  Name                                
----------------------------------------------------------
        Text        19  "SYS:PACKAGE"
        Text        31  "SYS:PACKAGE_FILE"
 MIME String        11  "BEOS:TYPE"

142 bytes total in attributes.

-


11). 実行ファイル「/boot/system/apps/FeatherPad/FeatherPad」のファイル属性:

> cd /boot/system/apps/FeatherPad/

> catattr "SYS:PACKAGE" FeatherPad
FeatherPad : string : featherpad-1.0.1-1


> catattr "SYS:PACKAGE_FILE" FeatherPad
FeatherPad : string : featherpad-1.0.1-1-x86_64.hpkg

> catattr "BEOS:TYPE" FeatherPad
FeatherPad : 'MIMS' : application/x-vnd.be-elfexecutable

> catattr "BEOS:APP_SIG" FeatherPad
FeatherPad : 'MIMS' : application/x-vnd.featherpad

> catattr "BEOS:APP_FLAGS" FeatherPad
FeatherPad : 'APPF' : 0x000000:  01 00 00 00                                       '....            '

> catattr "BEOS:FILE_TYPES" FeatherPad
FeatherPad : message : BMessage(0x0) {
        types[0] = string("text/x-source-code", 19 bytes)
        types[1] = string("text/x-makefile", 16 bytes)
        types[2] = string("text/x-jamfile", 15 bytes)
        types[3] = string("text/html", 10 bytes)
        types[4] = string("text/xml", 9 bytes)
        types[5] = string("text/plain", 11 bytes)
        types[6] = string("text/rtf", 9 bytes)
}

-

> catattr "BEOS:M:STD_ICON" FeatherPad
FeatherPad : 'MICN' : 0x000000:  1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1a   '................'
0x000010:  1f 1c 1c 17 14 13 15 14 14 15 13 14 17 1c 1c 1a   '................'
0x000020:  1c 18 1c 15 13 10 15 14 14 16 11 14 15 1d 18 16   '................'
0x000030:  1c 1b 1f 1e 1d 1d 1a 17 16 18 19 1d 1e 1f 1b 16   '................'
0x000040:  1c 1b 1d 17 18 8e b4 b4 b4 b4 b4 ae 17 1d 1b 16   '................'
0x000050:  1c 1b 1c 16 ae b4 b4 b4 b4 b4 16 1d 1d 1d 1b 16   '................'
0x000060:  1c 1b 1d 87 b4 b4 b5 b4 b4 18 1e 18 19 1f 1b 16   '................'
0x000070:  1b 1b 1d b4 b4 d5 b4 b4 8e 1d 1f 1f 1f 1f 1b 15   '................'
0x000080:  1b 1b 1d b4 b5 b4 b4 8e 1e 1f 1f 1f 1f 1f 1b 15   '................'
0x000090:  1b 1b 1b b4 b4 b4 13 1c 1f 1f 1f 1f 1f 1f 1b 15   '................'
0x0000a0:  1b 1a 1a d5 8e 15 18 18 19 1d 18 18 18 1c 1b 15   '................'
0x0000b0:  1c 1b 15 16 1a 18 1a 1f 1f 1f 1f 1f 1f 1f 1b 16   '................'
0x0000c0:  1c 1b 11 1d 1e 1e 1e 1f 1f 1f 1f 1f 1f 1f 1c 16   '................'
0x0000d0:  1c 1a 1a 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1a 16   '................'
0x0000e0:  1c 16 17 16 16 16 16 17 16 16 16 16 16 17 16 16   '................'
0x0000f0:  1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ff   '................'

-

> catattr "BEOS:L:STD_ICON" FeatherPad
FeatherPad : 'ICON' : 0x000000:  1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f   '................'
0x000010:  1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f ff   '................'
0x000020:  1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f   '................'
0x000030:  1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f ff   '................'
0x000040:  1f 1f 1f 1f 1f 1f 1e 13 10 1c 16 15 1d 16 14 1a   '................'
0x000050:  19 12 19 1d 15 17 1d 11 14 1f 1f 1f 1f 1f 1f ff   '................'
0x000060:  1f 1e 17 18 18 18 17 10 10 10 10 10 11 0e 13 0d   '................'
:
0x000390:  1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 16 18 ff   '................'
0x0003a0:  1f 18 13 14 13 12 12 12 12 12 12 12 12 12 13 13   '................'
0x0003b0:  13 13 12 12 12 12 12 12 12 12 13 13 14 14 19 ff   '................'
0x0003c0:  1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f   '................'
0x0003d0:  1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f 1f ff   '................'
0x0003e0:  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   '................'
0x0003f0:  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   '................'

-

> catattr "BEOS:APP_VERSION" FeatherPad
FeatherPad : 'APPV' : 0x000000:  01 00 00 00 00 00 00 00 01 00 00 00 05 00 00 00   '................'
0x000010:  00 00 00 00 46 65 61 74 68 65 72 50 61 64 00 00   '....FeatherPad..'
0x000020:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   '................'
0x000030:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   '................'
0x000040:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   '................'
0x000050:  00 00 00 00 4c 69 67 68 74 77 65 69 67 68 74 20   '....Lightweight.'
0x000060:  51 74 35 20 74 65 78 74 20 65 64 69 74 6f 72 00   'Qt5.text.editor.'
0x000070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   '................'
0x000080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   '................'
:
0x000290:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   '................'
0x0002a0:  00 00 00 00 00 00 00 00                           '........        '

-

> catattr "BEOS:ICON" FeatherPad
FeatherPad : 'VICN' : 0x000000:  6e 63 69 66 1a 05 fe 03 82 84 81 03 69 6b 67 03   'ncif........ikg.'
0x000010:  87 89 86 03 a7 a8 a6 03 b3 b4 b2 03 b4 b4 b3 03   '................'
0x000020:  a2 a3 9f 05 f9 03 d2 d9 e1 05 fa 03 4d 76 a3 03   '............Mv..'
:
0x000a50:  f3 ca 7d bc 34 ca 77 ca 5d ca 61 c3 47 ca 6a ca   '..}.4.w.].a.G.j.'
0x000a60:  8a ca 7d cb 12 ca ce ca e5 ca b4 c3 87 cb 00 1e   '..}.............'
0x000a70:  0a 00 02 00 01 00 0a 01 01 02 00 0a 02 03 03 04   '................'
0x000a80:  05 00 0a 02 01 06 00 0a 02 01 07 00 0a 03 01 08   '................'
0x000a90:  00 0a 04 01 09 00 0a 04 01 0a 00 0a 05 01 0b 00   '................'
0x000aa0:  0a 06 01 0c 00 0a 07 01 0d 00 0a 07 01 0e 00 0a   '................'
0x000ab0:  08 01 0f 00 0a 09 01 10 00 0a 0a 04 11 12 13 14   '................'
0x000ac0:  00 0a 0b 01 15 00 0a 0c 01 16 00 0a 0d 01 17 00   '................'
0x000ad0:  0a 0e 01 18 00 0a 0f 01 19 00 0a 10 01 1a 00 0a   '................'
0x000ae0:  11 01 1b 00 0a 12 01 1c 00 0a 13 01 1d 00 0a 14   '................'
0x000af0:  01 1e 00 0a 15 01 1f 00 0a 16 01 20 00 0a 17 01   '................'
0x000b00:  21 00 0a 18 01 22 00 0a 19 01 23 00               '!...."....#.    '

-

-

12). インストールされた実行ファイルの「qPDFView」のファイル属性の情報:

「/boot/system/apps/qPDFView」

-

> pwd
/boot/system/apps/qPDFView

> cd /boot/system/apps/qPDFView/

> ls
lib  qPDFView

> listattr qPDFView
File: qPDFView
        Type       Size  Name                                
----------------------------------------------------------
        Text        18  "SYS:PACKAGE"
        Text        30  "SYS:PACKAGE_FILE"
 MIME String        35  "BEOS:TYPE"
 MIME String        27  "BEOS:APP_SIG"   ←(シグネチャ)
      'APPF'         4  "BEOS:APP_FLAGS"
      'MSGG'       235  "BEOS:FILE_TYPES"
   Mini Icon       256  "BEOS:M:STD_ICON"
        Icon      1024  "BEOS:L:STD_ICON"
      'APPV'       680  "BEOS:APP_VERSION"
      'VICN'      3192  "BEOS:ICON"     ←(アイコン)

5501 bytes total in attributes.
> catattr "BEOS:APP_SIG" qPDFView
qPDFView : 'MIMS' : application/x-vnd.qpdfview

-

-


まとめ

移植済みの「qpdfview-0.4.18」を日本語化できるかトライしました。

このアプリの場合は機能が多いので日本語化した方が使いやすくなると思います。

-

今回は「日本語の翻訳ファイルが含まれているけど日本語化されていない」ケースでした。

-

個人的に問題なのは、Haiku が「nightly ビルド」なので、毎日の更新でせっかく日本語化した「qpdfview」が元の英語に戻ってしまうこと。APT にある特定のアプリの更新を停めるオプションが欲しいところです。

-

その対応としてプルリクエスト(ソース修正案の採用依頼)を送りました。 「たった1行の追加」にだいぶ時間を費やしました。

ちなみに、「Launchpad 」ではバージョン管理は git(Git) ではなく、bzr(Bazaar) が使われています。使ったことがないシステムなので、敷居が高いですね。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-