マージ方法の変更 - pgsql-jp/jpug-doc GitHub Wiki

マージ方法の変更

これまで

これまでバージョンアップ時にPostgreSQL本家の更新と日本語マニュアルの更新をマージしていました。

例:

元の原文

<para>
原文1.
原文2.
</para>

日本語訳を追加

<para>
<!--
原文1.
原文2.
-->
日本語1。
日本語2。
</para>

バージョンアップで「原文3」が追加されるとマージした時にコンフリクトが発生。 原文3-->日本語1。日本語2が同じ箇所で追加されていることになる。 これをバージョンアップ側で優先してマージする(原文3は必要なため)と以下のようになります。

<para>
<!--
原文1.
原文2.
原文3.
</para>

原文3が追加されたため日本語訳は一旦削除されるのは問題ないですが、「コメントの開始」が残ったままになってしまいます。 マージ後はこれを削除又は「コメントの終了」を入れ直して解消する必要がありました。

gitのマージでは限界がありました。

抽出して置き換え方式

そのため、コンフリクトが発生する場合はgitのマージは使用せずに方式を変更しました。

<para>
<!--
原文1.
原文2.
-->
日本語1。
日本語2。
</para>

の文章から「原文1.原文2.」と「日本語1。日本語2。」の英日ペアのリストを作って抽出します。

そして、「原文1.原文2.」と一致する箇所が現れたらコメントアウトして「日本語1。日本語2。」を追加する(書き換える)方式にしました。

その場合だと「原文3.」が追加されたような場合に「原文1.原文2.」と「原文1.原文2.原文3.」で一致しないことで 余分なコメント開始タグが残らないようになります。

<para>
原文1.
原文2.
原文3.
</para>

ただ、「原文3.」のみが別の行で追加されただけの場合は、「原文1.原文2.」と一致してしまうので

<para>
<!--
原文1.
原文2.
-->
日本語1。
日本語2。
原文3.
</para>

のように書き換えされる場合があります。これ自体はビルドは通るので手動で修正することになります。

類似文の書き換え

これにより、ビルドが通らなくなる不具合は減りますが、軽微な修正が入ると日本語訳がどんどん一旦削除されることになります。 そのため書き換え後のファイルに対して日本語訳(コメント)がない<para></para>と似た文がないかリストから探し出して、 ある程度似ている文があったら《マッチ度:90.00000》のような文と共に書き換えています。 この場合加わった箇所を書き足して修正すればよいことになります。

<para>
<!--
原文1.
原文2. 原文3.
-->
《マッチ度:90.00000》日本語1。
日本語2。
</para>

↓修正

<para>
<!--
原文1.
原文2. 原文3.
-->
日本語1。
日本語2。日本語3。
</para>

機械翻訳の追加

類似とは言えないほど書き変わった文や新しく追加された節はそのまま残りますが、下訳として機械翻訳した文を追加することにしました。 追加されるのは<para></para>で日本語訳(コメント)がなく、類似文もなかった場合で、 さらに<para></para>内に<programlisting>等のブロックタグが入らない場合に《機械翻訳》を頭に付けて書き換えます。

<para>
<!--
原文1.
-->
《機械翻訳》日本語1。
</para>

<programlisting>があるとどこまでが英語の原文となるかが、また変わるのでまだ対応していません。

⚠️ **GitHub.com Fallback** ⚠️