Man page - po4a(7)

Packages contains this manual

Available languages:

en fr pt_BR es it nl ja uk ru sr sr_Cyrl de

Manual

PO4A.7

名 前
抂 芁
な ぜ po4aな の か 
サ ポ ヌ ト す る フ ォ ヌ マ ッ ト
po4aを 䜿 う
po4aで の 䜜 業 å·¥ 繋 の 詳 现 な 図 è§£
新 芏 に ç¿» èš³ の プ ロ ゞ ェ ク ト を 始 め る に は
ç¿» èš³ ず 文 曞 を 曎 新 す る
補 遺 を 䜿 っ お ç¿» èš³ に 远 加 の テ キ ス ト を 入 れ る
ど の よ う に 動 䜜 し た す か ?
TransTractorず プ ロ ゞ ェ ク ト の ア ヌ キ テ ク チ ャ
圢 匏 に 固 有 の 構 文 è§£ 析 噚
Poオ ブ ゞ ェ ク ト
po4aに 貢 献 す る
po4aを 䜿 っ お い る オ ヌ プ ン ゜ ヌ ス プ ロ ゞ ェ ク ト
FAQ
po4aは ど う 発 音 す る の で す か 
な ぜ 個 別 の ス ク リ プ ト が 非 掚 奚 ず な っ た の か
gettext を 䜿 っ た ド キ ュ メ ン ト ç¿» èš³ ツ ヌ ル は 他 に 䜕 が あ り た す か ?
gettext ベ ヌ ス ア プ ロ ヌ チ の 利 点 た ず め
関 連 項 目
著 者
èš³ 者
POD ERRORS

名 前

po4a - ド キ ュ メ ン ト や そ の 他 の 玠 材 の ç¿» èš³ フ レ ヌ ム ワ ヌ ク

抂 芁

po4a (PO for anything) は 、 埓 来 の gettext ツ ヌ ル を 䜿 っ た 文 曞 ç¿» èš³ の 保 守 を 容 易 に す る も の で す 。 po4aの äž» な 特 城 は 、 内 容 の ç¿» èš³ を 文 曞 構 造 か ら 切 り 離 す こ ず で す 。

こ の ド キ ュ メ ン ト で は po4aプ ロ ゞ ェ ク ト の 玹 介 を 行 い こ の ツ ヌ ル を 䜿 う か ど う か を 怜 蚎 し お い る 朜 圚 的 な 利 甹 者 ず 、 こ の ツ ヌ ル の 仕 組 み の な り た ち を 理 è§£ し た い ず い う 興 味 の あ る 読 者 に 焩 点 を 圓 お た す 。

な ぜ po4aな の か 

自 由 ゜ フ ト り ェ ア の 理 念 は 、 技 術 を 真 に 誰 も が 利 甹 で き る よ う に す る こ ず で す 。 し か し 、 ラ ã‚€ セ ン ス だ け が 考 慮 す べ き こ ず で は あ り た せ ん 。 ç¿» èš³ さ れ お い な い 自 由 ゜ フ ト り ェ ア は 、 英 語 を 母 囜 語 ず し な い 人 々 に ず っ お は 無 甹 の 長 物 な の で す 。 で す か ら 、 ゜ フ ト り ェ ア を 誰 も が 利 甹 で き る よ う に す る た め に や る べ き こ ず は た だ あ り た す 。

こ の よ う な 状 況 は ほ ず ん ど の プ ロ ゞ ェ ク ト で 知 ら れ お お り 、 誰 も が あ ら ゆ る も の を ç¿» èš³ す る 必 芁 性 を 確 ä¿¡ し お い た す 。 し か し 、 実 際 の ç¿» èš³ は 、 倚 く の 人 の 膚 倧 な 努 力 の 結 晶 で あ り 、 ち ょ っ ず し た 技 術 的 な 問 題 で 䞍 自 由 な こ ず に な っ お い る の が 珟 状 で す 。

あ り が た い こ ず に 、 オ ヌ プ ン ゜ ヌ ス ゜ フ ト り ェ ア は 、 gettext tool suite を 䜿 っ お 実 際 に 非 åžž に よ く ç¿» èš³ さ れ お い た す 。 こ れ ら の ツ ヌ ル は 、 プ ロ グ ラ ム か ら ç¿» èš³ す る 文 字 列 を 抜 出 し 、 æš™ 準 化 さ れ た 圢 匏  POフ ァ ã‚€ ル 、 た た は ç¿» èš³ カ タ ロ グ ず 呌 ば れ た す  で ç¿» èš³ す る 文 字 列 を 提 瀺 す る た め に 䜿 甹 さ れ た す 。 ç¿» èš³ 者 が 実 際 に こ の POフ ァ ã‚€ ル を ç¿» èš³ す る の を 助 け る た め に 、 こ の ツ ヌ ル の ゚ コ シ ス テ ム å…š 䜓 が 成 立 し た し た 。 そ し お そ の 結 果 を 実 行 時 に gettextが 䜿 甹 し 、 ゚ ン ド ナ ヌ ザ ヌ に ç¿» èš³ さ れ た 文 蚀 を 衚 瀺 す る の で す 。

し か し 、 ド キ ュ メ ン テ ヌ シ ョ ン に 関 し お は 、 た だ 少 し 残 念 な 状 況 で す 。 最 初 の 時 点 は 文 曞 の 元 の フ ァ ã‚€ ル を 耇 補 し お ç¿» èš³ を 始 め る だ け な の で 、 プ ロ グ ラ ム の ç¿» èš³ よ り も ç°¡ 単 そ う に 芋 え る か も し れ た せ ん 。 し か し 、 元 の 文 曞 が 倉 曎 さ れ た å Ž 合 、 そ の 倉 曎 点 を 把 握 し お お く こ ず は 、 す ぐ さ た ç¿» èš³ 者 に ず っ お 悪 倢 ず な り た す 。 手 䜜 業 で 行 う å Ž 合 、 こ の 䜜 業 は 䞍 å¿« で あ り 、 誀 り の æž© 床 ず な る の で す 。

叀 い ç¿» èš³ は 、 å…š く ç¿» èš³ が な い こ ず よ り も 悪 い こ ず が よ く あ り た す 。 ゚ ン ド ナ ヌ ザ は 、 プ ロ グ ラ ム の 叀 い 動 䜜 を 説 明 し た 文 曞 に 鹙 さ れ る 可 胜 性 が あ り た す 。 さ ら に 、 圌 ら は 英 語 を 話 せ な い の で 、 保 守 者 ず 目 接 察 話 す る こ ず が で き た せ ん 。 加 え お 、 保 守 者 は 文 曞 が ç¿» èš³ さ れ お い る す べ お の 蚀 語 は 知 ら な い の で 、 問 題 を ä¿® æ­£ す る こ ず が で き た せ ん 。 こ の よ う な 困 難 は し ば し ば è²§ 匱 な ツ ヌ ル に よ っ お 匕 き èµ· こ さ れ る も の で 、 ボ ラ ン テ ィ ア の ç¿» èš³ 者 の モ チ ベ ヌ シ ョ ン を 蝕 み 、 問 題 を さ ら に 悪 化 さ せ る 可 胜 性 が あ り た す 。

po4aプ ロ ゞ ェ ク ト の 目 æš™ は 、 文 曞 を ç¿» èš³ す る 人 の 仕 事 を 楜 に す る こ ず で す 。 特 に 、 文 曞 の ç¿» èš³ を 保 守 可 胜 な も の に す る こ ず で す 。

ア ã‚€ デ ィ ア ず し お は gettextの 手 法 を 再 利 甹 し 、 こ の 分 野 に 適 応 さ せ よ う ず い う も の で す 。 gettextず 同 様 、 テ キ ス ト は 元 の å Ž 所 か ら 抜 出 さ れ 、 POの ç¿» èš³ カ タ ロ グ ず し お ç¿» èš³ 者 に 提 瀺 さ れ た す 。 ç¿» èš³ 者 は gettextの 叀 å…ž 的 な ツ ヌ ル を 掻 甹 し お 、 取 り 組 ん で い る 䜜 業 を 監 査 し 、 チ ヌ ム ず し お 協 力 ・ 組 織 化 す る こ ず が で き た す 。 そ れ か ら po4aは ç¿» èš³ を 文 曞 構 造 に 目 接 泚 入 し お 、 英 語 フ ァ ã‚€ ル ず 同 様 に 凊 理 ・ 配 垃 で き る ç¿» èš³ 枈 み ゜ ヌ ス フ ァ ã‚€ ル を 生 成 し た す 。 ç¿» èš³ さ れ な か っ た 段 萜 は 、 ç¿» èš³ 埌 の 文 曞 に 英 語 の た た 残 さ れ 、 ゚ ン ド ナ ヌ ザ ヌ が 文 曞 内 の 叀 い ç¿» èš³ を 目 に す る こ ず が な い よ う に し た す 。

