Manpages

名 前

po4a - ド キ ュ メ ン ト や そ の 他 の 素 材 の 翻 訳 フ レ ー ム ワ ー ク

概 要

po4a ( PO for anything) プ ロ ジ ェ ク ト は 、 gettext ツ ー ル が 想 定 し て い な い ド キ ュ メ ン ト の よ う な 領 域 で 翻 訳 を し や す く す る こ と (ま た よ り 興 味 深 い の は 、 翻 訳 文 の 保 守 が し や す く な る こ と ) を 目 標 に し て い ま す 。

目 次

こ の ド キ ュ メ ン ト は 以 下 の よ う な 構 成 と な っ て い ま す :

1 な ぜ po4a を 使 う べ き な の で し ょ う か ? 何 の 役 に 立 つ の で す か ? こ の 導 入 の 章 で は 、 プ ロ ジ ェ ク ト の 動 機 と そ の 哲 学 に つ い て 説 明 し ま す 。 翻 訳 を 行 う に 当 た っ て po4a を 評 価 中 で あ る な ら 、 ま ず こ の 章 を 読 ん で く だ さ い 。
2 po4a の 使 い 方 は ? こ の 章 は 、 処 理 全 体 を 理 解 し て い た だ け る よ う に ユ ー ザ の 質 問 に 答 え る 形 の リ フ ァ レ ン ス マ ニ ュ ア ル の 一 種 で す 。 po4a を ど の よ う に 使 用 す る か を 紹 介 し 、 特 定 の ツ ー ル の ド キ ュ メ ン ト へ の 導 入 と し て 役 立 ち ま す 。 新 規 翻 訳 を 始 め る に は

? 翻 訳 を ド キ ュ メ ン ト フ ァ イ ル に 適 用 す る に は
?
po4a 翻 訳 を 更 新 す る に は ? 既 存 の 訳 を
po4a に コ ン バ ー ト す る に は ? 翻 訳 に お ま け の テ キ ス ト
(翻 訳 者 名 な ど ) を 追 加 す る に は ? 一 度 の プ ロ グ ラ ム 実 行 で こ の す べ て を 行 う に は
?
po4a を カ ス タ マ イ ズ す る に は ?

3 ど の よ う に 動 作 し ま す か ? こ の 章 で は 、 保 守 改 良 を 自 信 を 持 っ て 助 け て い た だ け る よ う po4a 内 部 の 概 要 を 説 明 し ま す 。 ま た 、 な ぜ 思 っ た よ う に 動 作 し な い か 、 ど の よ う に 問 題 を 解 決 す れ ば い い か を 理 解 す る 助 け に な る か も し れ ま せ ん 。
4 FAQ

This chapter groups the Frequently Asked Questions. In fact, most of the questions for now could be formulated that way: "Why is it designed this way, and not that one?" If you think po4a isn’t the right answer to documentation translation, you should consider reading this section. If it does not answer your question, please contact us on the <devel [AT] lists.org> mailing list. We love feedback.

5 モ ジ ュ ー ル 固 有 の 記 述 こ の 章 で は 、 翻 訳 者 と オ リ ジ ナ ル の 作 者 の 視 点 で 、 そ れ ぞ れ の モ ジ ュ ー ル の 仕 様 を 示 し て い ま す 。 翻 訳 生 活 を よ り 楽 に す る た め に 、 こ の モ ジ ュ ー ル で 翻 訳 す る 際 に 遭 遇 す る 文 法 や 、 オ リ ジ ナ ル の ド キ ュ メ ン ト が 従 わ な け れ ば な ら な い ル ー ル に つ い て 学 ぶ に は 、 こ れ を お 読 み く だ さ い 。 こ の 節 は 実 際 に は 本 ド キ ュ メ ン ト 本 来 の 部 分 で は な く 、 各 モ ジ ュ ー ル の ド キ ュ メ ン ト に あ り ま す 。 こ れ に よ り 、 ド キ ュ メ ン ト と コ ー ド を 共 に 保 守 し 、 確 実 に 情 報 が 最 新 と な る の を 助 け ま す 。

な ぜ po4a を 使 う べ き な の で し ょ う か ? 何 の 役 に 立 つ の で す か ?

誰 で も ソ フ ト ウ ェ ア や そ の ソ ー ス コ ー ド に ア ク セ ス で き る よ う に す る オ ー プ ン ソ ー ス の 考 え 方 が 私 は 好 き で す 。 し か し フ ラ ン ス 人 で あ り 、 ソ フ ト ウ ェ ア の オ ー プ ン 度 が ラ イ セ ン ス の み で な い こ と を よ く 意 識 し て い ま す 。 翻 訳 さ れ て い な い フ リ ー ソ フ ト ウ ェ ア は 、 非 英 語 圏 の 人 々 に は 役 に 立 た な い の で す 。 で す か ら 本 当 に 誰 で も 利 用 で き る よ う に 、 ま だ 作 業 を 行 っ て い ま す 。 オ ー プ ン ソ ー ス 活 動 家 の こ の 状 況 の 認 知 度 は 、 最 近 劇 的 に 向 上 し ま し た 。 翻 訳 者 と し て 最 初 の 戦 い に 勝 利 し 、 翻 訳 の 重 要 性 を 周 知 で き ま し た 。 し か し 残 念 な が ら 、 こ れ は ま だ 簡 単 な 部 類 で し た 。 今 度 は 、 す べ て を 翻 訳 す る よ う 作 業 し な け れ ば な り ま せ ん 。 実 際 に は 、 オ ー プ ン ソ ー ス ソ フ ト ウ ェ ア 自 身 は 、 す ば ら し い gettext ツ ー ル 群 の お か げ で か な り き ち ん と 翻 訳 の 恩 恵 に あ ず か っ て い ま す 。 こ れ は プ ロ グ ラ ム か ら 翻 訳 す る 文 字 列 を 抽 出 し 、 翻 訳 者 に 決 ま っ た 形 で 提 供 し 、 実 行 時 に は 、 作 業 の 成 果 で あ る 翻 訳 済 み の メ ッ セ ー ジ を ユ ー ザ に 表 示 で き ま す 。 し か し 、 ド キ ュ メ ン ト に 関 し て は 状 況 が 大 き く 異 な り ま す 。 あ ま り に も 頻 繁 に 、 翻 訳 さ れ た ド キ ュ メ ン ト が 十 分 見 え る よ う に な っ て い な い (プ ロ グ ラ ム の 一 部 と し て 配 布 さ れ な い )、 一 部 し か 訳 さ れ て い な い 、 更 新 さ れ て い な い と い っ た こ と が 起 き て い ま す 。 最 後 の 状 況 は あ り 得 る 中 で 最 悪 な も の で す 。 古 い 翻 訳 が も は や 使 わ れ な く な っ た 古 い 動 作 を 説 明 し て い る た め 、 ま っ た く 翻 訳 さ れ て い な い 状 況 よ り も ひ ど い 結 果 に な り ま す 。 解 決 す べ き 問 題 ド キ ュ メ ン ト の 翻 訳 は 、 本 来 そ ん な に 難 し く あ り ま せ ん 。 テ キ ス ト は プ ロ グ ラ ム の メ ッ セ ー ジ よ り も ず っ と 長 く 、 訳 了 す る の に 時 間 が か か り ま す が 、 技 術 ス キ ル が 本 当 に 必 要 と い う わ け で は な い の で す 。 難 し い 部 分 は 成 果 物 を 保 守 し よ う と し た と き に 現 れ ま す 。 変 更 箇 所 や 更 新 す べ き 箇 所 を 探 し 出 す の は 非 常 に 難 し く 、 誤 り や す く 、 苦 痛 を と も な う 作 業 で す 。 世 の 中 に こ ん な に も 時 代 遅 れ な ド キ ュ メ ン ト が 存 在 し て い る の は 、 こ れ が 原 因 だ と 考 え て い ま す 。

po4a の 回 答 そ こ で 、 po4a の 核 心 は 、 ド キ ュ メ ン ト の 翻 訳 を 保 守 で き る よ う に す る こ と で す 。 そ の ア イ デ ア は 、 こ の 新 し い 分 野 に gettext の 方 法 論 を 再 利 用 す る こ と で す 。 gettext の よ う に 、 翻 訳 者 に 一 様 な フ ォ ー マ ッ ト で 提 示 す る た め に 、 テ キ ス ト は そ の オ リ ジ ナ ル の 場 所 か ら 抽 出 さ れ ま す 。 オ リ ジ ナ ル の 新 し い リ リ ー ス が 出 て き た 時 に 、 古 典 的 な gettext ツ ー ル は 翻 訳 者 が 翻 訳 を 更 新 す る の を 手 助 け し ま す 。 し か し 、 古 典 的 な gettext モ デ ル と は 異 な り 、 翻 訳 は オ リ ジ ナ ル ド キ ュ メ ン ト の 構 造 に 再 度 注 入 さ れ 、 翻 訳 は 英 語 バ ー ジ ョ ン と 同 じ よ う に 処 理 や 配 布 を す る こ と が で き ま す 。 こ の お か げ で 、 ド キ ュ メ ン ト の ど こ が 変 更 さ れ 、 修 正 す る 必 要 が あ る か を 見 つ け る の が 、 非 常 に 簡 単 に な り ま し た 。 ほ か の 長 所 と し て は 、 オ リ ジ ナ ル ド キ ュ メ ン ト の 構 造 が 根 本 的 に 再 編 成 さ れ て 、 章 が 移 動 、 結 合 、 分 割 さ れ た と し て も 、 ほ と ん ど す べ て の 作 業 を ツ ー ル が 行 う と い う こ と も あ り ま す 。 翻 訳 用 に ド キ ュ メ ン ト 構 造 か ら テ キ ス ト を 抽 出 す る こ と で 複 雑 な テ キ ス ト フ ォ ー マ ッ ト に 触 ら ず に 済 み 、 ド キ ュ メ ン ト を 壊 し て し ま う 可 能 性 を (完 全 に な く す と い う わ け に は 行 き ま せ ん が ) 低 く で き ま す 。 こ の ア プ ロ ー チ の 利 点 と 欠 点 の よ り 詳 し い 一 覧 は 、 こ の ド キ ュ メ ン ト の 後 ろ の FAQ を 参 照 し て く だ さ い 。 サ ポ ー ト す る フ ォ ー マ ッ ト 現 在 、 こ の ア プ ロ ー チ で 実 装 に 成 功 し て い る の は 、 以 下 の テ キ ス ト 整 形 フ ォ ー マ ッ ト で す :

man た く さ ん の プ ロ グ ラ ム で 使 わ れ て い る 、 古 き 良 き マ ニ ュ ア ル ペ ー ジ の フ ォ ー マ ッ ト で す 。 こ の フ ォ ー マ ッ ト は い く ら か 難 し く 、 初 心 者 に は 本 当 に 易 し く な い の で po4a の サ ポ ー ト は 非 常 に 歓 迎 さ れ て い ま す 。 Locale::Po4a::Man(3pm) モ ジ ュ ー ル は 、 BSD man ペ ー ジ (Linux で も 本 当 に 一 般 的 ) で 使 用 さ れ て い る mdoc フ ォ ー マ ッ ト も サ ポ ー ト し て い ま す 。

pod

Perl の オ ン ラ イ ン ド キ ュ メ ン ト フ ォ ー マ ッ ト で す 。 言 語 や 拡 張 機 能 自 体 が 、 既 存 の Perl ス ク リ プ ト と 同 じ よ う に 記 述 さ れ て い ま す 。 同 じ フ ァ イ ル に 組 み 込 ん で 、 実 際 の コ ー ド の そ ば に ド キ ュ メ ン ト を 記 述 し 保 守 し や す く し て い ま す 。 プ ロ グ ラ マ ー の 生 活 は 楽 に な り ま す が 、 残 念 な が ら 翻 訳 者 の 生 活 は 楽 に は な り ま せ ん 。

sgml 最 近 は い く ら か XML に 取 っ て 代 わ ら れ ま し た が 、 こ の フ ォ ー マ ッ ト は 数 画 面 以 上 の 長 い ド キ ュ メ ン ト で ま だ か な り 頻 繁 に 使 用 さ れ ま す 。 こ れ で 完 全 な 本 を 作 る こ と が で き ま す 。 あ ま り に も ド キ ュ メ ン ト が 長 い た め 、 翻 訳 を 更 新 す る の は ま さ し く 悪 夢 と い え ま す 。 ま た 、 オ リ ジ ナ ル ド キ ュ メ ン ト を 更 新 す る と 、 イ ン デ ン ト が 再 構 成 さ れ る た め 、 diff も あ ま り 役 に 立 ち ま せ ん 。 幸 い 、 po4a は こ の 処 理 で も 助 け に な り ま す 。 現 在 、 DebianDoc と DocBook DTD の み サ ポ ー ト し て い ま す が 、 新 し く サ ポ ー ト す る も の を 追 加 す る の は 、 本 当 に 簡 単 で す 。 ま た 、 コ マ ン ド ラ イ ン に 必 要 な 情 報 を 与 え 、 コ ー ド を 変 更 せ ず に 未 知 の SGML DTD を po4a で 使 用 す る こ と も で き ま す 。 詳 細 は Locale::Po4a::Sgml(3pm) を 参 照 し て く だ さ い 。

TeX / LaTeX

LaTeX フ ォ ー マ ッ ト は フ リ ー ソ フ ト ウ ェ ア 界 や 出 版 界 で 使 わ れ て い る 有 名 な フ ォ ー マ ッ ト で す 。 Locale::Po4a::LaTeX(3pm) モ ジ ュ ー ル は Python の ド キ ュ メ ン ト や 書 籍 、 各 種 発 表 で テ ス ト さ れ て い ま す 。

texinfo

GNU の ド キ ュ メ ン ト は す べ て こ の フ ォ ー マ ッ ト で 書 か れ て い ま す (公 式 GNU プ ロ ジ ェ ク ト に な る 必 要 条 件 の 一 つ で す )。 po4a の Locale::Po4a::Texinfo(3pm) サ ポ ー ト は 始 ま っ た ば か り で す 。 バ グ 報 告 や 機 能 の リ ク エ ス ト を お 願 い し ま す 。

xml

XML フ ォ ー マ ッ ト は 多 く の ド キ ュ メ ン ト フ ォ ー マ ッ ト の 基 礎 に な っ て い ま す 。 現 在 、 po4a で は DocBook の DTD を サ ポ ー ト し て い ま す 。 詳 細 は 、 Locale::Po4a::Docbook(3pm) を 参 照 し て く だ さ い 。 そ の 他

Po4a can also handle some more rare or specialized formats, such as the documentation of compilation options for the 2.4+ Linux kernels or the diagrams produced by the dia tool. Adding a new one is often very easy and the main task is to come up with a parser of your target format. See Locale::Po4a::TransTractor(3pm) for more information about this. サ ポ ー ト 外 の フ ォ ー マ ッ ト 残 念 な が ら 、 po4a は い く つ か の ド キ ュ メ ン ト フ ォ ー マ ッ ト の サ ポ ー ト を 欠 い て い ま す 。 ド キ ュ メ ン ト だ け で は な く 、 po4a で サ ポ ー ト し た い ほ か の フ ォ ー マ ッ ト が た く さ ん あ り ま す 。 ま さ し く 私 た ち は 、 古 典 的 な gettext ツ ー ル が 残 し た 「 市 場 の 穴 」 を 埋 め る の を 目 標 と し て い ま す 。 そ こ に は 、 パ ッ ケ ー ジ の 説 明 (deb や rpm) や 、 パ ッ ケ ー ジ の イ ン ス ト ー ル ス ク リ プ ト の 質 問 、 パ ッ ケ ー ジ の changelog、 ゲ ー ム の シ ナ リ オ や wine リ ソ ー ス フ ァ イ ル と い っ た プ ロ グ ラ ム が 使 用 す る す べ て の 特 殊 フ ァ イ ル が 含 ま れ ま す 。

po4a の 使 い 方 は ?

こ の 章 は 、 処 理 全 体 を 理 解 し て い た だ け る よ う に ユ ー ザ の 質 問 に 答 え る 形 の リ フ ァ レ ン ス マ ニ ュ ア ル の 一 種 で す 。 po4a を ど の よ う に 使 用 す る か を 紹 介 し 、 特 定 の ツ ー ル の ド キ ュ メ ン ト へ の 導 入 と し て 役 立 ち ま す 。 概 要 図 以 下 の 図 は po4a を 用 い た ド キ ュ メ ン ト 翻 訳 過 程 の 概 要 で す 。 複 雑 に な っ て し ま い ま し た が 、 お じ け づ か な い で く だ さ い 。 処 理 の 全 体 を 表 そ う と し て 、 こ の よ う に な っ て し ま い ま し た 。 い っ た ん プ ロ ジ ェ ク ト を po4a に 変 換 す る と 図 の 右 の 部 分 の み が 関 係 し ま す 。

Note that master.doc is taken as an example for the documentation to be translated and translation.doc is the corresponding translated text. The suffix could be .pod, .xml, or .sgml depending on its format. Each part of the picture will be detailed in the next sections.

                                   master.doc
                                       |
                                       V
     +<-----<----+<-----<-----<--------+------->-------->-------+:
                 |                     |                        :
{translation}    |         { update of master.doc }             ::
                 |                     |                        :
   XX.doc        |                     V                        V
 (optional)      |                 master.doc ->-------->------>+:
                 |                   (new)                      |
     V           V                     |                        |
  [po4a-gettextize]   doc.XX.po -->+   |                        |
          |            (old)       |   |                        |
          |              ^         V   V                        |
          |              |     [po4a-updatepo]                  |
          V              |           |                          V
   translation.pot       ^           V                          |
          |              |        doc.XX.po                     |
          |              |         (fuzzy)                      |
   { translation }       |           |                          |
          |              ^           V                          V
          |              |     {manual editing}                 |
          |              |           |                          |
          V              |           V                          V
      doc.XX.po --->---->+<---<-- doc.XX.po    addendum     master.doc
      (initial)                 (up-to-date)  (optional)   (up-to-date):
                                     |            |             |:
                                     V            |             |
          +----->----->----->------> +            |             |
                                     |            |             |
                                     V            V             V
                                     +------>-----+------<------+
                                                  |
                                                  V
                                           [po4a-translate]
                                                  |
                                                  V
                                                XX.doc
                                             (up-to-date)

On the left part, the conversion of a translation not using po4a to this system is shown. On the top of the right part, the action of the original author is depicted (updating the documentation). The middle of the right part is where the automatic actions of po4a are depicted. The new material are extracted, and compared against the exiting translation. Parts which didn’t change are found, and previous translation is used. Parts which were partially modified are also connected to the previous translation, but with a specific marker indicating that the translation must be updated. The bottom of the figure shows how a formatted document is built.

Actually, as a translator, the only manual operation you have to do is the part marked {manual editing}. Yeah, I’m sorry, but po4a helps you translate. It does not translate anything for you… 新 規 翻 訳 を 始 め る に は ? こ の 節 で は 、 po4a で 新 し く 翻 訳 を 始 め る の に 必 要 な 手 順 を 説 明 し ま す 。 既 存 プ ロ ジ ェ ク ト を こ の シ ス テ ム に 変 換 す る 方 法 は 、 関 連 す る 節 で 詳 し く 取 り 扱 い ま す 。

po4a を 用 い て 新 し く 翻 訳 を 始 め る に は 、 以 下 の 手 順 を 行 う 必 要 が あ り ま す :

- オ リ ジ ナ ル の

<master.doc> ド キ ュ メ ン ト か ら 、 翻 訳 す る テ キ ス ト を 新 し い