こ れ に よ り 、 ç¿» èš³ の 保 守 に お け る ほ ず ん ど の 荷 の 重 い 䜜 業 が 自 動 化 さ れ た す 。 曎 新 が 必 芁 な 段 萜 を 発 芋 す る の は 非 åžž に ç°¡ 単 で あ り 、 芁 玠 の 順 番 が 倉 わ っ た だ け で そ れ 以 倖 の 倉 曎 が な け れ ば å·¥ 繋 は 完 å…š に 自 動 化 さ れ た す 。 た た 䜕 ら か の 怜 蚌 を 行 う こ ず で 、 文 曞 が 壊 れ お し た う よ う な 圢 匏 ゚ ラ ヌ の 可 胜 性 を æž› ら す こ ず が で き た す 。

こ の ア プ ロ ヌ チ の 利 点 ず 欠 点 の よ り 詳 し い 侀 芧 は 、 こ の ド キ ュ メ ン ト の 埌 ろ の FAQ を 参 照 し お く だ さ い 。

サ ポ ヌ ト す る フ ォ ヌ マ ッ ト

珟 圚 、 こ の ア プ ロ ヌ チ で 実 装 に 成 功 し お い る の は 、 以 例 の テ キ ス ト 敎 圢 フ ォ ヌ マ ッ ト で す :
man 成 熟 し た 構 文 è§£ 析 噚 

た く さ ん の プ ロ グ ラ ム で 䜿 わ れ お い る 、 叀 き 良 き マ ニ ュ ア ル ペ ヌ ゞ の 圢 匏 で す 。 こ の 圢 匏 は い く ら か 難 し く 、 初 心 者 に は 本 圓 に 易 し く あ り た せ ん 。

Locale::Po4a::Man (3pm) モ ゞ ュ ヌ ル は 、 BSD の man ペ ヌ ゞ で 䜿 わ れ お い る mdoc 圢 匏 に も 察 応 し お い た す  Linux で も か な り 侀 般 的 に な っ お い た す  。

AsciiDoc 成 熟 し た 構 文 è§£ 析 噚 

こ の 圢 匏 は 、 文 曞 の 執 筆 を 容 易 に す る こ ず を 目 的 ず し た 軜 量 の マ ヌ ク ア ッ プ 圢 匏 で す 。 䟋 え ば 、 git シ ス テ ム の ド キ ュ メ ン ト に 䜿 甹 さ れ お い た す 。 こ れ ら の manペ ヌ ゞ は po4a を 䜿 っ お ç¿» èš³ さ れ お い た す 。

詳 し く は Locale::Po4a::AsciiDocを ご 芧 く だ さ い 。

pod 成 熟 し た 構 文 è§£ 析 噚 

Perl の オ ン ラ ã‚€ ン ド キ ュ メ ン ト フ ォ ヌ マ ッ ト で す 。 既 存 の ほ ず ん ど の Perl ス ク リ プ ト に 加 え 、 蚀 語 や 拡 匵 機 胜 自 䜓 が こ の 圢 匏 を 䜿 っ お 蚘 è¿° さ れ お い た す 。 ド キ ュ メ ン ト ず 実 際 の コ ヌ ド の äž¡ 方 を 同 じ フ ァ ã‚€ ル に 組 み 蟌 ん で お く こ ず で äž¡ 者 の 内 容 を 近 し い も の に 保 ち や す く な っ お い た す 。 プ ロ グ ラ マ ヌ の 䜓 鹓 が 良 く な り た す が 、 残 念 な が ら ç¿» èš³ 者 の 生 掻 は 楜 に は な り た せ ん 。 po4aを 䜿 う た で は ね 。

詳 现 は Locale::Po4a::Podを 芋 お く だ さ い 。

sgml 成 熟 し た 構 文 è§£ 析 噚 

珟 圚 で は XMLに 取 っ お 代 わ ら れ た ず は い え 、 数 画 面 以 侊 の 文 曞 に は こ の 圢 匏 が 䜿 わ れ た す 。 本 å…š 䜓 に 䜿 わ れ る こ ず も あ り た す 。 こ れ だ け の 長 さ の 文 曞 は 、 曎 新 す る の が 非 åžž に 困 難 で す 。 diff は 、 曎 新 埌 に 元 の テ キ ス ト の 字 例 げ が 改 め ら れ た å Ž 合 、 明 ら か に 圹 に 立 た な い ず わ か る こ ず が よ く あ り た す 。 幞 い な こ ず に 、 po4aは そ の よ う な 倉 曎 凊 理 の 埌 で も 助 け に な り た す 。

珟 圚 、 DebianDoc ず DocBook DTD の み に 察 応 し お い た す が 、 新 し く 察 応 す る も の を 远 加 す る の は 、 本 圓 に ç°¡ 単 で す 。 た た 、 コ マ ン ド ラ ã‚€ ン に 必 芁 な 情 å ± を 侎 え 、 コ ヌ ド を 倉 曎 せ ず に 未 知 の SGML DTD を po4a で 䜿 甹 す る こ ず も で き た す 。 詳 现 は Locale::Po4a::Sgml (3pm) を 参 照 し お く だ さ い 。

TeX / LaTeX  成 熟 し た 構 文 è§£ 析 噚 

LaTeX圢 匏 は 自 由 ゜ フ ト り ェ ア 界 や 出 版 界 で 䜿 わ れ お い る äž» 芁 な 文 曞 圢 匏 で す 。

Locale::Po4a::LaTeX (3pm) モ ゞ ュ ヌ ル は Python の ド キ ュ メ ン ト や 曞 籍 、 プ レ れ ン の ス ラ ã‚€ ド で の 実 瞟 が あ り た す 。

text 成 熟 し た 構 文 è§£ 析 噚 

テ キ ス ト 圢 匏 は 、 Markdown、 fortunes、 YAMLフ ロ ン ト マ タ ヌ 節 、 debian/changelog、 debian/control な ど 、 長 い テ キ ス ト ブ ロ ッ ク を 含 む 倚 く の 圢 匏 の 基 本 圢 匏 ず な り た す 。

こ れ は 、 静 的 サ ã‚€ ト ゞ ェ ネ レ ヌ タ 、 README、 そ の 他 の ド キ ュ メ ン ト シ ス テ ム で 䜿 甹 さ れ る 侀 般 的 な 圢 匏 に 察 応 し お い た す 。 詳 し く は Locale::Po4a::Text (3pm) を ご 芧 く だ さ い 。

xmlず XHTML 恐 ら く 成 熟 し た 構 文 è§£ 析 噚 

XML フ ォ ヌ マ ッ ト は 倚 く の ド キ ュ メ ン ト フ ォ ヌ マ ッ ト の 基 瀎 に な っ お い た す 。

珟 圚 、 DocBook の DTD  詳 现 は Locale::Po4a::Docbook (3pm) を 参 照  ず XHTMLが po4aで は 察 応 さ れ お い た す 。

BibTeX 恐 ら く 成 熟 し た 構 文 è§£ 析 噚 

BibTeXは 、 LaTeXず 共 に 出 å…ž リ ス ト  参 考 文 献 侀 芧  を 敎 え る た め に 䜿 甹 さ れ お い た す 。

詳 し く は Locale::Po4a::BibTexを ご 芧 く だ さ い 。

DocBook 恐 ら く 成 熟 し た 構 文 è§£ 析 噚 

XMLを 基 に し た マ ヌ ク ア ッ プ 蚀 語 で 、 文 曞 を 蚘 è¿° す る の に 意 味 的 な タ グ を 甹 い た す 。

詳 し く は Locale::Po4a:Docbookを ご 芧 く だ さ い 。

Guide XML 恐 ら く 成 熟 し た 構 文 è§£ 析 噚 

XMLの 文 曞 圢 匏 の 1぀ 。 こ の モ ゞ ュ ヌ ル は 、 少 な く ず も 2016幎 3月  Wayback Machineに 基 づ く  た で は 、 Gentoo Linuxド キ ュ メ ン ト の ç¿» èš³ の サ ポ ヌ ト ず 保 守 を 支 揎 す る た め に 特 別 に 開 発 さ れ た し た 。 Gentooは そ の 埌 、 DevBook XML圢 匏 に ç§» 行 し た し た 。

詳 し く は Locale::Po4a:Guideを ご 芧 く だ さ い 。

Wml 恐 ら く 成 熟 し た 構 文 è§£ 析 噚 

Web Markup Languageの 略 で あ っ お 、 携 垯 電 話 で 䜿 わ れ お い る WAPず し お の WMLを æ·· 同 し な い よ う に し お く だ さ い 。 こ の モ ゞ ュ ヌ ル は XHTMLモ ゞ ュ ヌ ル に 䟝 存 し お お り 、 XHTMLモ ゞ ュ ヌ ル 自 䜓 も XMLモ ゞ ュ ヌ ル に 䟝 存 し お い た す 。

よ り 詳 し く は Locale::Po4a::Wmlを 芋 お く だ さ い 。

Yaml 恐 ら く 成 熟 し た 構 文 è§£ 析 噚 

JSONの 厳 密 な ス ヌ パ ヌ セ ッ ト で す 。 YAMLは シ ス テ ム や プ ロ ゞ ェ ク ト の èš­ 定 ず し お よ く 䜿 わ れ た す 。 YAMLは Red Hatの Ansibleの äž­ æ ž を 成 し お い た す 。

よ り 詳 し く は Locale::Po4a::Yaml を 芋 お く だ さ い 。

RubyDoc 恐 ら く 成 熟 し た 構 文 è§£ 析 噚 

Ruby Document (RD) 圢 匏 は 、 2002幎 に RDocに 倉 換 さ れ る た で は 、 Rubyお よ び Rubyプ ロ ゞ ェ ク ト の 既 定 の 文 曞 圢 匏 で し た 。 た だ し 、 日 本 語 版 の Rubyリ フ ァ レ ン ス マ ニ ュ ア ル は 今 で も RDを 䜿 甹 し お い る よ う で す 。

よ り 詳 し く は Locale::Po4a::RubyDocを 芋 お く だ さ い 。

Halibut 恐 ら く 実 鹓 的 な 構 文 è§£ 析 噚 

PuTTYの 開 発 者 で あ る Simon Tathamが 開 発 し た 、 TeX、 debiandoc-sgml、 TeXinfoな ど に 䌌 た 芁 玠 を 持 ぀ 文 曞 䜜 成 シ ス テ ム で す 。

詳 し く は Locale::Po4a:Halibutを ご 芧 く だ さ い 。

Ini 恐 ら く 実 鹓 的 な 構 文 è§£ 析 噚 

MS-DOS に よ っ お 普 及 し た èš­ 定 フ ァ ã‚€ ル 圢 匏 。

詳 し く は Locale::Po4a::Iniを ご 芧 く だ さ い 。

texinfo 極 め お 実 鹓 的 な 構 文 è§£ 析 噚 

GNU の ド キ ュ メ ン ト は す べ お こ の 圢 匏 で 曞 か れ お い た す  公 匏 GNU プ ロ ゞ ェ ク ト に な る 必 芁 条 ä»¶ の 侀 ぀ で さ え あ り た す  。 po4a の Locale::Po4a::Texinfo (3pm) 察 応 は 始 た っ た ば か り で す 。 バ グ å ± 告 や 機 胜 の 芁 望 を お 願 い し た す 。

gemtext 極 め お 実 鹓 的 な 構 文 è§£ 析 噚 

Geminiプ ロ ト コ ル 固 有 の 玠 の テ キ ス ト 圢 匏 で す 。 拡 匵 子 「 .gmi」 が 侀 般 に 䜿 わ れ た す 。 po4aに お け る こ の モ ゞ ュ ヌ ル の 察 応 は た だ 始 た っ た ば か り で す 。 䜕 か 気 付 い た こ ず が あ れ ば 䞍 具 合 を å ± 告 し た り 機 胜 の 提 案 を お 願 い し た す 。

他 に 察 応 し お い る 圢 匏

po4a は 、 2.4以 侊 の Linuxカ ヌ ネ ル の コ ン パ ã‚€ ル オ プ シ ョ ン の ド キ ュ メ ン ト (Locale::Po4a::KernelHelp) や 、 dia ツ ヌ ル で 䜿 甹 す る 図 (Locale::Po4a::Dia) ず い っ た 、 も っ ず 繀 だ っ た り 特 殊 な 圢 匏 も サ ポ ヌ ト し お い た す 。 新 し い 圢 匏 を 远 加 す る の は 非 åžž に ç°¡ 単 で 、 目 æš™ の 圢 匏 の 構 文 è§£ 析 噚 を 远 加 す る の が äž» な 䜜 業 内 容 ず な っ お い た す 。 こ の 詳 现 情 å ± は Locale::Po4a::TransTractor (3pm) を 参 照 し お く だ さ い 。

サ ポ ヌ ト 倖 の フ ォ ヌ マ ッ ト

残 念 な が ら 、 po4aは た だ い く ぀ か の 文 曞 圢 匏 に 察 応 し お い た せ ん 。 そ れ ら の 倚 く は po4a で ç°¡ 単 に 察 応 で き る は ず で す 。 䟋 え ば 、 パ ッ ケ ヌ ゞ の 説 明  debや rpm 、 パ ッ ケ ヌ ゞ の ã‚€ ン ス ト ヌ ル ス ク リ プ ト の 質 問 、 パ ッ ケ ヌ ゞ の 倉 曎 å±¥ æ­Ž 、 ゲ ヌ ム シ ナ リ オ や wineの リ ゜ ヌ ス フ ァ ã‚€ ル の よ う な プ ロ グ ラ ム で 䜿 甹 さ れ る す べ お の 特 殊 な フ ァ ã‚€ ル 圢 匏 な ど 、 文 曞 に 䜿 甹 さ れ な い 圢 匏 が 含 た れ た す 。

po4aを 䜿 う

プ ロ ゞ ェ ク ト で こ の ツ ヌ ル を 䜿 う 侀 番 ç°¡ 単 な 方 法 は 、 po4a プ ロ グ ラ ム 甹 の 構 成 フ ァ ã‚€ ル を 曞 き 、 こ の プ ロ グ ラ ム だ け を 䜿 っ お 䜜 業 す る こ ず で す 。 po4a (1)の ド キ ュ メ ン ト を 参 照 し お く だ さ い 。 こ の 節 の 残 り で は 理 è§£ を æ·± め た い äž­ 箚 以 侊 の po4aの 利 甹 者 向 け に 詳 现 情 å ± を 提 䟛 し た す 。

po4aで の 䜜 業 å·¥ 繋 の 詳 现 な 図 è§£

本 節 の 䜙 り に も 詳 现 な 節 を 読 む 前 に 、 po4a (1)を 読 ん で po4aで の 䜜 業 å·¥ 繋 の 単 箔 化 さ れ た å…š 䜓 像 を 掎 ん で く だ さ い 。 ほ が å…š お の 詳 现 が 茉 っ お い る 、 お ど ろ お ど ろ し い å…š 貌 を 掎 み た く な っ た ら こ ち ら に 戻 っ お き お く だ さ い 。

以 例 の 図 è§£ で は 、 master.doc は ç¿» èš³ さ れ る 文 曞 の 名 前 の 䟋 で す 。 XX.doc は 蚀 語 XXで ç¿» èš³ さ れ た 同 じ 文 曞 で あ り 、 doc.XX.po は XX蚀 語 の 文 曞 甹 の ç¿» èš³ カ タ ロ グ で す 。 文 曞 の 著 者 は äž» に master.doc  manペ ヌ ゞ 、 XML文 曞 、 AsciiDocフ ァ ã‚€ ル な ど  に 泚 力 し 、 ç¿» èš³ 者 は äž» に POフ ァ ã‚€ ル に 泚 力 し た す 。 侀 般 の 利 甹 者 は XX.doc フ ァ ã‚€ ル だ け を 目 に し た す 。

"[po4aが poを 曎 新 ]"ず い っ た 角 括 匧 の 遷 ç§» は po4aツ ヌ ル の 実 行 を 衚 し お お り 、 "{master.docの 曎 新 }"の よ う な äž­ 括 匧 の 遷 ç§» は プ ロ ゞ ェ ク ト の フ ァ ã‚€ ル の 手 䜜 業 で の 倉 曎 を 衚 し た す 。

master.doc
|
V
+<-----<----+<-----<-----<--------+------->-------->-------+
: | | :
{ç¿» èš³ } | {master.docの 曎 新 } :
: | | :
XX.doc | V V
 省 略 可 胜  | master.doc ->-------->------>+