翻 訳 テ ン プ レ ー ト <translation.pot> フ ァ イ ル (gettext フ ォ ー マ ッ ト ) に 抽 出 し ま す 。 こ れ に は po4a-gettextize プ ロ グ ラ ム を 以 下 の よ う に 使 い ま す :

  $ po4a-gettextize -f <format> -m <master.doc> -p <translation.pot>

<format> は 、 当 然 master.doc ド キ ュ メ ン ト で 使 用 さ れ る フ ォ ー マ ッ ト で す 。 予 想 さ れ た よ う に 、 出 力 は translation.pot に な り ま す 。 既 存 の オ プ シ ョ ン の 詳 細 は po4a-gettextize(1) を 参 照 し て く だ さ い 。

- 翻 訳 す べ き 箇 所 を 実 際 に 翻 訳 し て く だ さ い 。 こ れ に は

POT フ ァ イ ル の 名 前 を

例 え ば doc.XX.po ( XX は 翻 訳 す る ISO 639-1 の 言 語 コ ー ド で 、 例 え ば フ ラ ン ス 語 な ら fr) と 変 更 し 、 そ の フ ァ イ ル を 編 集 し ま す 。 プ ロ グ ラ ム の メ ッ セ ー ジ に 対 す る 翻 訳 と 混 同 し な い よ う に 、 XX .po と 言 う 名 前 を 付 け な い よ う に す る の が 良 い 方 法 で す が 、 こ れ は あ な た 次 第 で す 。 PO フ ァ イ ル の ヘ ッ ダ の 編 集 を 忘 れ な い で く だ さ い 。 こ れ が 重 要 で す 。 実 際 の 翻 訳 に は 、 Emacs や Vi の PO mode、 Lokalize ( KDE ベ ー ス )、 Gtranslator ( GNOME ベ ー ス )、 そ の 他 (例 え ば Virtaal) よ り 、 あ な た が 作 業 し や す い も の を 使 う こ と が で き ま す 。 翻 訳 作 業 に つ い て 詳 し く 学 び た い 場 合 は 、 間 違 い な く gettext-doc パ ッ ケ ー ジ に あ る gettext の ド キ ュ メ ン ト を 参 照 す る 必 要 が あ り ま す 。 翻 訳 を ド キ ュ メ ン ト フ ァ イ ル に 適 用 す る に は ? 翻 訳 を 完 了 し た ら 、 翻 訳 さ れ た ド キ ュ メ ン ト を 取 得 し 、 オ リ ジ ナ ル の も の と 一 緒 に ユ ー ザ に 提 供 し た い と 思 い ま す 。 そ の た め に 、 以 下 の よ う に po4a-translate(1) プ ロ グ ラ ム を 使 用 し て く だ さ い ( XX の 箇 所 は 言 語 コ ー ド で す ):

$ po4a-translate -f <format> -m <master.doc> -p <doc.XX.po> -l <XX.doc> 先 ほ ど と 同 様 に 、 <format> は master.doc ド キ ュ メ ン ト で 使 用 し て い る フ ォ ー マ ッ ト で す 。 し か し 今 度 は 、 -p フ ラ グ で 指 定 す る PO フ ァ イ ル が 入 力 部 に あ り ま す 。 こ れ は あ な た が 翻 訳 し た も の で す 。 XX .doc に 出 力 し ま す 。 詳 細 は po4a-translate(1) を 参 照 し て く だ さ い 。

po4a 翻 訳 を 更 新 す る に は ? オ リ ジ ナ ル の master.doc フ ァ イ ル が 変 更 さ れ た 時 に 翻 訳 を 更 新 す る に は 、 po4a-updatepo(1) を 以 下 の よ う に 使 用 し ま す :

  $ po4a-updatepo -f <format> -m <new_master.doc> -p <old_doc.XX.po>

(詳 細 は po4a-updatepo(1) を 参 照 し て く だ さ い ) 当 然 の こ と な が ら 、 こ の 操 作 で ド キ ュ メ ン ト の 新 し い 段 落 が 魔 法 の よ う に PO フ ァ イ ル で 翻 訳 さ れ て い る と い う こ と は あ り ま せ ん 。 PO フ ァ イ ル を 手 で 更 新 す る 必 要 が あ り ま す 。 さ ら に 、 少 し 変 更 さ れ た 段 落 の た め に 翻 訳 を 手 直 し す る 必 要 が あ り ま す 。 変 更 さ れ た 段 落 を 見 逃 さ な い よ う に 、 処 理 中 に "fuzzy" マ ー カ が 付 け ら れ る の で 、 po4a-translate で そ の 翻 訳 を 処 理 す る 前 に 、 の マ ー カ を 消 さ な け れ ば な り ま せ ん 。 最 初 の 翻 訳 と 同 様 に 、 作 業 し や す い PO エ デ ィ タ を 使 う の が ベ ス ト で す 。 未 訳 部 や fuzzy な 部 分 を 取 り 除 い て PO フ ァ イ ル を 再 度 最 新 に し た ら 、 前 節 で 説 明 し た よ う に 翻 訳 済 み ド キ ュ メ ン ト フ ァ イ ル を 生 成 で き ま す 。 既 存 の 訳 を po4a に コ ン バ ー ト す る に は ? オ リ ジ ナ ル の master.doc ド キ ュ メ ン ト が 大 き く 再 編 成 さ れ る ま で は 、 手 で 翻 訳 す る の に 不 満 は な か っ た で し ょ う 。 diff の よ う な ツ ー ル が う ま く い か な く な っ た か ら po4a に 乗 り 換 え よ う と し て い る の だ と 思 い ま す 。 も ち ろ ん 、 こ の 処 理 で 既 存 の 翻 訳 を 失 い た く は あ り ま せ ん 。 ご 心 配 な く 。 こ の 場 合 も po4a で は 扱 え ま す 。 こ れ を gettext 化 と 呼 び ま す 。 こ こ で 重 要 な の は 、 翻 訳 と オ リ ジ ナ ル が 同 一 の 構 造 に な っ て い る こ と で 、 ツ ー ル が そ れ ぞ れ の 内 容 を 対 応 付 け ら れ る こ と で す 。 あ な た が ツ イ て い れ ば (つ ま り 両 方 の ド キ ュ メ ン ト の 構 造 が 完 全 に 一 致 す る と か )、 シ ー ム レ ス に 一 瞬 で 完 了 し ま す 。 そ う で な け れ ば 、 こ の 手 順 に な ぜ こ ん な ひ ど い 名 前 が 付 い て い る の か 理 解 す る で し ょ う 。 と は い え こ ん な ひ ど い 作 業 で も 準 備 し て お く に 越 し た こ と は あ り ま せ ん 。 い ず れ に し ろ 、 po4a で 後 々 楽 に な る た め に 支 払 う 価 値 が あ る と 思 っ て く だ さ い 。 あ り が た い こ と に 一 回 だ け や れ ば い い の で す 。 改 め て 強 調 し ま す 。 処 理 を 容 易 に す る た め に 、 翻 訳 を 行 う た め に 使 用 さ れ た 正 確 な バ ー ジ ョ ン を 見 つ け る こ と は と て も 重 要 で す 。 翻 訳 に 使 っ た VCS の リ ビ ジ ョ ン を 記 録 し て い て 、 さ ら に 翻 訳 の 過 程 で そ れ を 変 更 し て い な い な ら ば ベ ス ト な 状 況 で す 。 そ う な ら 、 そ の リ ビ ジ ョ ン を 使 う こ と が で き ま す 。 更 新 さ れ た オ リ ジ ナ ル テ キ ス ト を 古 い 翻 訳 と 一 緒 に 使 用 す る の は う ま く い き ま せ ん 。 そ う い っ た こ と も で き ま す が 、 本 当 に 大 変 で 、 で き れ ば 避 け た 方 が い い で し ょ う 。 事 実 上 、 も う 一 度 オ リ ジ ナ ル テ キ ス ト を 見 つ け ら れ な い な ら 、 一 番 い い の は あ な た の た め に gettext 化 し て く れ る 人 を 見 つ け る こ と で し ょ う 。 (あ 、 い や 、 私 じ ゃ な い で す よ ;) お そ ら く ド ラ マ チ ッ ク す ぎ る で し ょ う が 、 何 か 問 題 が あ る と し て も 、 す べ て を も う 一 度 翻 訳 し 直 す よ り は 速 い と 思 い ま す 。 既 存 の Perl ド キ ュ メ ン ト フ ラ ン ス 語 訳 を gettext 化 す る の に 、 問 題 も あ り ま し た が 1 日 で で き ま し た 。 こ れ は 2MB の テ キ ス ト で 、 新 規 に 翻 訳 す る に は 数 ヶ 月 を 要 し た で し ょ う 。 で は ま ず 、 手 順 の 基 本 を 説 明 し ま す 。 そ れ か ら 何 か 問 題 が あ れ ば 戻 っ て き て ヒ ン ト を 示 し た い と 思 い ま す 。 理 解 し や す い よ う に 、 も う 一 度 上 記 の 例 を 使 用 し ま し ょ う 。 翻 訳 し た XX .doc に 対 応 す る 古 い master.doc を 用 意 で き た ら 、 translation.pot フ ァ イ ル を 手 で 訳 さ な く て も PO フ ァ イ ル doc.XX.po を 直 接 gettext 化 で き ま す :