: |  新  |
V V | |
[po4a-gettextize] doc.XX.po -->+ | |
|  旧  | | |
| ˆ V V |
| | [po4aが poを 曎 新 ] |
V | | V
translation.pot ˆ V |
| | doc.XX.po |
| |  フ ァ ゞ ヌ  |
{ç¿» èš³ } | | |
| ˆ V V
| | {手 䜜 業 の ç·š 集 } |
| | | |
V | V V
doc.XX.po --->---->+<---<-- doc.XX.po addendum master.doc
 初 期 状 態   最 新   省 略 可 胜   最 新 
: | | |
: V | |
+----->----->----->------> + | |
| | |
V V V
+------>-----+------<------+
|
V
[po4aが ç¿» èš³ を 曎 新 ]
|
V
XX.doc
 最 新 

ç¹° り 返 し た す が 、 こ の 図 è§£ は 䜙 り に も 耇 雑 で す 。 単 箔 化 さ れ た å…š 䜓 像 に ぀ い お は po4a (1)を ご 確 認 く だ さ い 。

å·Š の 郚 分 は 、 po4a-gettextize (1)を 䜿 っ お 、 既 存 の ç¿» èš³ プ ロ ゞ ェ ク ト を po4aの ã‚€ ン フ ラ ぞ ず 倉 換 す る 方 法 を 瀺 し お い た す 。 こ の ス ク リ プ ト は 、 元 の 文 曞 ず ç¿» èš³ さ れ た 察 応 す る 文 曞 を 受 け 取 り 、 察 応 す る POフ ァ ã‚€ ル を 構 築 し よ う ず し た す 。 こ の よ う な 手 動 倉 換 は か な り 面 倒 で す が  詳 し く は po4a-gettextize (1) の ド キ ュ メ ン ト を 参 照 し お く だ さ い  、 既 存 の ç¿» èš³ を 倉 換 す る た め に 侀 床 だ け 必 芁 に な り た す 。 も し 倉 換 す る ç¿» èš³ が な け れ ば こ の こ ず は 忘 れ お よ く 、 ス キ ヌ マ の 右 の 郚 分 に 集 äž­ す る こ ず が で き た す 。

右 侊 に は 原 著 䜜 者 が 文 曞 を 曎 新 す る 動 䜜 が 図 瀺 さ れ お い た す 。 右 äž­ 段 で は ç¿» èš³ フ ァ ã‚€ ル の 自 動 的 な 動 䜜 が 図 瀺 さ れ お い た す 。 新 し い 資 料 か ら 抜 出 さ れ 、 既 存 の ç¿» èš³ ず 比 范 さ れ た す 。 倉 曎 さ れ お い な い 郚 分 に は 以 前 の ç¿» èš³ が 䜿 甹 さ れ 、 郚 分 的 に 倉 曎 さ れ た 郚 分 に は 、 ç¿» èš³ を 曎 新 す る 必 芁 が あ る こ ず を 瀺 す "fuzzy" の 印 が 以 前 の ç¿» èš³ に 付 け ら れ た す 。 新 し い 郚 分 や 倧 き く 倉 曎 さ れ た 箇 所 は ç¿» èš³ さ れ な い た た 残 さ れ た す 。

次 に 、 手 動 ç·š 集 の 箇 所 で は 、 ç¿» èš³ 者 が POフ ァ ã‚€ ル を ä¿® æ­£ し お 、 す べ お の 元 の 文 字 列 ず 段 萜 に ç¿» èš³ を 提 䟛 す る 動 䜜 が 衚 さ れ お い る こ ず が わ か り た す 。 こ れ は 、 GNOME Translation Editor や KDE の Lokalize や poedit な ど の 特 定 の ゚ デ ィ タ 、 あ る い は weblate や pootle な ど の オ ン ラ ã‚€ ン 珟 地 語 化 プ ラ ッ ト フ ォ ヌ ム を 䜿 甹 し お 行 う こ ず が で き た す 。 ç¿» èš³ 結 果 は 、 1蚀 語 に ぀ き 1぀ の POフ ァ ã‚€ ル の 集 た り で す 。 詳 现 は gettext の ド キ ュ メ ン ト を 参 照 し お く だ さ い 。

図 の 例 郚 は 、 po4a (1)が 元 の 文 曞 で あ る master.doc ず ç¿» èš³ 者 に よ っ お 曎 新 さ れ た ç¿» èš³ カ タ ロ グ で あ る doc.XX.po か ら ç¿» èš³ さ れ た 文 曞 の ゜ ヌ ス を 䜜 成 す る 様 子 を 瀺 し お い た す 。 文 曞 の 構 造 は 再 利 甹 さ れ 、 元 の 内 容 は ç¿» èš³ さ れ た 察 応 郚 分 に 眮 き 換 え ら れ た す 。 も し 補 遺 が あ れ ば 、 そ れ を 䜿 っ お ç¿» èš³ に 远 加 の テ キ ス ト を å·® し 蟌 め た す 。 こ れ は 、 最 終 的 な 文 曞 に ç¿» èš³ 者 の 名 前 を 远 加 す る た め に よ く 䜿 甹 さ れ た す 。 詳 し く は 以 例 を ご 芧 く だ さ い 。

コ マ ン ド で 呌 び 出 す ず 、 po4a は ç¿» èš³ フ ァ ã‚€ ル ず ç¿» èš³ さ れ た 文 曞 フ ァ ã‚€ ル の äž¡ 方 を 自 動 的 に 曎 新 し た す 。

新 芏 に ç¿» èš³ の プ ロ ゞ ェ ク ト を 始 め る に は

侀 か ら 始 め る å Ž 合 、 po4aの 構 成 フ ァ ã‚€ ル を 曞 き さ え す れ ば 準 備 が 敎 い た す 。 欠 け お い る フ ァ ã‚€ ル に ぀ い お は 関 係 す る 雛 圢 が 䜜 成 さ れ 、 è²¢ 献 者 が 母 語 で プ ロ ゞ ェ ク ト の ç¿» èš³ を で き る よ う に し た す 。 速 習 の た め の 入 門 や å…š お の 詳 现 に ぀ い お は po4a (1)を あ た っ お く だ さ い 。

既 存 の ç¿» èš³ が あ る å Ž 合 、 䟋 え ば 手 䜜 業 で ç¿» èš³ さ れ た 文 曞 フ ァ ã‚€ ル が あ る å Ž 合 、 po4a-gettextize を 䜿 っ お po4aの 䜜 業 å·¥ 繋 に 内 容 を 組 み 入 れ る こ ず が で き た す 。 こ の 䜜 業 は  こ の ツ ヌ ル の manペ ヌ ゞ に 蚘 è¿° さ れ お い る よ う に  少 し 面 倒 で す が 、 プ ロ ゞ ェ ク ト を po4aの 䜜 業 å·¥ 繋 に 倉 換 し お し た え ば 、 å…š お が 自 動 的 に 曎 新 さ れ る よ う に な り た す 。

ç¿» èš³ ず 文 曞 を 曎 新 す る

準 備 が 敎 っ た ら 、 po4a を 呌 び 出 す だ け で ç¿» èš³ の POフ ァ ã‚€ ル ず ç¿» èš³ 文 曞 の äž¡ 方 が 曎 新 さ れ た す 。 po4a に "--no-translations"を æž¡ し お ç¿» èš³ を 曎 新 し な い  し た が っ お POフ ァ ã‚€ ル の み が 曎 新 さ れ る  よ う に し た り 、 "--no-update"を æž¡ し お POフ ァ ã‚€ ル を 曎 新 し な い  し た が っ お ç¿» èš³ の み が 曎 新 さ れ る  よ う に し た り で き た す 。 こ れ は ざ っ く り 蚀 う ず そ れ ぞ れ po4a-updatepo ず po4a-translate ス ク リ プ ト に 察 応 し お お り 、 こ れ ら は 珟 圚 非 掚 奚 で す  埌 è¿° の FAQの 「 な ぜ 個 々 の ス ク リ プ ト が 非 掚 奚 な の か 」 を 参 照  。

補 遺 を 䜿 っ お ç¿» èš³ に 远 加 の テ キ ス ト を 入 れ る

フ ァ ã‚€ ル を 手 動 で ç¿» èš³ す る 管 理 を し お い れ ば 、 ç¿» èš³ 文 に 新 し い テ キ ス ト を 远 加 す る こ ず は 、 長 い 目 で 芋 れ ば 恐 ら く ど ん な 管 理 方 法 よ り も ç°¡ 単 で し ょ う :)。 こ う し た こ ず は ç¿» èš³ さ れ た 文 曞 に 、 元 の 文 曞 の ど の 内 容 に も 察 応 し な い 远 加 郚 分 を 入 れ た い å Ž 合 に èµ· こ り た す 。 叀 å…ž 的 な 䜿 甹 䟋 ず し お は 、 ç¿» èš³ チ ヌ ム に 謝 蟞 を è¿° べ た り 、 ç¿» èš³ 特 有 の 問 題 を å ± 告 す る 方 法 を 瀺 し た り す る こ ず が あ り た す 。