$ po4a-gettextize -f <format> -m <old_master.doc> -l <XX.doc> -p <doc.XX.po> ツ イ て い る な ら こ れ で 完 了 で す 。 古 い 翻 訳 を po4a に 変 換 し 、 す ぐ に 更 新 タ ス ク を 行 え ま す 。 数 節 前 に 説 明 し た 、 最 新 の オ リ ジ ナ ル ド キ ュ メ ン ト と PO フ ァ イ ル の 同 期 を 取 る 手 順 に 従 い 、 翻 訳 を 更 新 し て く だ さ い 。 う ま く い っ て い る よ う に 見 え て も 、 こ の 処 理 に 誤 り の 入 り 込 む 余 地 が あ る こ と に 注 意 し て く だ さ い 。 ポ イ ン ト は 、 po4a が オ リ ジ ナ ル と 翻 訳 が 一 致 し て い る か ど う か を 理 解 で き な い と い う こ と で す 。 こ の 処 理 の 結 果 、 す べ て の 文 字 列 に "fuzzy" マ ー ク が 付 い て し ま う の は こ う い う わ け で す 。 マ ー カ を 削 除 す る 前 に 、 注 意 し て チ ェ ッ ク す る 必 要 が あ り ま す 。 し ば し ば 、 ド キ ュ メ ン ト 構 造 が 完 全 に は 一 致 せ ず 、 po4a-gettextize が 正 常 に 機 能 し ま せ ん 。 こ の 時 点 で 、 ゲ ー ム は そ の 腐 っ た 構 造 を す り あ わ せ て い く 作 業 が す べ て に な り ま す 。 後 に あ る gettext 化 : ど の よ う に 動 作 し ま す か ? 節 を 読 む と 参 考 に な る と 思 い ま す 。 内 部 処 理 を 理 解 す る こ と は 、 こ の 作 業 の 助 け に な り ま す 。 po4a-gettextize の 利 点 は 、 何 か 問 題 が 発 生 す る と 、 詳 し く 教 え て く れ る こ と で す 。 ま ず 、 ド キ ュ メ ン ト に 構 造 上 の 食 い 違 い が あ る 場 合 、 そ の 箇 所 を 指 摘 し ま す 。 こ れ で 一 致 し な い 文 字 列 や 、 テ キ ス ト 中 の 箇 所 、 そ れ ら の 型 が 分 か り ま す 。 さ ら に 、 そ こ ま で で 生 成 し た PO フ ァ イ ル は gettextization.failed.po に 書 き 出 し て あ り ま す 。

- 翻 訳 者 名 や 、 翻 訳 に 貢 献 し た 人

々 へ の 謝 辞 と い っ た 、 翻 訳 で 追 加 し た 箇 所

を 取 り 除 い て く だ さ い 。 次 節 で 説 明 す る 追 加 内 容 に 後 で 改 め て 追 加 で き ま す 。

- 遠 慮 な く オ リ ジ ナ ル と 翻 訳 の 両 方 を 編 集 し て く だ さ い 。 最 も 重 要 な の は

PO

フ ァ イ ル を 手 に 入 れ る こ と で す 。 更 新 は 後 で で き ま す 。 ど ち ら も 可 能 で あ れ ば 、 gettext 化 の 完 了 後 に 楽 に な る よ う 、 前 述 の よ う に 翻 訳 側 を 編 集 す る と よ い で し ょ う 。

- 必 要 に 応 じ て 、 一 部 が 翻 訳 さ れ な い 問 題 が 起 き た ら 、 そ の オ リ ジ ナ ル の 一 部 を 消 し て く だ さ い 。 後 で

PO を ド キ ュ メ ン ト と 同 期 す る と 、 そ れ ら が 復 活 す る で し ょ う 。

- 構 造 を 少 し だ け 変 え た

(二 つ の 段 落 を ま と め た と か 、 一 つ の 段 落 を 分 け た

と か ) の な ら 、 そ の 変 更 を 元 に 戻 し て く だ さ い 。 オ リ ジ ナ ル に 問 題 が あ る な ら 、 オ リ ジ ナ ル の 作 者 に 連 絡 す る べ き で し ょ う 。 あ な た の 翻 訳 の 中 だ け を 修 正 す る こ と は 、 コ ミ ュ ニ テ ィ の 一 部 だ け の た め の 修 正 で す 。 さ ら に い え ば 、 po4a を 使 用 す る 限 り 不 可 能 で す ;)

-

Sometimes, the paragraph content does match, but their types don’t. Fixing it is rather format-dependent. In POD and man, it often comes from the fact that one of the two contains a line beginning with a white space where the other doesn’t. In those formats, such paragraph cannot be wrapped and thus become a different type. Just remove the space and you are fine. It may also be a typo in the tag name. 同 様 に 、 POD で は 、 分 割 行 に 空 白 が 入 っ て い た り 、 =item 行 と item の 内 容 の 間 に 空 行 が な い 場 合 、 二 つ の 段 落 を 一 つ に ま と め て し ま い ま す 。

-

時 々 、 フ ァ イ ル 間 で 同 期 が 取 れ て お ら ず 、 翻 訳 が 間 違 っ た 段 落 に 割 り 当 て ら れ る こ と が あ り ま す 。 こ れ は フ ァ イ ル に 以 前 か ら 問 題 が あ っ た こ と を 示 し て い ま す 。 gettextization.failed.po を チ ェ ッ ク し て 、 同 期 が 取 れ な い 箇 所 を 探 し 、 修 正 し て く だ さ い 。
-

Sometimes, you get the strong feeling that po4a ate some parts of the text, either the original or the translation. gettextization.failed.po indicates that both of them were gently matching, and then the gettextization fails because it tried to match one paragraph with the one after (or before) the right one, as if the right one disappeared. Curse po4a as I did when it first happened to me. Generously. こ の 不 幸 な 状 況 は 、 同 じ 段 落 が ド キ ュ メ ン ト 中 で 繰 り 返 さ れ て い る と き に 起 こ り ま す 。 こ の 場 合 、 PO フ ァ イ ル に 新 し い エ ン ト リ は 追 加 さ れ ま せ ん が 、 既 存 の エ ン ト リ に 参 照 が 追 加 さ れ ま す 。

So, when the same paragraph appears twice in the original but both are not translated in the exact same way each time, you will get the feeling that a paragraph of the original disappeared. Just kill the new translation. If you prefer to kill the first translation instead when the second one was actually better, replace the first one with the second. 反 対 に 、 二 つ の 似 て 非 な る 段 落 が 全 く 同 じ よ う に 翻 訳 さ れ て い る と 、 翻 訳 し た 段 落 が 消 え て し ま っ た よ う に 感 じ る こ と で し ょ う 。 そ の 場 合 は 、 無 駄 な 文 字 列 を オ リ ジ ナ ル の 段 落 に 追 加 す る と 解 決 し ま す ("I’m different" な ど )。 こ れ は 同 期 の 際 に 消 え ま す が 、 気 に し な い で く だ さ い 。 追 加 し た テ キ ス ト が 十 分 短 け れ ば 、 gettext は そ の 翻 訳 と 既 存 の テ キ ス ト を マ ッ チ し ま す 。 (fuzzy に し ま す が 、 gettext 化 し た 後 は 、 す べ て の 文 字 列 が fuzzy に な る の で 気 に す る こ と は あ り ま せ ん ) う ま く い け ば 、 以 上 の 小 技 は gettext 化 作 業 を 助 け 、 貴 重 な PO フ ァ イ ル が 得 ら れ る で し ょ う 。 フ ァ イ ル の 同 期 や 、 翻 訳 を 始 め る 準 備 が で き て い ま す 。 大 き な テ キ ス ト の 場 合 、 最 初 の 同 期 に 時 間 が か か る 場 合 が あ る こ と に 注 意 し て く だ さ い 。 例 え ば 、 初 め て フ ラ ン ス 語 版 Perl ド キ ュ メ ン ト (5.5 MBPO フ ァ イ ル ) に po4a-updatepo を 実 行 し た と き 、 1GHz G5 コ ン ピ ュ ー タ で ま る ま る 2 日 か か り ま し た 。 え え 、 48 時 間 で す 。 し か し そ の 後 は 、 私 の 古 い ノ ー ト パ ソ コ ン で 十 数 秒 し か か か り ま せ ん 。 こ れ は 初 回 の 実 行 で 、 PO フ ァ イ ル の ほ と ん ど の msgid が POT フ ァ イ ル の も の と 一 致 し な か っ た か ら で す 。 こ の た め gettext は 、 も っ と も 近 い も の を 探 す の に 、 実 行 コ ス ト の 高 い 文 字 列 近 接 ア ル ゴ リ ズ ム を 使 わ な く て は な り ま せ ん 。 翻 訳 に お ま け の テ キ ス ト (翻 訳 者 名 な ど ) を 追 加 す る に は ?

gettext ア プ ロ ー チ の た め 、 po4a で の テ キ ス ト の 追 加 は 単 に オ リ ジ ナ ル の も の に そ っ て 新 し い フ ァ イ ル を 編 集 す る よ り も 難 し く な っ て い ま す 。 し か し 、 い わ ゆ る 追 加 内 容 の お か げ で 追 加 で き ま す 。 追 加 内 容 を 、 処 理 後 の ロ ー カ ラ イ ズ し た ド キ ュ メ ン ト に 適 用 す る パ ッ チ の 類 と し て 見 な す と わ か り や す い で し ょ う 。 通 常 の パ ッ チ と は か な り 異 な っ て い ま す (1 行 だ け の 文 章 、 Perl の 正 規 表 現 を 埋 め 込 み 、 削 除 で き ず 新 し い テ キ ス ト の 追 加 の み ) が 、 実 用 上 は 同 じ で す 。 目 的 は 、 オ リ ジ ナ ル ド キ ュ メ ン ト に な い 内 容 を 翻 訳 済 み ド キ ュ メ ン ト に 追 加 で き る よ う に す る こ と で す 。 よ く あ る 使 用 法 は 、 翻 訳 自 体 に 関 す る 節 や 、 貢 献 者 リ ス ト 、 翻 訳 に つ い て の バ グ レ ポ ー ト の し か た を 追 加 す る こ と で す 。 追 加 内 容 は 別 個 の フ ァ イ ル で 提 供 さ れ な け れ ば な り ま せ ん 。 最 初 の 行 で は 、 生 成 し た ド キ ュ メ ン ト の ど こ に 配 置 す る か の ヘ ッ ダ を 記 述 し ま す 。 追 加 内 容 フ ァ イ ル の 残 り は 、 結 果 の ド キ ュ メ ン ト の 決 ま っ た 場 所 に そ の ま ま 追 加 さ れ ま す 。

The header line which specify context has a pretty rigid syntax: It must begin with the string PO4A-HEADER: , followed by a semi-colon (;) separated list of key=value fields. White spaces ARE important. Note that you cannot use the semi-colon char (;) in the value, and that quoting it doesn’t help. Optionally, spaces ( ) may be inserted before key for readability.

Although this context search may be considered to operate roughly on each line of the translated document, it actually operates on the internal data string of the translated document. This internal data string may be a text spanning a paragraph containing multiple lines or may be a XML tag itself alone. The exact insertion point of the addendum must be before or after the internal data string and can not be within the internal data string.

The actual internal data string of the translated document can be visualized by executing po4a in debug mode. ま た 恐 ろ し げ に 聞 こ え ま す が 、 以 下 の 例 は 、 必 要 な ヘ ッ ダ 行 の 記 述 法 を 見 つ け る 手 助 け に な る で し ょ う 。 議 論 の 前 提 と し て 、 "About this document" 節 の 後 に "About this translation" 節 を 追 加 す る こ と と し ま す 。 以 下 に 有 効 な ヘ ッ ダ キ ー を 挙 げ ま す :
mode
(必 須 )

It can be either the string before or after.

If mode=before, the insertion point is determined by one step regex match specified by the position argument regex. The insertion point is immediately before the uniquely matched internal data string of the translated document.

If mode=after, the insertion point is determined by two step regex matches specified by the position argument regex; and by the beginboundary or endboundary argument regex.

Since there may be multiple sections for the assumed case, let’s use 2 step approach.

     mode=after

position (必 須 )

A Perl regexp for specifying the context.

If more than one internal data strings match this expression (or none), the search for the insertion point and addition of the addendum will fail. It is indeed better to report an error than inserting the addendum at the wrong location.

If mode=before, the insertion point is specified to be immediately before the internal data string uniquely matching the position argument regex.

If mode=after, the search for the insertion point is narrowed down to the data after the internal data string uniquely matching the position argument regex. The exact insertion point is further specified by the beginboundary or endboundary.

In our case, we need to skip several preceding sections by narrowing down search using the section title string.

     position=About this document

(In reality, you need to use the translated section title string here, instead.)

beginboundary (mode=after の 時 の み 使 用 。 こ の 場 合 必 須 )
endboundary
(同 上 )

A second Perl regexp required only when mode=after. The addendum will be placed immediately before or after the first internal data string matching the beginboundary or endboundary argument regexp, respectively. こ の 場 合 、 以 下 の よ う に 追 加 し て 節 の 終 わ り に 一 致 す る よ う に 指 定 で き ま す :

endboundary=</section> ま た 、 以 下 の よ う に し て 次 の 節 の 直 前 を 指 定 で き ま す :

   beginboundary=<section>

In both cases, our addendum will be placed after the </section> and before the <section>. The first one is better since it will work even if the document gets reorganized. ど ち ら の 形 態 も あ る の は 、 異 な る ド キ ュ メ ン ト フ ォ ー マ ッ ト が あ る か ら で す 。 そ の 中 に は (使 用 し た ば か り の </section> の よ う な ) 節 の 終 わ り を 示 す も の 、 (man の よ う な ) 節 の 終 わ り を 明 確 に 示 さ な い も の が あ り ま す 。 前 者 で は 、 boundary節 の 最 後 に マ ッ チ す る の で 、 追 加 位 置 は そ の 後 に な り ま す 。 後 者 で は 、 boundary次 節 の 先 頭 に マ ッ チ す る の で 、 追 加 位 置 は そ の 前 に な り ま す 。 こ れ は 分 か り に く い で す が 、 次 の 例 で よ く 分 か る と 思 い ま す 。 今 ま で 説 明 し た こ と を ま と め る と 、

SGML ド キ ュ メ ン ト の "About this
document" の 後 に "About this translation" を 追 加 す る に は 、 以 下 の ヘ ッ ダ 行 の ど ち ら か を 使 用 で き ま す :

 PO4A-HEADER: mode=after; position=About this document; endboundary=</section>
 PO4A-HEADER: mode=after; position=About this document; beginboundary=<section>以 下 の

nroff 節 の 後 に 何 か 追 加 し た い と し ま す :

  .SH "AUTHORS"

You should select two step approach by setting mode=after. Then you should narrow down search to the line after AUTHORS with the position argument regex. Then, you should match the beginning of the next section (i.e., ^\.SH) with the beginboundary argument regex. That is to say:

PO4A-HEADER:mode=after;position=AUTHORS;beginboundary=\.SH 節 全 体 を 追 加 す る の で は な く 、 節 の 内 部

("Copyright Big Dude" の 後 な ど ) に 何 か 追 加 し た い 場 合 、 こ の 行 と マ ッ チ す る
position
、 お よ び 任 意 の 行 と マ ッ チ す る
beginboundary
を 指 定 し ま す 。

PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^ ド キ ュ メ ン ト の 最 後 に 何 か 追 加 し た い 場 合 、

position は ド キ ュ メ ン ト の 任 意 の 行
(し か し 1 行 の み 。 ユ ニ ー ク で な い と po4a は 処 理 し ま せ ん ) に マ ッ チ す る よ う に 与 え 、
endboundary
は 何 も マ ッ チ し な い よ う に 与 え ま す 。 " EOF" の よ う な 単 純 な 文 字 列 を 使 用 せ ず 、 ド キ ュ メ ン ト に た ま た ま 含 ま れ て い る も の を 使 用 し て く だ さ い 。

PO4A-HEADER:mode=after;position=About this document;beginboundary=FakePo4aBoundary い ず れ の 場 合 に も 、 正 規 表 現 で あ る こ と を 忘 れ な い で く だ さ い 。 例 え ば 、 次 の 行 で 終 わ っ て い る nroff 節 の 最 後 に マ ッ チ し た い 場 合 を 考 え ま す 。

  .fi

endboundary と し て .fi を 使 用 し な い で く だ さ い 。 明 ら か に 想 定 し て い な い "the[ fi]le" に も マ ッ チ し て し ま い ま す 。 こ の 場 合 の 正 し い endboundary^\.fi$ で す 。 追 加 内 容 が 想 定 通 り に う ま く 動 作 し な い 場 合 、 -vv 引 数 を ツ ー ル に 渡 し て み て く だ さ い 。 追 加 内 容 を 配 置 す る 際 の 挙 動 を 表 示 し て く れ ま す 。 も っ と 詳 細 な 例 オ リ ジ ナ ル ド キ ュ メ ン ト ( POD フ ォ ー マ ッ ト ):

 |=head1 NAME
 |
 |dummy - a dummy program
 |
 |=head1 AUTHOR
 |
 |meそ し て 、 以 下 の 追 加 内 容 は 、

(フ ラ ン ス 語 で )「 翻 訳 者 に つ い て 」 節 を フ ァ イ ル の 最 後 に 追 加 し ま す 。 (フ ラ ン ス 語 の " TRADUCTEUR" は " TRANSLATOR "、 "moi" は "me" の 意 味 で す )

 |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head
 |
 |=head1 TRADUCTEUR
 |
 |moi
 |

AUTHOR の 前 に 追 加 内 容 を 追 加 す る に は 、 以 下 の ヘ ッ ダ を 使 用 し て く だ さ い :

 PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1

This works because the next line matching the beginboundary /^=head1/ after the section " NAME" (translated to " NOM" in French), is the one declaring the authors. So, the addendum will be put between both sections. Note that if another section is added between NAME and AUTHOR sections later, po4a will wrongfully put the addenda before the new section.

To avoid this you may accomplish the same using mode=before:

PO4A-HEADER:mode=before;position=^=head1 AUTEUR 一 度 の プ ロ グ ラ ム 実 行 で こ の す べ て を 行 う に は ?
po4a を 使 う こ と は 、 そ れ ぞ れ 3 つ 以 上 の 引 数 が 必 要 な 二 つ の 異 な る プ ロ グ ラ ム を ユ ー ザ が 正 し い 順 番 (po4a-updatepo の あ と に po4a-translate) で 実 行 し な け れ ば な ら な い と い う こ と で 、 少 々 誤 る 傾 向 に あ る と い う こ と が わ か り ま し た 。 そ の 上 、 複 数 の フ ォ ー マ ッ ト が 使 わ れ て い る す べ て の ド キ ュ メ ン ト を 一 つ だ け の PO フ ァ イ ル に す る の は 、 こ の シ ス テ ム で は 難 し い こ と で し た 。 こ の 難 し さ を 解 消 す る た め に po4a(1) プ ロ グ ラ ム は 設 計 さ れ ま し た 。 一 度 こ の シ ス テ ム に 移 行 し て し ま え ば 、 簡 単 な 設 定 フ ァ イ ル に 翻 訳 用 フ ァ イ ル (po と pot) の 位 置 、 原 版 の 位 置 や 形 式 、 翻 訳 版 の 位 置 を 記 述 す る シ ン プ ル な 設 定 フ ァ イ ル を 書 く こ と に な り ま す 。 そ れ か ら 、 こ の フ ァ イ ル で po4a(1) を 呼 ぶ こ と で 、 PO フ ァ イ ル が オ リ ジ ナ ル ド キ ュ メ ン ト に 対 し て 同 期 が 取 れ て お り 、 翻 訳 済 み ド キ ュ メ ン ト が 適 切 に 生 成 さ れ る こ と を 保 証 で き ま す 。 も ち ろ ん 、 こ の プ ロ グ ラ ム を 二 度 呼 ん で も か ま い ま せ ん 。 一 度 目 は 編 集 前 に PO フ ァ イ ル を 更 新 す る た め に 、 二 度 目 は そ の 後 で 、 完 璧 に 更 新 さ れ た 翻 訳 済 み ド キ ュ メ ン ト を 得 る た め に 。 し か し 、 覚 え て お く 必 要 が あ る の は た だ 一 つ の コ マ ン ド ラ イ ン だ け で す 。