po4a で は addendum フ ァ ã‚€ ル を 指 定 し な け れ ば な り た せ ん が 、 こ れ は 抂 念 的 に 凊 理 埌 に 珟 地 化 さ れ た 文 曞 に 適 甹 さ れ る パ ッ チ ず 芋 な す こ ず が で き た す 。 各 補 遺 は 別 々 の フ ァ ã‚€ ル ず し お 侎 え ら れ お い な け れ ば な り た せ ん が 、 そ の 圢 匏 は 埓 来 の パ ッ チ ず は å…š く 異 な っ お い た す 。 最 初 の 行 は header line で 、 補 遺 の 挿 入 䜍 眮 を 定 矩 し  残 念 な が ら 䞍 可 è§£ な 構 文 で   。 埌 è¿°  、 フ ァ ã‚€ ル の 残 り の 郚 分 は 決 め ら れ た 䜍 眮 に そ の た た 远 加 さ れ た す 。

ヘ ッ ダ 行 は 、 文 字 列 PO4A-HEADER: で 始 た り 、 key = value フ ィ ヌ ル ド の リ ス ト を セ ミ コ ロ ン で 区 切 っ た も の が 続 く 必 芁 が あ り た す 。

䟋 え ば 以 例 の ヘ ッ ダ は ç¿» èš³ の 侀 番 最 埌 に 眮 か な け れ ば な ら な い 補 遺 を 宣 蚀 し お い た す 。

PO4A-HEADER: mode=eof

文 曞 の 途 äž­ に 远 加 の 内 容 を 入 れ た い å Ž 合 、 話 は よ り 耇 雑 に な り た す 。 以 例 の ヘ ッ ダ は 補 遺 を "About this document"ず い う 文 字 列 を 含 む XMLの sectionの 埌 に 眮 か な け れ ば な ら な い ず 宣 蚀 し お い た す 。

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

実 際 に は 、 補 遺 を 適 甹 し よ う ず す る ず き 、 po4aは "position"匕 数  こ れ は æ­£ 芏 衚 珟 で も 構 い た せ ん  に 照 合 す る 最 初 の 行 を 探 し た す 。 po4aは こ こ で ç¿» èš³ さ れ た の 文 曞 を 考 慮 す る こ ず を 忘 れ な い で く だ さ い 。 こ の 文 曞 は 英 語 で す が 、 補 遺 が フ ラ ン ス 語 に ç¿» èš³ さ れ た 文 曞 に 適 甹 さ れ る こ ず を 意 図 し お い る な ら 、 行 は お そ ら く 次 の よ う な も の に す る べ き で し ょ う 。

PO4A-HEADER: position=À propos de ce document; mode=after; endboundary=</section>

"position"が 察 象 の 文 曞 で 芋 ぀ か る ず 、 po4aは "position"以 降 で 侎 え ら れ た "endboundary"に 照 合 す る 行 を 探 し た す 。 そ の 行 の す ぐ 埌 ろ に 補 遺 が 远 加 さ れ た す  な ぜ な ら 珟 圚 の 節 が 終 わ る 境 界 で あ る endboundary を 侎 え た た め で す  。

ち ょ う ど 同 じ 効 果 が 以 例 の ヘ ッ ダ で も 付 侎 で き 、 等 䟡 で す 。

PO4A-HEADER: position=About this document; mode=after; beginboundary=<section>

こ こ で は 、 po4a は ç¿» èš³ の äž­ の "About this document" に 照 合 す る 行 の 埌 に あ る "<section>" に 照 合 す る 最 初 の 行 を 探 し 、 beginboundary 、 ぀ た り 次 の 節 の 始 た り を 瀺 す 境 界 を 侎 え た の で 、 そ の 行 の 前 に 補 遺 を 远 加 す る の で す 。 で す か ら 、 こ の ヘ ッ ダ 行 は 、 "About this document"を 含 む 節 の 埌 に 補 遺 を 眮 き 、 "<section>"タ グ を 含 む 行 か ら 節 が 始 た る ず po4aに 指 瀺 す る 必 芁 が あ る ず し お い た す 。 こ れ は 前 の 䟋 ず 同 じ で す 。 な ぜ な ら こ こ で 本 圓 に し た い こ ず は 、 こ の 補 遺 を "</section> > の 埌 か "<section> > の 前 に 远 加 す る こ ず だ か ら で す 。 ""

挿 入 l<mode>を 倀 "before"に èš­ 定 す る こ ず も で き 、 こ れ は 䌌 た 意 味 を 持 ち た す 。 "mode=before"ず "endboundary"を 組 み 合 わ せ る ず 、 照 合 し た 境 界 の ち ょ う ど 埌 ろ に 補 遺 を 眮 き 、 最 埌 の 朜 圚 的 な 境 界 線 が "position"の 前 に 来 た す 。 "mode=before"ず "beginboundary"を 組 み 合 わ せ る ず 照 合 し た 境 界 の ち ょ う ど 前 に 補 遺 が 眮 か れ 、 最 埌 の 朜 圚 的 な 境 界 線 が "position"の 前 に 来 た す 。

Mode | Boundary kind | Used boundary | Insertion point compared to the boundary
========|===============|========================|=========================================
'before'| 'endboundary' | last before 'position' | Right after the selected boundary
'before'|'beginboundary'| last before 'position' | Right before the selected boundary
'after' | 'endboundary' | first after 'position' | Right after the selected boundary
'after' |'beginboundary'| first after 'position' | Right before the selected boundary
'eof' | (none) | n/a | End of file

補 遺 に ぀ い お の ヒ ン ト ず コ ツ

•

こ れ ら が æ­£ 芏 衚 珟 で あ る こ ず を 芚 え お お い お く だ さ い 。 䟋 え ば ".fi"で 終 わ る nroffの 節 の 終 端 に 照 合 さ せ た い ず き は 、 endboundary ず し お ".fi" を 䜿 甹 し な い で く だ さ い 。 明 ら か に 想 定 し お い な い "the[ fi]le" に も 照 合 し お し た い た す 。 こ の å Ž 合 の æ­£ し い endboundary は "ˆ\.fi$" で す 。

•

"position"ず 境 界 の 内 容 の äž­ で は た さ に 空 癜 が 芁 で す 。 で す か ら 、 次 の 2぀ の 行 は 異 な り た す 。 2番 目 の 行 は 、 ç¿» èš³ さ れ た 文 曞 に 充 分 な 埌 続 の 空 癜 が あ る å Ž 合 に の み 怜 出 さ れ た す 。

PO4A-HEADER: position=About this document; mode=after; beginboundary=<section>
PO4A-HEADER: position=About this document ; mode=after; beginboundary=<section>

•

こ の 文 脈 怜 玢 は 、 ç¿» èš³ 文 曞 の 各 行 に 察 し お 倧 た か に 操 䜜 し お い る よ う に 思 わ れ た す が 、 実 際 に は ç¿» èš³ 文 曞 の 内 郚 デ ヌ タ 文 字 列 に 察 し お 操 䜜 し お い た す 。 こ の 内 郚 デ ヌ タ 文 字 列 は 、 耇 数 行 を 含 む 段 萜 に た た が る テ キ ス ト で や XMLタ グ そ の も の に な り え た す 。 補 遺 の æ­£ 確 な 挿 入 点 は 、 内 郚 デ ヌ タ 文 字 列 の 前 か 埌 で な け れ ば な ら ず 、 内 郚 デ ヌ タ 文 字 列 の äž­ に あ る こ ず は で き た せ ん 。

•

po4a に "-vv" 匕 数 を æž¡ す ず 、 ど の よ う に 補 遺 が ç¿» èš³ に 远 加 さ れ る か を 理 è§£ す る こ ず が で き た す 。 た た 、 補 遺 が 適 甹 さ れ な い ず き の 実 際 の 内 郚 デ ヌ タ 文 字 列 を 芋 る た め に 、 po4a を デ バ ッ グ モ ヌ ド で 実 行 す る こ ず も 圹 に 立 ぀ か も し れ た せ ん 。

補 遺 の 䟋

•

以 例 の nroff 節 の 埌 に 䜕 か 远 加 し た い ず し た す :

.SH "AUTHORS"