po4a を カ ス タ マ イ ズ す る に は ?
po4a モ ジ ュ ー ル に は 、 モ ジ ュ ー ル の 挙 動 を 変 更 す る オ プ シ ョ ン (-o オ プ シ ョ ン で 指 定 ) が あ り ま す 。

You can also edit the source code of the existing modules or even write your own modules. To make them visible to po4a, copy your modules into a path called "/bli/blah/blu/lib/Locale/Po4a/" and then adding the path "/bli/blah/blu" in the "PERLIB" or "PERL5LIB" environment variable. For example:

PERLLIB=$PWD/lib po4a --previous po4a/po4a.cfg 注 : lib デ ィ レ ク ト リ の 実 際 の 名 前 は 重 要 で は あ り ま せ ん 。

ど の よ う に 動 作 し ま す か ?

こ の 章 で は 、 保 守 改 良 を 自 信 を 持 っ て 助 け て い た だ け る よ う po4a 内 部 の 概 要 を 説 明 し ま す 。 ま た 、 な ぜ 思 っ た よ う に 動 作 し な い か 、 ど の よ う に 問 題 を 解 決 す れ ば い い か を 理 解 す る 助 け に な る か も し れ ま せ ん 。 こ の 大 き な 絵 は な ん で す か ?

po4a の ア ー キ テ ク チ ャ は オ ブ ジ ェ ク ト 指 向 で す (Perl で 。 イ ケ て る ?)。 す べ て の パ ー サ ク ラ ス 共 通 の 派 生 元 は 、 TransTractor と 呼 ば れ て い ま す 。 こ の ヘ ン な 名 前 は 、 ド キ ュ メ ン ト の 翻 訳 と 文 字 列 の 抽 出 を 同 時 に 行 う と こ ろ か ら 付 け ら れ て い ま す 。 も っ と 形 式 張 っ て い う と 、 入 力 と し て 翻 訳 す る ド キ ュ メ ン ト と 翻 訳 が 入 っ て い る PO フ ァ イ ル を 取 り 、 結 果 を 以 下 の 二 つ に 分 け て 出 力 し ま す 。 別 の PO フ ァ イ ル (入 力 ド キ ュ メ ン ト か ら 翻 訳 可 能 な 文 字 列 を 抽 出 し た 結 果 ) と 、 翻 訳 済 み ド キ ュ メ ン ト (入 力 し た フ ァ イ ル と 同 じ 構 造 で す が 、 翻 訳 可 能 な 文 字 列 は 入 力 PO フ ァ イ ル の 内 容 で 置 換 さ れ て い る フ ァ イ ル ) で す 。 以 下 に 図 示 し ま す : 入 力 ド キ ュ メ ン ト -\ /---> 出 力 ド キ ュ メ ン ト
\ TransTractor:: / (翻 訳 済 み )
+-->-- parse() --------+
/ \ 入 力
PO ---------/ \---> 出 力 PO
(抽 出 済 み )

This little bone is the core of all the po4a architecture. If you omit the input PO and the output document, you get po4a-gettextize. If you provide both input and disregard the output PO, you get po4a-translate. The po4a calls TransTractor twice and calls msgmerge -U between these TransTractor invocations to provide one-stop solution with a single configuration file.

TransTractor::parse() は 各 モ ジ ュ ー ル で 実 装 さ れ て い る 仮 想 関 数 で す 。 ど の よ う に 動 作 す る か を 説 明 す る の に 、 簡 単 な サ ン プ ル が あ り ま す 。 こ れ は 、 先 頭 に <p> が 付 い た 段 落 の リ ス ト を パ ー ス し ま す 。

  1 sub parse {
  2   PARAGRAPH: while (1) {
  3     $my ($paragraph,$pararef,$line,$lref)=("","","","");
  4     $my $first=1;
  5     while (($line,$lref)=$document->shiftline() && defined($line)) {
  6       if ($line =~ m/<p>/ && !$first--; ) {
  7         $document->unshiftline($line,$lref);
  8
  9         $paragraph =~ s/^<p>//s;
 10         $document->pushline("<p>".$document->translate($paragraph,$pararef));
 11
 12         next PARAGRAPH;
 13       } else {
 14         $paragraph .= $line;
 15         $pararef = $lref unless(length($pararef));
 16       }
 17     }
 18     return; # Did not got a defined line? End of input file.
 19   }
 20 }

On line 6 and 7, we encounter "shiftline()" and "unshiftline()". These help you to read and unread the head of internal input data stream of master document into the line string and its reference. Here, the reference is provided by a string "$filename:$linenum". Please remember Perl only has one dimensional array data structure. So codes handling the internal input data stream line are a bit cryptic.

6 行 目 で 、 2 度 目 の <p> に 遭 遇 し ま す 。 そ れ は 次 の 段 落 の シ グ ナ ル で す 。 そ こ で 、 得 ら れ た 行 を オ リ ジ ナ ル ド キ ュ メ ン ト に 戻 し (7 行 目 )、 こ れ ま で に 生 成 さ れ た 段 落 を 出 力 に 押 し 出 し ま す 。 9 行 目 で そ れ の 先 頭 の <p> を 削 除 し た 後 、 こ の タ グ と 段 落 の 残 り の 翻 訳 を 連 結 し て 押 し 出 し ま す 。

translate() 関 数 は と て も ク ー ル で す 。 引 数 を 出 力 PO フ ァ イ ル に 渡 し て (抽 出 )、 入 力 PO フ ァ イ ル で 見 つ か っ た 翻 訳 を 返 し ま す (翻 訳 )。 pushline() の 引 数 の 一 部 で 使 用 す る た め 、 こ の 翻 訳 が 出 力 ド キ ュ メ ン ト に 定 着 し ま す 。

Isn’t that cool? It is possible to build a complete po4a module in less than 20 lines when the format is simple enough…

Locale::Po4a::TransTractor(3pm) で 、 こ れ に つ い て も っ と 知 る こ と が で き ま す 。

gettext 化 : ど の よ う に 動 作 し ま す か ? こ こ で の 考 え 方 は 、 オ リ ジ ナ ル ド キ ュ メ ン ト と そ の 翻 訳 を 取 り 、 翻 訳 か ら 抽 出 し た N 番 目 の 文 字 列 は 、 オ リ ジ ナ ル か ら 抽 出 し た N 番 目 の 文 字 列 の 翻 訳 で あ る と い う こ と で す 。 動 作 す る に は 、 双 方 の フ ァ イ ル の 構 造 が ま っ た く 同 じ で な け れ ば な り ま せ ん 。 例 え ば 、 フ ァ イ ル が 以 下 の 構 造 を 持 つ 場 合 、 残 念 な が ら 翻 訳 の 4 番 目 の 文 字 列 (型 が 「 章 」 ) は 、 オ リ ジ ナ ル の 4 番 目 の 文 字 列 (型 が 「 段 落 」 ) の 翻 訳 だ と い う こ と は ま ず あ り 得 ま せ ん 。 オ リ ジ ナ ル 翻 訳 章 章 段 落 段 落 段 落 段 落 段 落 章 章 段 落 段 落 段 落 そ の た め 、 フ ァ イ ル を 抽 出 す る 際 、 オ リ ジ ナ ル フ ァ イ ル か ら の 場 合 も 翻 訳 フ ァ イ ル か ら の 場 合 も po4a の パ ー サ を 使 い 、 二 つ 目 か ら 抽 出 し た 文 字 列 を 一 つ 目 か ら 抽 出 し た 文 字 列 の 翻 訳 と し て 第 三 の PO フ ァ イ ル を 構 成 し ま す 。 出 力 し た 文 字 列 が 実 際 に そ れ ぞ れ の 翻 訳 と な っ て い る か を チ ェ ッ ク す る た め に 、 po4a の ド キ ュ メ ン ト パ ー サ は 、 ド キ ュ メ ン ト か ら 抽 出 し た 文 字 列 の 構 文 タ イ プ 情 報 を 出 力 す べ き で す (既 存 の も の は す べ て そ う し ま す し 、 あ な た の も の も そ う す る べ き で す )。 さ ら に そ の 情 報 を 、 双 方 の ド キ ュ メ ン ト が 同 じ 構 文 で あ る か ど う か を 確 認 す る の に 使 用 し ま す 。 先 の 例 で は 、 4 番 目 の 文 字 列 は 片 方 で は 段 落 で す が 、 も う 一 方 で は 章 見 出 し で あ る こ と を 検 出 し 、 問 題 を 報 告 で き ま す 。 理 論 上 、 問 題 を 検 出 し た 後 で フ ァ イ ル を (ち ょ う ど diff が す る よ う に ) 再 同 期 す る こ と は 可 能 で す 。 し か し 、 非 同 期 の 前 に あ る 、 再 同 期 す る べ き 文 字 列 は 明 確 で は な く 、 何 度 も ま ず い 結 果 に 終 わ る で し ょ う 。 以 上 が 、 何 か ま ず い 場 合 、 現 在 の 実 装 で は 再 同 期 を 行 わ ず 、 失 敗 に つ い て 詳 し く 出 力 す る 理 由 で す 。 問 題 の 修 正 に は フ ァ イ ル の 手 修 正 が 必 要 で す 。 こ れ だ け 用 心 し て い て も 、 こ の 部 分 は 非 常 に 間 違 い や す い で す 。 そ の た め 、 こ の よ う に 推 測 さ れ た 翻 訳 す べ て を fuzzy と マ ー ク し 、 翻 訳 者 に よ り レ ビ ュ ー と 確 認 を 行 う よ う に し て い ま す 。 追 加 内 容 : ど の よ う に 動 作 し ま す か ? さ て 、 こ れ は か な り 簡 単 で す 。 す べ て の 追 加 内 容 が 適 用 さ れ る ま で 、 翻 訳 済 み ド キ ュ メ ン ト は 、 直 接 デ ィ ス ク に 書 か れ て い ま せ ん が 、 メ モ リ に 保 管 さ れ て い ま す 。 こ こ に 関 わ る ア ル ゴ リ ズ ム は か な り 率 直 で す 。 position 正 規 表 現 に マ ッ チ す る 行 を 探 し 、 mode=before の 場 合 は そ の 前 に 追 加 内 容 を 挿 入 し ま す 。 そ う で な け れ ば 、 boundary に マ ッ チ す る 次 の 行 を 探 し 、 そ れ が endboundary の 場 合 は そ の 行 の 後 に 、 beginboundary の 場 合 は そ の 行 の 前 に 追 加 内 容 を 挿 入 し ま す 。

FAQ

This chapter groups the Frequently Asked Questions. In fact, most of the questions for now could be formulated that way: "Why is it designed this way, and not that one?" If you think po4a isn’t the right answer to documentation translation, you should consider reading this section. If it does not answer your question, please contact us on the <devel [AT] lists.org> mailing list. We love feedback. な ぜ 段 落 ご と に 分 割 し て 翻 訳 す る の で し ょ う か ? は い 、 po4a は 段 落 ご と に 区 切 っ て 翻 訳 し て い ま す (実 際 、 そ の 決 定 は 各 モ ジ ュ ー ル で 行 っ て い ま す が 、 既 存 の モ ジ ュ ー ル は 全 て そ う な っ て い ま す 。 ま た 、 自 作 モ ジ ュ ー ル で も 通 常 は そ の よ う に す べ き で し ょ う )。 こ の 方 法 に は 二 つ の 主 な 利 点 が あ り ま す :

• 場 面 か ら ド キ ュ メ ン ト の 技 術 的 な 部 分 を 隠 す と 、 翻 訳 者 は そ こ に 干 渉 す る こ と が で き ま せ ん 。 翻 訳 者 に 提 示 す る タ グ な ど の 目 印 が 少 な け れ ば 少 な い ほ ど 、 間 違 い に く く な り ま す 。

• ド キ ュ メ ン ト を 切 る の は 、 オ リ ジ ナ ル ド キ ュ メ ン ト の 変 更 点 を 隔 離 す る 助 け に な り ま す 。 オ リ ジ ナ ル が 変 更 さ れ た と き 、 こ の プ ロ セ ス に よ り 、 翻 訳 の ど の 部 分 が 更 新 が 必 要 な の か を 探 し や す く な り ま す 。 以 上 の 利 点 を も っ て し て も 、 段 落 ご と に 区 切 っ て 翻 訳 す る と い う ア イ デ ィ ア が 気 に 入 ら な い 人 は い ま す 。 彼 ら が 恐 れ て い る こ と に 対 し て 、 以 下 の よ う に 、 い く つ か 回 答 を 用 意 し て い ま す :

• こ の ア プ ロ ー チ は 、

KDE プ ロ ジ ェ ク ト で 成 功 が 実 証 さ れ ま し た 。 ま た そ こ で 翻 訳 の 巨 大 な コ ー パ ス を 作 成 し 、 私 の 知 る 限 り ド キ ュ メ ン ト を 更 新 し て い ま す 。

• 翻 訳 者 は 翻 訳 の 際 に 、

PO フ ァ イ ル 内 の 文 字 列 が オ リ ジ ナ ル ド キ ュ メ ン ト と 同

じ 順 番 で あ る た め 、 ま だ 文 脈 を 利 用 で き ま す 。 そ の た め 、 po4a を 使 う 使 わ な い に か か わ ら ず 、 順 番 通 り 訳 し て い く の は か な り 比 較 し や す い で す 。 い ず れ の 場 合 で も 、 こ れ は 私 見 で す が 、 書 式 付 き テ キ ス ト は 、 真 に 読 み や す い わ け で は な い の で 、 印 刷 可 能 な フ ォ ー マ ッ ト に ド キ ュ メ ン ト を 変 換 で き る 状 態 に し て お く の が 、 文 脈 を 把 握 す る 最 善 の 方 法 だ と 思 い ま す 。

• こ の ア プ ロ ー チ は 、 プ ロ の 翻 訳 者 が 採 用 し て い ま す 。 確 か に 、 彼 ら は オ ー プ ン ソ ー ス 翻 訳 者 と は 多 少 異 な る 目 標 を 持 っ て い ま す 。 例 え ば 、 内 容 が 変 更 さ れ る の は ま れ な の で 、 保 守 が そ れ ほ ど 重 要 と い う わ け で は あ り ま せ ん 。 文 レ ベ ル

(ま た は そ れ 以 下 ) で 分 割 し な い の は な ぜ で す か ? プ ロ 仕 様 の 翻 訳 ツ ー ル は 、 ド キ ュ メ ン ト を 文 レ ベ ル で 分 割 し 、 以 前 の 翻 訳 を 最 大 限 再 利 用 し 、 作 業 の ス ピ ー ド ア ッ プ を 図 る も の が あ り ま す 。 こ れ は 、 同 じ 文 が 文 脈 に よ っ て は 異 な る 翻 訳 に な る 場 合 に 問 題 に な り ま す 。 段 落 は 、 そ の 定 義 上 、 文 よ り も 長 い で す 。 こ れ に よ り 、 二 つ の ド キ ュ メ ン ト の 同 じ 段 落 は 、 そ れ ぞ れ の 文 脈 に 関 係 な く 、 同 じ 意 味 (と 翻 訳 ) に な る こ と が 、 お そ ら く 保 証 で き る で し ょ う 。 文 よ り も 小 さ い 単 位 で 分 割 す る の は 、 非 常 に ま ず い で し ょ う 。 な ぜ ま ず い の か は 、 こ こ で 説 明 す る に は 少 々 長 い の で 、 興 味 の あ る 方 は 、 例 え ば Locale::Maketext::TPJ13(3pm) の man ペ ー ジ (Perl の ド キ ュ メ ン ト に 同 梱 ) を 参 照 し て く だ さ い 。 短 く す る に し ろ 、 各 言 語 は 特 定 の 構 文 規 則 を 持 ち 、 既 存 の 全 言 語 で (話 者 の 多 い 10 言 語 の う ち 5 言 語 や そ れ 以 下 で も ) 機 能 す る よ う に 文 の 一 部 を 集 め て 文 を 組 み 立 て る 方 法 は あ り ま せ ん 。 オ リ ジ ナ ル を コ メ ン ト と し て 翻 訳 中 (や そ の 他 の と こ ろ ) に つ け な い の は な ぜ で す か ? 一 見 し た と こ ろ 、 gettext は す べ て の 種 類 の 翻 訳 に 適 合 で き る よ う に は 見 え ま せ ん 。 例 え ば 、 debconf (す べ て の Debian パ ッ ケ ー ジ が 使 用 す る 、 イ ン ス ト ー ル 時 の 対 話 イ ン タ ー フ ェ ー ス ) に は 適 合 で き る よ う に は 見 え ま せ ん で し た 。 こ の 場 合 、 翻 訳 す る テ キ ス ト は か な り 短 く (パ ッ ケ ー ジ ご と に 1 ダ ー ス )、 パ ッ ケ ー ジ の イ ン ス ト ー ル 前 に 使 用 可 能 で な け れ ば な ら な い た め 、 特 殊 な フ ァ イ ル に 翻 訳 を 翻 訳 を 置 く こ と は 困 難 で し た 。 こ れ が debconf の 開 発 者 が 翻 訳 を 元 と 同 じ フ ァ イ ル に 配 置 す る 別 の ソ リ ュ ー シ ョ ン の 実 装 を 決 め た 理 由 で す 。 こ れ は か な り 魅 力 的 で す 。 例 え ば 、 XML の た め に こ う し た い と 思 う 人 さ え い ま す 。 次 の よ う に な り ま す :

 <section>
  <title lang="en">My title</title>
  <title lang="fr">Mon titre</title>
  <para>
   <text lang="en">My text.</text>
   <text lang="fr">Mon texte.</text>
  </para>
 </section>し か し こ れ に は 問 題 が あ る た め 、 現 在 は

PO ベ ー ス の ア プ ロ ー チ を 採 用 し て い ま す 。 フ ァ イ ル で は オ リ ジ ナ ル し か 編 集 で き ず 、 翻 訳 は マ ス タ ー テ ン プ レ ー ト か ら 抽 出 し た PO フ ァ イ ル に 置 か な け れ ば な り ま せ ん (そ し て パ ッ ケ ー ジ コ ン パ イ ル 時 に 配 置 し ま す )。 こ の 古 い シ ス テ ム は 以 下 の い く つ か の 理 由 で 非 推 奨 で す :

• 保 守 の 問 題 複 数 の 翻 訳 者 が 同 時 に パ ッ チ を 提 供 し た 場 合 、 そ れ ら を マ ー ジ す る の は 大 変 で す 。 翻 訳 を 適 用 す る 必 要 の あ る 、 オ リ ジ ナ ル か ら の 変 更 を ど の よ う に 検 出 し た ら よ い で し ょ う

? diff を 使 用 す る に は 、 ど の 版 を 元 に し て 翻 訳 を 行 っ た か 記 し て お か ね ば な り ま せ ん 。 言 い 換 え る と 、 あ な た の フ ァ イ ル に は PO フ ァ イ ル が 必 要 で す ;)

• エ ン コ ー デ ィ ン グ の 問 題 こ の 解 は 、 ヨ ー ロ ッ パ の 言 語 だ け が 関 わ る 場 合 に は 有 効 で す が 、 韓 国 語 、 ロ シ ア 語 、 ア ラ ビ ア 語

(訳 注 : も ち ろ ん 日 本 語 も ) の 導 入 は 、 本 当 に 構 図 を 複 雑 に し ま す 。 UTF は 解 に な り 得 ま す が 、 ま だ 問 題 が あ り ま す 。 さ ら に 、 こ の 問 題 を 検 出 す る の が 難 し い の で す (言 い 換 え る と 、 「 ロ シ ア 語 の 翻 訳 者 の せ い で 」 韓 国 語 の エ ン コ ー ド が 壊 れ て い る こ と を 検 出 す る の は 、 韓 国 人 の 読 者 の み で す )。