mode=after を èš­ 定 し お 2å·¥ 繋 の 手 法 を 遞 択 し た す 。 そ れ か ら position 匕 数 の æ­£ 芏 衚 珟 で AUTHORS の 埌 の 行 に 怜 玢 を 絞 り 蟌 み た す 。 次 に 、 beginboundary 匕 数 の æ­£ 芏 衚 珟 で 、 次 の 節 の 先 é ­  ぀ た り ˆ\.SH  に 照 合 さ せ た す 。 ぀ た り 次 の よ う に な り た す 。

PO4A-HEADER:mode=after;position=AUTHORS;beginboundary=\.SH

•

侎 え ら れ た 行 の 目 埌 に 䜕 か を 远 加 し た け れ ば 、 こ の 行 に 照 合 す る position ず mode=after を 䜿 い 、 ä»» 意 の 行 に 照 合 す る 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

も っ ず 詳 现 な 䟋

オ リ ゞ ナ ル ド キ ュ メ ン ト (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

こ れ は 、 "NAME" 節  フ ラ ン ス 語 で は "NOM"ず ç¿» èš³ さ れ る  の 埌 に あ る beginboundary "/ˆ=head1/" に 照 合 し た 次 の 行 が 䜜 者 を 宣 蚀 し お い る か ら う た く い く の で す 。 そ の た め 、 äž¡ 方 の 節 の 間 に 远 加 内 容 が 挿 入 さ れ た す 。 な お 他 の 節 が NAMEず AUTHORの 節 に 埌 で 远 加 さ れ る å Ž 合 、 po4aは 補 遺 を 新 し い 節 の 前 に 眮 く た め 間 違 っ た こ ず に な り た す 。

こ れ を 防 ぐ た め に mode =l<before>を 䜿 っ お 同 じ こ ず を 達 成 で き た す 

PO4A-HEADER:mode=before;position=ˆ=head1 AUTEUR

ど の よ う に 動 䜜 し た す か ?

こ の ç«  で は po4aの 内 郚 の å…š 䜓 像 を 手 短 か に 説 明 し た す 。 こ ち ら を お 読 み い た だ け れ ば 、 po4aを 保 守 し 改 善 し お い く 手 助 け を す る に あ た っ お よ り 自 ä¿¡ が ぀ く か も し れ た せ ん 。 た た 、 な ぜ 思 っ た よ う に 動 䜜 し な い か 、 ど の よ う に 問 題 を è§£ 決 す れ ば い い か を 理 è§£ す る 助 け に な る か も し れ た せ ん 。

TransTractorず プ ロ ゞ ェ ク ト の ア ヌ キ テ ク チ ャ

po4aプ ロ ゞ ェ ク ト の æ ž 心 に は Locale::Po4a::TransTractor (3pm)ク ラ ス が あ り 、 å…š お の po4a構 文 è§£ 析 噚 に 共 通 す る 先 祖 ず な っ お い た す 。 こ の 奇 劙 な 名 前 は 文 曞 の ç¿» èš³ ず 文 字 列 の 抜 出 を 同 時 に 行 う ず こ ろ か ら 付 け ら れ お い た す 。

も っ ず 圢 匏 匵 っ お い う ず 、 入 力 ず し お ç¿» èš³ す る 文 曞 ず ç¿» èš³ が 入 っ お い る POフ ァ ã‚€ ル を 取 り 、 結 果 を 別 の POフ ァ ã‚€ ル  入 力 文 曞 か ら ç¿» èš³ 可 胜 な 文 字 列 を 抜 出 し た 結 果  ず ç¿» èš³ 枈 み 文 曞  入 力 し た フ ァ ã‚€ ル ず 同 じ 構 造 で す が 、 ç¿» èš³ 可 胜 な 文 字 列 は 入 力 POフ ァ ã‚€ ル の 内 容 で 眮 換 さ れ お い る フ ァ ã‚€ ル  の 2぀ に 分 け お 出 力 し た す 。 以 例 に 図 瀺 し た す 。

入 力 ド キ ュ メ ン ト -\ /---> 出 力 ド キ ュ メ ン ト
\ TransTractor:: / (ç¿» èš³ 枈 み )
+-->-- parse() --------+
/ \
入 力 PO ---------/ \---> 出 力 PO
(抜 出 枈 み )

こ の 小 さ な 骚 子 は 、 po4aア ヌ キ テ ク チ ャ の äž­ æ ž の å…š お を 衚 し お い た す 。 äž¡ 方 の 入 力 を 侎 え 、 出 力 の POを 無 芖 す る ず 、 po4a-translate に な り た す 。 代 え お 出 力 文 曞 を 無 芖 す る ず po4a-updatepo に な り た す 。 po4a は 最 初 に TransTractorを 䜿 っ お 最 新 の 出 力 POTフ ァ ã‚€ ル を 埗 お 、 msgmerge -U を 呌 び 出 し お デ ィ ス ク 侊 の ç¿» èš³ POフ ァ ã‚€ ル を 曎 新 し た す 。 そ れ か ら こ れ ら の 曎 新 さ れ た POフ ァ ã‚€ ル で 2回 目 の TransTractorを 構 築 し 、 出 力 文 曞 を 曎 新 し た す 。 芁 は 、 po4a は 必 芁 な 曎 新 に ぀ い お 1぀ の 構 成 フ ァ ã‚€ ル を 䜿 っ お 侀 括 で 行 う è§£ 決 策 を 提 䟛 す る わ け で す 。

po4a-gettextize も 2぀ の TransTractorを 䜿 い た す が 、 違 っ た や り 方 を し た す 。 1぀ 目 の TransTractorを 蚀 語 毎 に 構 築 し 、 そ れ か ら 元 の 文 曞 の msgidは msgidず し お 、 ç¿» èš³ 文 曞 の msgidは msgstrず し お 䜿 い 、 新 し い POフ ァ ã‚€ ル を 構 築 し た す 。 po4a-gettextize (1)に 蚘 茉 さ れ お い る よ う に 、 こ の よ う に し お 照 合 さ れ た 文 字 列 が 実 際 に 照 合 で き お い る か に ぀ い お は 泚 意 が 必 芁 で す 。

圢 匏 に 固 有 の 構 文 è§£ 析 噚

å…š お の po4aの 圢 匏 の 構 文 è§£ 析 噚 は TransTractorを 土 台 に 実 装 さ れ お い た す 。 Text、 Markdown、 AsciiDocず い っ た ず お も 単 箔 な も の が あ り た す 。 こ れ ら は TransTractor::shiftline()を 䜿 っ お 1行 ず ぀ 読 み 蟌 み 、 段 萜 の 内 容 か 䜕 か を 積 み 侊 げ お い き た す 。 文 字 列 が 完 å…š に 構 文 è§£ 析 で き た ら 、 構 文 è§£ 析 噚 は TransTractor::translate()を 䜿 っ お    こ の 文 字 列 を 出 力 POフ ァ ã‚€ ル に 远 加 し    入 力 POフ ァ ã‚€ ル か ら ç¿» èš³ を 取 埗 し た す 。 そ れ か ら 構 文 è§£ 析 噚 は TransTractor::pushline()を 䜿 っ お 出 力 フ ァ ã‚€ ル に 結 果 を 抌 し 蟌 み た す 。

そ の 他 の 構 文 è§£ 析 噚 は も っ ず 耇 雑 で す が 、 そ れ は 入 力 文 曞 を è§£ 析 す る た め に 倖 郚 の 構 文 è§£ 析 噚 に 䟝 存 し お い る た め で す 。 Xml、 HTML、 SGML、 Podの 構 文 è§£ 析 噚 は SAX構 文 è§£ 析 噚 を 土 台 に 構 築 さ れ お い た す 。 こ れ ら の è§£ 析 噚 は 「 以 例 の 内 容 の 新 芏 題 名 を 芋 付 け た し た 」 ず い う よ う な ã‚€ ベ ン ト の コ ヌ ル バ ッ ク を 宣 蚀 し 、 TransTractor::translate()ず TransTractor::pushline()を 䜿 っ お 入 力 の 内 容 に 沿 っ お 出 力 文 曞 ず 出 力 POTフ ァ ã‚€ ル を 曎 新 し た す 。 Yaml構 文 è§£ 析 噚 は よ り 単 箔 で す が 毛 色 が 違 い た す 。 YAML::Tiny構 文 è§£ 析 噚 に よ り 生 成 さ れ る デ ヌ タ 構 造 を 目 列 化 す る の で す 。 こ れ が po4aの Yamlモ ゞ ュ ヌ ル で は 参 照 行 の 宣 蚀 が で き な い こ ず の 理 由 で す 。 入 力 フ ァ ã‚€ ル の 各 文 字 列 の 䜍 眮 は 構 文 è§£ 析 噚 で 保 持 さ れ ず 、 文 字 列 の å Ž 所 ず し お 侎 え ら れ る の は 「 $filename:1」 の み な の で す 。 SAXに 基 づ く 構 文 è§£ 析 は 倧 域 倉 数 ず そ の 他 の 仕 掛 け を 䜿 っ お フ ァ ã‚€ ル 名 ず 参 照 の た め の 行 番 号 を 保 存 し た す 。

フ ァ ã‚€ ル の 笊 号 化 方 匏 ず BOMの 印 に よ り 匕 き èµ· こ さ れ る 問 題 が あ り た す 。 単 箔 な 構 文 è§£ 析 噚 で は TransTractor::read()  入 力 文 曞 の 行 を 取 埗 す る た め に 内 郚 的 に 䜿 甹 さ れ た す  で 察 凊 さ れ る た め こ の 問 題 を 無 芖 で き た す 。 し か し 倖 郚 の 構 文 è§£ 析 噚 に 䟝 存 す る モ ゞ ュ ヌ ル で は å…š お の フ ァ ã‚€ ル が PerlIOデ コ ヌ ド å±€ で 適 切 に 読 み 蟌 た れ る よ う に し な く お は な り た せ ん 。 最 も ç°¡ 単 な の は 、 倖 郚 の 構 文 è§£ 析 噚 に フ ァ ã‚€ ル を 自 分 で 開 い お フ ァ ã‚€ ル ハ ン ド ル な い し 完 å…š な 文 字 列 を 侎 え る こ ず で す 。 侀 䟋 に ぀ い お は Pod::read()ず Pod::parse()を 芋 お く だ さ い 。 TransTractorに よ り 読 た れ た 内 容 は 無 芖 さ れ た す が 、 倖 郚 の 構 文 è§£ 析 噚 に 新 し い フ ァ ã‚€ ル ハ ン ド ル が æž¡ さ れ お い た す 。 重 芁 な 郚 分 は "<:encoding($charset)" モ ヌ ド で 、 こ れ が open() perl関 数 に æž¡ さ れ た す 。

Poオ ブ ゞ ェ ク ト

Locale::Po4a::Po (3pm)ク ラ ス は POず POTフ ァ ã‚€ ル の 読 み 蟌 み ず 掻 甹 を 担 い た す 。 基 本 的 に 、 フ ァ ã‚€ ル を 読 み 、 項 目 を 远 加 し 、 gettext() メ ゜ ッ ド で ç¿» èš³ を 取 埗 し 、 POを フ ァ ã‚€ ル に 曞 き 蟌 め た す 。 POTフ ァ ã‚€ ル に POフ ァ ã‚€ ル を çµ± 合 し た り フ ァ ã‚€ ル を 健 勝 し た り す る よ り 発 展 的 な 機 胜 に ぀ い お は そ れ ぞ れ msgmerge ず msgfmt に 説 明 を 委 ね た す 。

po4aに 貢 献 す る

過 去 に å…š く オ ヌ プ ン ゜ ヌ ス プ ロ ゞ ェ ク ト に è²¢ 献 し た こ ず が な く お も 歓 迎 し た す 。 喜 ん で 手 助 け し た り メ ン タ リ ン グ し た す 。 po4aは 今 日 も 利 甹 者 に よ り 最 高 の 保 守 が な さ れ お い た す 。 人 手 は è¶³ り お い た せ ん が 、 ド キ ュ メ ン ト ず 自 動 的 な テ ス ト を 改 善 し お プ ロ ゞ ェ ク ト ぞ の è²¢ 献 に 自 ä¿¡ が 持 お る よ う に す る こ ず で 、 プ ロ ゞ ェ ク ト ぞ の è²¢ 献 を 迎 え 入 れ ら れ る よ う に 努 め お い た す 。 詳 现 に ぀ い お は CONTRIBUTING.mdフ ァ ã‚€ ル を 参 照 し お く だ さ い 。

po4aを 䜿 っ お い る オ ヌ プ ン ゜ ヌ ス プ ロ ゞ ェ ク ト

以 例 は プ ロ ダ ク シ ョ ン 環 境 で ド キ ュ メ ン ト 甹 に po4aを 䜿 っ お い る プ ロ ゞ ェ ク ト の ほ ん の 侀 郚 の 侀 芧 で す 。 も し 侀 芧 ぞ の ご 自 身 の プ ロ ゞ ェ ク ト の 远 加 を ご 垌 望 で し た ら Eメ ヌ ル  た た は マ ヌ ゞ リ ク ゚ ス ト  を お 寄 せ く だ さ い 。

•

adduser (man): ナ ヌ ザ ヌ ず グ ル ヌ プ の 管 理 ツ ヌ ル 。

•

apt (man, docbook): Debianの パ ッ ケ ヌ ゞ 管 理 。

•

aptitude (docbook, svg): Debian甹 の 端 末 ベ ヌ ス の パ ッ ケ ヌ ゞ 管 理

•

F-Droidの webサ ã‚€ ト <https://gitlab.com/fdroid/fdroid-website> (markdown): Androidプ ラ ッ ト フ ォ ヌ ム 甹 の ã‚€ ン ス ト ヌ ル 可 胜 な FOSS 自 由 で オ ヌ プ ン ゜ ヌ ス な ゜ フ ト り ェ ア  の 目 録 。

•

git <https://github.com/jnavila/git-manpages-l10n> (asciidoc): ゜ ヌ ス コ ヌ ド の 倉 曎 を 远 è·¡ す る た め の 分 散 バ ヌ ゞ ョ ン 管 理 シ ス テ ム 。

•

Linux manペ ヌ ゞ <https://salsa.debian.org/manpages-l10n-team/manpages-l10n> (man)

こ の プ ロ ゞ ェ ク ト は 倚 く の パ ッ ケ ヌ ゞ ず 別 の 蚀 語 に ç¿» èš³ す る ã‚€ ン フ ラ を 提 䟛 し お お り 、 耇 数 の äž» 芁 な デ ィ ス ト リ ビ ュ ヌ シ ョ ン  Arch Linux、 Debianず そ の 掟 生 、 Fedora ぞ の çµ± 合 の 準 備 が 敎 っ お い た す 。

•

Stellarium <https://github.com/Stellarium/stellarium> (HTML): 手 元 の コ ン ピ ュ ヌ タ 甹 の 自 由 で オ ヌ プ ン ゜ ヌ ス な プ ラ ネ タ リ り ム 。 po4aは 空 の 文 化 の 説 明 を ç¿» èš³ す る た め に 䜿 わ れ お い た す 。

•

Jamulus <https://jamulus.io/> (markdown, yaml, HTML): 実 時 間 で オ ン ラ ã‚€ ン の ゞ ャ ズ を 挔 奏 す る た め の FOSSア プ リ ケ ヌ シ ョ ン で す 。 webサ ã‚€ ト の ド キ ュ メ ン ト は po4aを 䜿 っ お 耇 数 蚀 語 で 保 守 さ れ お い た す 。

•

そ の 他 未 敎 理 の 項 目  <https://gitlab.com/fdroid/fdroid-website/> <https://github.com/fsfe/reuse-docs/pull/61>

FAQ

po4aは ど う 発 音 す る の で す か 

個 人 的 に は <pouah|https://en.wiktionary.org/wiki/pouah>ず 発 声 し お お り 、 こ れ は yuck の 意 味 の フ ラ ン ス 語 の 擬 音 語 で す :)。 ヘ ン な ナ ヌ モ ア の セ ン ス か も し れ た せ ん :)

な ぜ 個 別 の ス ク リ プ ト が 非 掚 奚 ず な っ た の か

po4a-updatepo ず po4a-translate は po4a が 代 わ る こ ず に よ り 非 掚 奚 ず な り た し た 。 そ の 理 由 は po4a が こ れ ら の ス ク リ プ ト を そ の た た 眮 き 換 え ら れ る 侀 方 、 コ ヌ ド の 重 耇 が か な り あ る た め で す 。 個 別 の ス ク リ プ ト は 150行 の コ ヌ ド で す が po4a プ ロ グ ラ ム は 1200行 に 及 び た す 。 故 に こ れ ら の 個 別 の ス ク リ プ ト は 共 通 す る 内 郚 の 凊 理 に 加 え お æ²¢ å±± の こ ず を し お い た す 。 コ ヌ ド の 重 耇 は äž¡ 方 の バ ヌ ゞ ョ ン に æ–Œ い お 䞍 具 合 に 繋 が っ お お り 、 2぀ ず も を ä¿® æ­£ す る 必 芁 が 生 じ た す 。 そ の よ う な 重 耇 の 䟋 は Debianの #1022216や GitHubの #442で す 。 こ れ は å…š く 同 じ ä¿® æ­£ で す が 、 か ぀ は po4a で か ぀ は po4a-updatepo に あ り た し た 。

長 い 目 で 芋 た ず き 、 個 別 の ス ク リ プ ト を 管 理 か ら 倖 し 、 こ の 1぀ の バ ヌ ゞ ョ ン の み を 保 守 し た い ず 考 え お い た す 。 確 か な こ ず は 個 別 の ス ク リ プ ト は 最 早 改 善 が 行 わ れ な い ず い う こ ず で 、 po4a だ け に 新 機 胜 が 加 え ら れ た す 。 ぀ た り 、 取 り 急 ぎ の 非 掚 奚 ず い う も の は あ り た せ ん 。 少 な く ず も 2030幎 た で は で き る 限 り 個 別 の ス ク リ プ ト を 保 持 し お お く 蚈 画 で い た す 。 も し プ ロ ゞ ェ ク ト で た だ po4a-updatepo ず po4a-translate を 䜿 っ お い る の で あ れ ば 、 問 題 が èµ· こ る か も し れ た せ ん 。

コ ヌ ド の 改 ä¿® に よ り コ ヌ ド の 重 耇 が れ ロ に 䜎 æž› さ れ れ ば 、 ど こ か の 時 点 で こ れ ら の ス ク リ プ ト の 非 掚 奚 を 取 り 消 す 可 胜 性 も あ り た す 。 も し 思 い 付 い た こ ず  欲 を 蚀 え ば パ ッ チ  が あ れ ば ご 協 力 を 歓 迎 し た す 。

gettext を 䜿 っ た ド キ ュ メ ン ト ç¿» èš³ ツ ヌ ル は 他 に 䜕 が あ り た す か ?

い く ぀ か あ り た す 。 以 例 は 恐 ら く 䞍 完 å…š な 侀 芧 で 、 も っ ず 倚 く の ツ ヌ ル が 珟 れ お き お い た す 。
poxml

KDE の 人 た ち が DocBook XML を 扱 う た め に 開 発 し た ツ ヌ ル で す 。 知 る 限 り で は 、 ド キ ュ メ ン ト か ら PO フ ァ ã‚€ ル ぞ ç¿» èš³ す る 文 字 列 を 抜 出 し 、 ç¿» èš³ 埌 に 泚 入 す る 初 め お の プ ロ グ ラ ム で す 。

こ れ は XML の み 、 さ ら に 特 定 の DTD の み を 扱 え た す 。 リ ス ト が 侀 ぀ の 倧 き な msgid に な っ お し た う た め 、 私 は リ ス ト の 扱 い に か な り 䞍 満 が あ り た す 。 リ ス ト が 倧 き く な る ず 、 ひ ず か た た り の 構 造 を ぀ か み に く く な り た す 。

po-debiandoc

Denis Barbier に よ っ お 䜜 ら れ た こ の プ ロ グ ラ ム は 、 倚 少 の 異 論 が あ る ず は い え po4a SGML モ ゞ ュ ヌ ル の 先 駆 け ず い え た す 。 名 前 の 通 り 、 少 々 非 掚 奚 の DTD で あ る DebianDoc DTD の み を 扱 い た す 。

xml2po.py

2004幎 か ら GIMPド キ ュ メ ン ト チ ヌ ム に 䜿 わ れ お い た す 。 名 前 か ら 掚 枬 さ れ る よ う に XMLフ ァ ã‚€ ル の み 察 応 で あ り 、 特 有 の Makefileの èš­ 定 が 必 芁 で す が 、 か な り 良 く 動 䜜 し た す 。

Sphinx

Sphinx文 曞 プ ロ ゞ ェ ク ト も ç¿» èš³ を 管 理 す る た め に gettextを ふ ん だ ん に 䜿 っ お い た す 。 ç¿» èš³ 過 繋 の å…š 䜓 を 管 理 す る 恐 ら く 唯 侀 の ツ ヌ ル で は あ り た す が 、 䞍 運 に も reSTや Markdownず い っ た い く ぀ か の テ キ ス ト 圢 匏 で の み 動 䜜 し た す 。

以 侊 に 察 す る po4a の äž» な 利 点 は 、 ç°¡ 単 に 内 容 を 远 加 で き る こ ず (欠 点 か も し れ た せ ん が ) ず 、 gettext 化 が ç°¡ 単 な こ ず で す 。

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/

し か し 、 す べ お 問 題 な い わ け で は あ り た せ ん 。 こ の ア プ ロ ヌ チ に は 察 凊 す る べ き 欠 点 も あ り た す 。

•

補 遺 は 侀 芋 し お ど こ か 奇 劙 で す 。

•

ç¿» èš³ し た テ キ ス ト を 、 段 萜 を こ こ で 分 割 す る 、 二 ぀ の 段 萜 を 片 方 に 結 合 す る ず い っ た 、 あ な た の 奜 み に 合 わ せ る こ ず が で き た せ ん 。 し か し 、 オ リ ゞ ナ ル に 問 題 が あ る の で あ れ ば 、 ず り あ え ず バ グ ず し お å ± 告 す べ き だ 、 ず い う 意 芋 も あ り た す 。

•

ç°¡ 単 な ã‚€ ン タ ヌ フ ェ ヌ ス で す が 、 å­Š 習 が 必 芁 な 新 し い ツ ヌ ル の た た で す 。

私 の 倢 の 侀 ぀ は Gtranslator や Lokalize に 䜕 ら か の 圢 で çµ± 合 す る こ ず で す 。 文 曞 フ ァ ã‚€ ル を 開 く ず 文 字 列 を 自 動 的 に 抜 出 し 、 ç¿» èš³ さ れ た フ ァ ã‚€ ル ず POフ ァ ã‚€ ル を デ ィ ス ク に 曞 き 蟌 み た す 。 MS Word (TM) モ ゞ ュ ヌ ル (少 な く ず も RTF) で こ れ が で き れ ば 、 プ ロ の ç¿» èš³ å®¶ も こ れ を 䜿 っ お く れ る か も 知 れ た せ ん 。

関 連 項 目

•

å…š お が 1぀ に 集 た っ お い る 䜿 う べ き ツ ヌ ル で あ る po4a (1)の ド キ ュ メ ン ト 。

•

個 別 の po4aス ク リ プ ト の ド キ ュ メ ン ト は 次 の 通 り  po4a-gettextize (1)、 po4a-updatepo (1)、 po4a-translate (1)、 po4a-normalize (1)。

•

远 加 の 補 助 ス ク リ プ ト  msguntypot (1)、 po4a-display-man (1)、 po4a-display-pod (1)。

•

そ れ ぞ れ の フ ォ ヌ マ ッ ト の 構 文 è§£ 析 噚 は 次 の 通 り 。 詳 し く は そ れ ぞ れ の è§£ 析 噚 で 受 け 付 け る オ プ シ ョ ン を 芋 お く だ さ い  Locale::Po4a::AsciiDoc (3pm) Locale::Po4a::Dia (3pm), Locale::Po4a::Guide (3pm), Locale::Po4a::Ini (3pm), Locale::Po4a::KernelHelp (3pm), Locale::Po4a::Man (3pm), Locale::Po4a::RubyDoc (3pm), Locale::Po4a::Texinfo (3pm), Locale::Po4a::Text (3pm), Locale::Po4a::Xhtml (3pm), Locale::Po4a::Yaml (3pm), Locale::Po4a::BibTeX (3pm), Locale::Po4a::Docbook (3pm), Locale::Po4a::Halibut (3pm), Locale::Po4a::LaTeX (3pm), Locale::Po4a::Pod (3pm), Locale::Po4a::Sgml (3pm), Locale::Po4a::TeX (3pm), Locale::Po4a::Wml (3pm), Locale::Po4a::Xml (3pm)。

•

ã‚€ ン フ ラ の äž­ æ ž の 実 装 は Locale::Po4a::TransTractor (3pm) äž­ æ ž の 組 織 立 お を 理 è§£ す る の に ず り わ け 重 芁  、 Locale::Po4a::Chooser (3pm)、 Locale::Po4a::Po (3pm)、 Locale::Po4a::Common (3pm)に あ り た す 。 ゜ ヌ ス ツ リ ヌ äž­ の CONTRIBUTING.md フ ァ ã‚€ ル も ご 確 認 く だ さ い 。

著 者

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

èš³ 者

倉 柀 望 <nabetaro@debian.or.jp>
Debian JP Documentation ML <debian-doc@debian.or.jp>

POD ERRORS

Hey! The above document had some coding errors, which are explained below:
Around line 263:

Unterminated C< C< ... > > sequence