gettext は こ の 問 題 を す べ て 解 決 し ま す 。 し か し 、 gettext は こ ん な 用 途 向 け に は 設 計 さ れ て い ま せ ん ! そ う で す ね 。 し か し 現 在 の と こ ろ 他 に も っ と い い 方 法 が な い の で す 。 唯 一 の 代 替 手 段 が 手 動 翻 訳 で あ り 、 そ れ に は 保 守 の 問 題 が あ り ま す 。

gettext を 使 っ た ド キ ュ メ ン ト 翻 訳 ツ ー ル は 他 に 何 が あ り ま す か ? 知 る 限 り で は 、 以 下 の 二 つ し か あ り ま せ ん :
poxml

KDE の 人 た ち が DocBook XML を 扱 う た め に 開 発 し た ツ ー ル で す 。 知 る 限 り で は 、 ド キ ュ メ ン ト か ら PO フ ァ イ ル へ 翻 訳 す る 文 字 列 を 抽 出 し 、 翻 訳 後 に 注 入 す る 初 め て の プ ロ グ ラ ム で す 。 こ れ は XML の み 、 さ ら に 特 定 の DTD の み を 扱 え ま す 。 リ ス ト が 一 つ の 大 き な msgid に な っ て し ま う た め 、 私 は リ ス ト の 扱 い に か な り 不 満 が あ り ま す 。 リ ス ト が 大 き く な る と 、 ひ と か た ま り の 構 造 を つ か み に く く な り ま す 。

po-debiandoc

Denis Barbier に よ っ て 作 ら れ た こ の プ ロ グ ラ ム は 、 多 少 の 異 論 が あ る と は い え po4a SGML モ ジ ュ ー ル の 先 駆 け と い え ま す 。 名 前 の 通 り 、 少 々 非 推 奨 の DTD で あ る DebianDoc DTD の み を 扱 い ま す 。 以 上 に 対 す る po4a の 主 な 利 点 は 、 簡 単 に 内 容 を 追 加 で き る こ と (欠 点 か も し れ ま せ ん が ) と 、 gettext 化 が 簡 単 な こ と で す 。 翻 訳 に つ い て の 開 発 者 教 育 ド キ ュ メ ン ト や プ ロ グ ラ ム の 翻 訳 を 行 う 際 、 3 つ の 問 題 に 行 き 当 た り ま す 。 言 語 に つ い て (皆 が 二 つ の 言 語 で 話 せ る わ け で は あ り ま せ ん )、 技 術 に つ い て (po4a が 存 在 す る 理 由 で す )、 人 と の 連 携 に つ い て で す 。 す べ て の 開 発 者 が 、 翻 訳 の 必 要 性 に つ い て 理 解 し て い る わ け で は あ り ま せ ん 。 立 派 な 意 志 が あ っ た と し て も 、 翻 訳 者 が 作 業 し や す い や り 方 を 無 視 す る 可 能 性 も あ り ま す 。 こ れ を 補 助 す る の に 、 po4a は 参 照 可 能 な た く さ ん の ド キ ュ メ ン ト を 用 意 し て い ま す 。 そ の 他 の 重 要 な 点 と し て 、 こ の フ ァ イ ル が 何 で 、 ど の よ う に 使 用 す る の か 、 を 示 す 短 い コ メ ン ト で 、 各 翻 訳 済 み フ ァ イ ル が 始 ま る と い う こ と が あ り ま す 。 こ れ は 、 話 す の も 困 難 な 言 語 の 洪 水 に お ぼ れ て い る 哀 れ な 開 発 者 を 助 け 、 フ ァ イ ル を 正 し く 扱 う 助 け と な る は ず で す 。

In the po4a project, translated documents are not source files anymore, in the sense that these files are not the preferred form of the work for making modifications to it. Since this is rather unconventional, that’s a source of easy mistakes. That’s why all files present this header:

 |       *****************************************************
 |       *           GENERATED FILE, DO NOT EDIT             *
 |       * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
 |       *****************************************************
 |
 | This file was generated by po4a-translate(1). Do not store it (in VCS,
 | for example), but store the PO file used as source file by po4a-translate.
 |
 | In fact, consider this as a binary, and the PO file as a regular source file:
 | If the PO gets lost, keeping this translation up-to-date will be harder ;)同 様 に 、

gettext の 通 常 の PO フ ァ イ ル は 、 po/ デ ィ レ ク ト リ に コ ピ ー さ れ る 必 要 が あ る だ け で す 。 し か し 、 こ れ は po4a に よ っ て 操 作 さ れ た も の に 当 て は ま り ま せ ん 。 こ こ に は 、 開 発 者 が 、 ド キ ュ メ ン ト の 翻 訳 が 存 在 す る 場 合 に 、 プ ロ グ ラ ム 側 の 翻 訳 を 削 除 し て し ま う と い う 、 大 き な 危 険 が あ り ま す (双 方 を 同 じ PO フ ァ イ ル に 納 め る こ と は で き ま せ ん 。 こ れ は 、 ド キ ュ メ ン ト は コ ン パ イ ル 時 に の み 翻 訳 が 必 要 で あ る の に 対 し て 、 プ ロ グ ラ ム は 翻 訳 を mo フ ァ イ ル と し て イ ン ス ト ー ル し な け れ ば な ら な い か ら で す )。 以 上 が 、 po-debiandoc モ ジ ュ ー ル が 以 下 の ヘ ッ ダ を つ け て PO フ ァ イ ル を 提 供 す る 理 由 で す :

 #
 #  ADVISES TO DEVELOPERS:
 #    - you do not need to manually edit POT or PO files.
 #    - this file contains the translation of your debconf templates.
 #      Do not replace the translation of your program with this !!
 #        (or your translators will get very upset)
 #
 #  ADVISES TO TRANSLATORS:
 #    If you are not familiar with the PO format, gettext documentation
 #     is worth reading, especially sections dedicated to this format.
 #    For example, run:
 #         info -n '(gettext)PO Files'
 #         info -n '(gettext)Header Entry'
 #
 #    Some information specific to po-debconf are available at
 #            /usr/share/doc/po-debconf/README-trans
 #         or http://www.debian.org/intl/l10n/po-debconf/README-trans
 #

gettext ベ ー ス ア プ ロ ー チ の 利 点 ま と め

• 翻 訳 は オ リ ジ ナ ル と 一 緒 に 保 存 さ れ ま せ ん 。 そ の 翻 訳 が 古 く な っ た 場 合 、 検 出 す る こ と が 可 能 と な り ま す 。

• 翻 訳 は 互 い に 別

々 の フ ァ イ ル に 格 納 さ れ 、 異 な る 言 語 の 翻 訳 者 が パ ッ チ の 提 供 や エ ン コ ー ド レ ベ ル の 干 渉 を 、 互 い に 受 け な い よ う に し ま す 。

• 内 部 的 に は

gettext を ベ ー ス に し て い ま す (が 、 po4a は 非 常 に シ ン プ ル な

イ ン タ ー フ ェ ー ス を 提 供 す る の で 、 内 部 で 使 用 し て い る こ と を 理 解 す る 必 要 は あ り ま せ ん )。 そ ん な と こ ろ で 車 輪 の 再 発 明 を す る 必 要 は な く 、 こ れ は 広 く 用 い ら れ て い る の で 、 バ グ に 悩 ま さ れ る こ と は な い と 考 え て い い で し ょ う 。

• エ ン ド ユ ー ザ に と っ て は 何 も 変 化 あ り ま せ ん

(願 わ く ば 翻 訳 が よ り よ く 保 守

さ れ る よ う に な る 、 と い う 事 実 は 置 い て お い て )。 出 来 上 が り の 配 布 さ れ る フ ァ イ ル は ま っ た く 同 じ で す 。

• 翻 訳 者 は 、 新 し い フ ァ イ ル の 文 法 を 学 習 す る 必 要 は な く 、 好 み の

PO フ ァ イ

ル エ デ ィ タ (Emacs の PO mode や 、 Lokalize、 Gtranslator な ど ) で う ま く 動 作 し ま す 。

gettext は 、 完 了 し て い る も の (t)、 レ ビ ュ ー や 更 新 が 必 要 な も の (f)、 そ し て ま だ 翻 訳 作 業 が 残 っ て い る も の (u) に つ い て 、 統 計 を 取 得 す る 簡 単 な 方 法 を 提 供 し て い ま す 。 以 下 の ア ド レ ス で い く つ か 例 を 見 つ け る こ と が で き ま す :

 - https://docs.kde.org/stable5/en/kdesdk/lokalize/project-view.html
 - http://www.debian.org/intl/l10n/し; か し 、 す べ て 問 題 な い わ け で は あ り ま せ ん 。 こ の ア プ ロ ー チ に は 対 処 す る べき 欠 点 も あ り ま す 。

Addenda are… strange at the first glance.

翻 訳 し た テ キ ス ト を 、 段 落 を こ こ で 分 割 す る 、 二 つ の 段 落 を 片 方 に 結 合 す る と い っ た 、 あ な た の 好 み に 合 わ せ る こ と が で き ま せ ん 。 し か し 、 オ リ ジ ナ ル に 問 題 が あ る の で あ れ ば 、 と り あ え ず バ グ と し て 報 告 す べ き だ 、 と い う 意 見 も あ り ま す 。

• 簡 単 な イ ン タ ー フ ェ ー ス で す が 、 学 習 が 必 要 な 新 し い ツ ー ル の ま ま で す 。

One of my dreams would be to integrate somehow po4a to Gtranslator or Lokalize. When a documentation file is opened, the strings are automatically extracted, and a translated file + po file can be written to disk. If we manage to do an MS Word ( TM ) module (or at least RTF ) professional translators may even use it.

著 者

 Denis Barbier <barbier,linuxfr.org>
 Martin Quinson (mquinson#debian.org)

訳 者

倉 澤 望 <nabetaro [AT] debian.jp>
Debian JP Documentation ML <debian-doc [AT] debian.jp>