Changeset View
Changeset View
Standalone View
Standalone View
head/zh_TW.UTF-8/books/fdp-primer/book.xml
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 109 Lines • ▼ Show 20 Lines | <para xml:lang="en">THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION | ||||
DAMAGE.</para> | DAMAGE.</para> | ||||
</important> | </important> | ||||
</legalnotice> | </legalnotice> | ||||
<abstract> | <abstract> | ||||
<para>感謝您參與 FreeBSD 說明文件計劃,您的點滴貢獻,都相當寶貴。</para> | <para>感謝您參與 FreeBSD 說明文件計劃,您的點滴貢獻,都相當寶貴。</para> | ||||
<para>本入手書內容包括:如何開始著手貢獻 FreeBSD 說明文件計劃 (FreeBSD Documentation Project, <acronym>FDP</acronym>) 的各項細節,以及會用到的一些工具、軟體 ,以及文件計畫的宗旨。</para> | <para>本入手書內容包括:如何開始著手貢獻 FreeBSD 說明文件計劃 (FreeBSD Documentation Project, <acronym>FDP</acronym>) 的各項細節,以及會用到的一些工具、軟體,以及文件計畫的宗旨。</para> | ||||
<para>本入門書仍在持續撰寫中。任何修正或新增內容的建議都非常歡迎。</para> | <para>本入門書仍在持續撰寫中。任何修正或新增內容的建議都非常歡迎。</para> | ||||
</abstract> | </abstract> | ||||
</info> | </info> | ||||
<preface xml:id="preface"> | <preface xml:id="preface"> | ||||
<title>序</title> | <title>序</title> | ||||
<sect1 xml:id="preface-prompts"> | <sect1 xml:id="preface-prompts"> | ||||
<title>Shell 提示符號</title> | <title>Shell 提示符號</title> | ||||
<para>下表顯示出一般使用者帳號與 root 的提示符號,在所有的文件例子中會用提示符號(prompt) ,來提醒您該用哪種帳號才對。</para> | <para>下表顯示出一般使用者帳號與 root 的提示符號,在所有的文件例子中會用提示符號 (Prompt),來提醒您該用哪種帳號才對。</para> | ||||
<informaltable frame="none" pgwide="1"> | <informaltable frame="none" pgwide="1"> | ||||
<tgroup cols="2"> | <tgroup cols="2"> | ||||
<thead> | <thead> | ||||
<row> | <row> | ||||
<entry>帳號</entry> | <entry>帳號</entry> | ||||
<entry>提示符號</entry> | <entry>提示符號</entry> | ||||
</row> | </row> | ||||
▲ Show 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | The time is 09:18</screen></entry> | ||||
<row> | <row> | ||||
<entry>要參考的線上手冊</entry> | <entry>要參考的線上手冊</entry> | ||||
<entry>使用 <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來切換帳號。</entry> | <entry>使用 <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來切換帳號。</entry> | ||||
</row> | </row> | ||||
<row> | <row> | ||||
<entry>使用者名稱和群組名稱</entry> | <entry>使用者名稱和群組名稱</entry> | ||||
<entry>只有 <systemitem class="username">root</systemitem> 才可以做這件事。</entry> | <entry>只有 <systemitem class="username">root</systemitem> 才可以做這件事。</entry> | ||||
</row> | </row> | ||||
<row> | <row> | ||||
<entry>語氣的強調。</entry> | <entry>語氣的強調。</entry> | ||||
<entry>使用者<emphasis>必須</emphasis>這樣做</entry> | <entry>使用者<emphasis>必須</emphasis>這樣做</entry> | ||||
</row> | </row> | ||||
<row> | <row> | ||||
Show All 24 Lines | The time is 09:18</screen></entry> | ||||
<para>提示:提供可能對您有用的資訊,例如簡化操作方式的技巧說明。</para> | <para>提示:提供可能對您有用的資訊,例如簡化操作方式的技巧說明。</para> | ||||
</tip> | </tip> | ||||
<important> | <important> | ||||
<para>重要:表示要特別注意的事情。一般來說,它們會包括操作指令時需要加的額外參數。</para> | <para>重要:表示要特別注意的事情。一般來說,它們會包括操作指令時需要加的額外參數。</para> | ||||
</important> | </important> | ||||
<warning> | <warning> | ||||
<para>警告:表示警告事項,比如如果您不則可能導致的損失。這些損失可能是對您或硬體造成實際傷害, 也可能是無法估計的損害,例如一時疏忽而刪除重要檔案...。</para> | <para>警告:表示警告事項,比如如果您不則可能導致的損失。這些損失可能是對您或硬體造成實際傷害,也可能是無法估計的損害,例如一時疏忽而刪除重要檔案...。</para> | ||||
</warning> | </warning> | ||||
<example> | <example> | ||||
<title>範例的範本</title> | <title>範例的範本</title> | ||||
<para>這是舉例說明而已,通常包含應遵循的指令範例,或顯示某些特定動作所可能發生的結果。</para> | <para>這是舉例說明而已,通常包含應遵循的指令範例,或顯示某些特定動作所可能發生的結果。</para> | ||||
</example> | </example> | ||||
</sect1> | </sect1> | ||||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | <itemizedlist> | ||||
<listitem> | <listitem> | ||||
<para>提交修改以供審核並納入 FreeBSD 說明文件。</para> | <para>提交修改以供審核並納入 FreeBSD 說明文件。</para> | ||||
</listitem> | </listitem> | ||||
</itemizedlist> | </itemizedlist> | ||||
<sect1 xml:id="overview-quick-start"> | <sect1 xml:id="overview-quick-start"> | ||||
<title>快速上手</title> | <title>快速上手</title> | ||||
<para>在編輯 FreeBSD 說明文件之前,有一些準備工作要做。 首先,請訂閱 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc">FreeBSD 文件計劃郵件論壇</link>。 有些團隊成員也會出現在 <link xlink:href="http://www.efnet.org/">EFnet</link> 的<literal>#bsddocs</literal> <acronym>IRC</acronym> 頻道。這些人可以幫忙解決文件相關的問題。</para> | <para>在編輯 FreeBSD 說明文件之前,有一些準備工作要做。首先,請訂閱 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc">FreeBSD 文件計劃郵件論壇</link>。有些團隊成員也會出現在 <link xlink:href="http://www.efnet.org/">EFnet</link> 的<literal>#bsddocs</literal> <acronym>IRC</acronym> 頻道。這些人可以幫忙解決文件相關的問題。</para> | ||||
<procedure> | <procedure> | ||||
<step> | <step> | ||||
<para>安裝 <package>textproc/docproj</package> 套件或 Port。這個 meta-port 會安裝所有編輯和建置 FreeBSD 說明文件需要的軟體。</para> | <para>安裝 <package>textproc/docproj</package> 套件或 Port。這個 meta-port 會安裝所有編輯和建置 FreeBSD 說明文件需要的軟體。</para> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>在 <filename>~/doc</filename> 安裝 FreeBSD 說明文件檔案庫的本地端工作副本 (請見 <xref linkend="working-copy"/>)。</para> | <para>在 <filename>~/doc</filename> 安裝 FreeBSD 說明文件檔案庫的本地端工作副本 (請見 <xref linkend="working-copy"/>)。</para> | ||||
Show All 25 Lines | <chapter version="5.0" xml:id="overview"> | ||||
<para>更新本地端工作副本</para> | <para>更新本地端工作副本</para> | ||||
<screen><prompt>%</prompt> <userinput>svn up <replaceable>~/doc</replaceable></userinput></screen> | <screen><prompt>%</prompt> <userinput>svn up <replaceable>~/doc</replaceable></userinput></screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>編輯需要修改的說明文件檔案。如果檔案需要大幅度的編修,請先諮詢郵件論壇。</para> | <para>編輯需要修改的說明文件檔案。如果檔案需要大幅度的編修,請先諮詢郵件論壇。</para> | ||||
<para>標籤 (Tag) 和 Entity 的使用方式可以參考 <xref linkend="xhtml-markup"/> 和 <xref linkend="docbook-markup"/>. 。</para> | <para>標籤 (Tag) 和 Entity 的使用方式可以參考 <xref linkend="xhtml-markup"/> 和 <xref linkend="docbook-markup"/>。</para> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>編輯完後,執行以下指令來檢查是否有問題:</para> | <para>編輯完後,執行以下指令來檢查是否有問題:</para> | ||||
<screen><prompt>%</prompt> <userinput>igor -R filename.xml | less -RS</userinput></screen> | <screen><prompt>%</prompt> <userinput>igor -R filename.xml | less -RS</userinput></screen> | ||||
<para>檢查輸出並重新編輯檔案來修正顯示的錯誤,然後重新執行指令來找出剩下的問題。重複執行直到所有錯誤都解決完。</para> | <para>檢查輸出並重新編輯檔案來修正顯示的錯誤,然後重新執行指令來找出剩下的問題。重複執行直到所有錯誤都解決完。</para> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para><emphasis>永遠要</emphasis>送出修正前請先做建置測試 (Build-test) 。在編輯的說明文件目錄最頂層執行 <userinput>make</userinput>,將會產生分頁的 HTML 格式 (Split HTML) 的文件。例如要建置 <acronym>HTML</acronym> 格式的英文版使用手冊,請在 <filename>en_US.ISO8859-1/books/handbook/</filename> 目錄執行 <command>make</command> 。</para> | <para><emphasis>永遠要</emphasis>送出修正前請先做建置測試 (Build-test) 。在編輯的說明文件目錄最頂層執行 <userinput>make</userinput>,將會產生分頁的 HTML 格式 (Split HTML) 的文件。例如要建置 <acronym>HTML</acronym> 格式的英文版使用手冊,請在 <filename>en_US.ISO8859-1/books/handbook/</filename> 目錄執行 <command>make</command> 。</para> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>修改並測試完後,產生 <quote>diff 檔</quote>:</para> | <para>修改並測試完後,產生 <quote>diff 檔</quote>:</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc</userinput> | <screen><prompt>%</prompt> <userinput>cd ~/doc</userinput> | ||||
<prompt>%</prompt> <userinput>svn diff > <replaceable>bsdinstall</replaceable>.diff.txt</userinput></screen> | <prompt>%</prompt> <userinput>svn diff > <replaceable>bsdinstall</replaceable>.diff.txt</userinput></screen> | ||||
<para>設一個可辨識的檔名。如上例中,是使用手冊的 <filename>bsdinstall</filename> 部份的修改。</para> | <para>設一個可辨識的檔名。如上例中,是使用手冊的 <filename>bsdinstall</filename> 部份的修改。</para> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>使用網頁版 <link xlink:href="@@URL_RELPREFIX@@/support.html#gnats">問題回報</link> 系統提交 diff 檔。 如果使用網頁版,請輸入 <emphasis>[patch] <replaceable>問題簡短描述</replaceable></emphasis> 的概要 。選擇 <literal>docs</literal> 分類和 <literal>doc-bug</literal>類別。在訊息的主體中,輸入修正的簡短描述和其他相關的重要的細節。使用 <guibutton>[!Browse...!]</guibutton> 按鈕來附加 diff 檔。</para> | <para>使用網頁版 <link xlink:href="@@URL_RELPREFIX@@/support.html#gnats">問題回報</link> 系統提交 diff 檔。如果使用網頁版,請輸入 <emphasis>[patch] <replaceable>問題簡短描述</replaceable></emphasis> 的概要 。選擇 <literal>docs</literal> 分類和 <literal>doc-bug</literal>類別。在訊息的主體中,輸入修正的簡短描述和其他相關的重要的細節。使用 <guibutton>[!Browse...!]</guibutton> 按鈕來附加 diff 檔。</para> | ||||
</step> | </step> | ||||
</procedure> | </procedure> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="overview-doc"> | <sect1 xml:id="overview-doc"> | ||||
<title>FreeBSD 說明文件集</title> | <title>FreeBSD 說明文件集</title> | ||||
<para><acronym>FDP</acronym> 負責四類 FreeBSD 說明文件。</para> | <para><acronym>FDP</acronym> 負責四類 FreeBSD 說明文件。</para> | ||||
<itemizedlist> | <itemizedlist> | ||||
<listitem> | <listitem> | ||||
<para><emphasis>使用手冊 (Handbook)</emphasis>:使用手冊主要是給 FreeBSD 使用者提供詳盡的線上參考資料。</para> | <para><emphasis>使用手冊 (Handbook)</emphasis>:使用手冊主要是給 FreeBSD 使用者提供詳盡的線上參考資料。</para> | ||||
</listitem> | </listitem> | ||||
<listitem> | <listitem> | ||||
<para><emphasis>常見問答集 (FAQ)</emphasis>:主要是收集在各郵件論壇或論壇會常問到或有可能會問到的 FreeBSD 相關問題與答案 。 (簡單講,就是『問答集』格式) 通常會擺在這裡面的問答格式,不會放太長的詳細內容。</para> | <para><emphasis>常見問答集 (FAQ)</emphasis>:主要是收集在各郵件論壇或論壇會常問到或有可能會問到的 FreeBSD 相關問題與答案。(簡單講,就是『問答集』格式) 通常會擺在這裡面的問答格式,不會放太長的詳細內容。</para> | ||||
</listitem> | </listitem> | ||||
<listitem> | <listitem> | ||||
<para><emphasis>操作手冊 (Manual page)</emphasis>:英文版的系統手冊並不是由 <acronym>FDP</acronym> 所撰寫的,因為它們是屬於基礎系統 (Base system) 的部份。 然而,<acronym>FDP</acronym> 可以修改這些文件,來讓這些文件寫得更清楚,甚至是勘正錯誤的地方。</para> | <para><emphasis>操作手冊 (Manual page)</emphasis>:英文版的系統手冊並不是由 <acronym>FDP</acronym> 所撰寫的,因為它們是屬於基礎系統 (Base system) 的部份。然而,<acronym>FDP</acronym> 可以修改這些文件,來讓這些文件寫得更清楚,甚至是勘正錯誤的地方。</para> | ||||
</listitem> | </listitem> | ||||
<listitem> | <listitem> | ||||
<para><emphasis>網站</emphasis>:這是 FreeBSD 在網路上的主要部份,位於 <link xlink:href="http://www.freebsd.org/index.html">http://www.FreeBSD.org/</link> 以及許多其他鏡像站 (Mirror)。這網站是許多人第一次接觸 FreeBSD 的地方</para> | <para><emphasis>網站</emphasis>:這是 FreeBSD 在網路上的主要部份,位於 <link xlink:href="http://www.freebsd.org/index.html">http://www.FreeBSD.org/</link> 以及許多其他鏡像站 (Mirror)。這網站是許多人第一次接觸 FreeBSD 的地方</para> | ||||
</listitem> | </listitem> | ||||
</itemizedlist> | </itemizedlist> | ||||
<para>翻譯團隊負責翻譯使用手冊和網站到不同的語言。線上手冊目前並未翻譯</para> | <para>翻譯團隊負責翻譯使用手冊和網站到不同的語言。線上手冊目前並未翻譯</para> | ||||
<para>FreeBSD 網站、使用手冊、和 <acronym>FAQ</acronym> 的文件原始碼可以在 <literal>https://svn.FreeBSD.org/doc/</literal> 的文件檔案庫取得。</para> | <para>FreeBSD 網站、使用手冊、和 <acronym>FAQ</acronym> 的文件原始碼可以在 <literal>https://svn.FreeBSD.org/doc/</literal> 的文件檔案庫取得。</para> | ||||
<para>線上手冊的原始碼則是在 <literal>https://svn.FreeBSD.org/base/</literal> 的原始碼庫可以取得。</para> | <para>線上手冊的原始碼則是在 <literal>https://svn.FreeBSD.org/base/</literal> 的原始碼庫可以取得。</para> | ||||
<para>說明文件提交訊息可以用 <command>svn log</command> 察看。 提交訊息也會封存在 <uri xlink:href="http://lists.FreeBSD.org/mailman/listinfo/svn-doc-all">http://lists.FreeBSD.org/mailman/listinfo/svn-doc-all</uri>。</para> | <para>說明文件提交訊息可以用 <command>svn log</command> 察看。提交訊息也會封存在 <uri xlink:href="http://lists.FreeBSD.org/mailman/listinfo/svn-doc-all">http://lists.FreeBSD.org/mailman/listinfo/svn-doc-all</uri>。</para> | ||||
<para>這些儲存庫的網頁版位於 <link xlink:href="https://svnweb.FreeBSD.org/doc/"/> 和 <link xlink:href="https://svnweb.FreeBSD.org/base/"/>。</para> | <para>這些儲存庫的網頁版位於 <link xlink:href="https://svnweb.FreeBSD.org/doc/"/> 和 <link xlink:href="https://svnweb.FreeBSD.org/base/"/>。</para> | ||||
<para>許多人會寫 FreeBSD 的教學文件或是 how-to 文章。有些保存在 <acronym>FDP</acronym> 的檔案中。其他一些說明文件則是作者希望放在他處。<acronym>FDP</acronym> 會盡力提供這些說明文件的連結。</para> | <para>許多人會寫 FreeBSD 的教學文件或是 how-to 文章。有些保存在 <acronym>FDP</acronym> 的檔案中。其他一些說明文件則是作者希望放在他處。<acronym>FDP</acronym> 會盡力提供這些說明文件的連結。</para> | ||||
</sect1> | </sect1> | ||||
</chapter> | </chapter> | ||||
Show All 26 Lines | <!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. | ||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE | ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE | ||||
POSSIBILITY OF SUCH DAMAGE. | POSSIBILITY OF SUCH DAMAGE. | ||||
$FreeBSD$ | $FreeBSD$ | ||||
--> | --> | ||||
<chapter version="5.0" xml:id="tools"> | <chapter version="5.0" xml:id="tools"> | ||||
<title>工具</title> | <title>工具</title> | ||||
<para>有些工具軟體用來管理 FreeBSD 說明文件,並將他轉換成不同的輸出格式。 有些則是在使用接下來章節的範例之前一定要安裝。有些工具是選擇性安裝的,但是裝了之後會更容易進行文件製作工作。</para> | <para>有些工具軟體用來管理 FreeBSD 說明文件,並將他轉換成不同的輸出格式。有些則是在使用接下來章節的範例之前一定要安裝。有些工具是選擇性安裝的,但是裝了之後會更容易進行文件製作工作。</para> | ||||
<sect1 xml:id="tools-required"> | <sect1 xml:id="tools-required"> | ||||
<title>必備工具</title> | <title>必備工具</title> | ||||
<para>從 Port 套件集安裝 <package>textproc/docproj</package>。這個 <emphasis>meta-port</emphasis> 會安裝處理 FreeBSD 說明文件需要的所有應用程式。以下列出特定元件的進一步說明。</para> | <para>從 Port 套件集安裝 <package>textproc/docproj</package>。這個 <emphasis>meta-port</emphasis> 會安裝處理 FreeBSD 說明文件需要的所有應用程式。以下列出特定元件的進一步說明。</para> | ||||
<sect2> | <sect2> | ||||
<title><acronym>DTD</acronym>s 與 <acronym>Entities</acronym></title> | <title><acronym>DTD</acronym>s 與 <acronym>Entities</acronym></title> | ||||
<para>FreeBSD 說明文件使用幾種文件類型定義 (<acronym>DTD</acronym>s) 與 <acronym>XML</acronym> entities 集合。這些都會經由 <package>textproc/docproj</package> Port 來安裝。</para> | <para>FreeBSD 說明文件使用幾種文件類型定義 (<acronym>DTD</acronym>s) 與 <acronym>XML</acronym> entities 集合。這些都會經由 <package>textproc/docproj</package> Port 來安裝。</para> | ||||
<variablelist> | <variablelist> | ||||
<varlistentry> | <varlistentry> | ||||
<term><acronym>XHTML</acronym> <acronym>DTD</acronym> (<package>textproc/xhtml</package>)</term> | <term><acronym>XHTML</acronym> <acronym>DTD</acronym> (<package>textproc/xhtml</package>)</term> | ||||
<listitem> | <listitem> | ||||
<para><acronym>XHTML</acronym> 是全球資訊網的一種標記語言,也是整個 FreeBSD 網站所使用的格式。</para> | <para><acronym>XHTML</acronym> 是全球資訊網的一種標記語言,也是整個 FreeBSD 網站所使用的格式。</para> | ||||
</listitem> | </listitem> | ||||
</varlistentry> | </varlistentry> | ||||
<varlistentry> | <varlistentry> | ||||
<term xml:lang="en">DocBook <acronym>DTD</acronym> (<package>textproc/docbook-xml</package>)</term> | <term xml:lang="en">DocBook <acronym>DTD</acronym> (<package>textproc/docbook-xml</package>)</term> | ||||
<listitem> | <listitem> | ||||
<para>DocBook 設計來製作技術說明文件的標記語言版本。FreeBSD 說明文件是以 DocBook 來撰寫。</para> | <para>DocBook 設計來製作技術說明文件的標記語言版本。FreeBSD 說明文件是以 DocBook 來撰寫。</para> | ||||
</listitem> | </listitem> | ||||
</varlistentry> | </varlistentry> | ||||
<varlistentry> | <varlistentry> | ||||
<term>ISO 8879 entities (<package>textproc/iso8879</package>)</term> | <term>ISO 8879 entities (<package>textproc/iso8879</package>)</term> | ||||
<listitem> | <listitem> | ||||
<para>在 ISO 8879:1986 之中的 entity 被許多 <acronym>DTD</acronym> 所大量使用, 包括了數學符號、拉丁字母符號(尖重音等音節符號也是)以及希臘符號。</para> | <para>在 ISO 8879:1986 之中的 entity 被許多 <acronym>DTD</acronym> 所大量使用,包括了數學符號、拉丁字母符號(尖重音等音節符號也是)以及希臘符號。</para> | ||||
</listitem> | </listitem> | ||||
</varlistentry> | </varlistentry> | ||||
</variablelist> | </variablelist> | ||||
</sect2> | </sect2> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="tools-optional"> | <sect1 xml:id="tools-optional"> | ||||
<title>選用工具</title> | <title>選用工具</title> | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | <chapter version="5.0" xml:id="working-copy"> | ||||
<para>FreeBSD 說明文件檔案使用 <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/svn.html"><application>Subversion</application></link> 來管理,由於 <application>Subversion</application> 為 <package>textproc/docproj</package> 的必要應用程式之一,所以會隨著 <package>textproc/docproj</package> 一併安裝。</para> | <para>FreeBSD 說明文件檔案使用 <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/svn.html"><application>Subversion</application></link> 來管理,由於 <application>Subversion</application> 為 <package>textproc/docproj</package> 的必要應用程式之一,所以會隨著 <package>textproc/docproj</package> 一併安裝。</para> | ||||
<sect1 xml:id="working-copy-doc-and-src"> | <sect1 xml:id="working-copy-doc-and-src"> | ||||
<title>說明文件與操作手冊</title> | <title>說明文件與操作手冊</title> | ||||
<para>FreeBSD 說明文件不只有書籍與文章,還有所有指令與設定檔的操作手冊 (Manual page) 也是文件的一部份,其中也有一部份是 <acronym>FDP</acronym> 的地盤。相關的檔案庫有兩個:<literal>doc</literal> 中有書籍與文章,而 <literal>base</literal> 中有作業系統以及操作手冊。要編輯操作手冊則必須另外取出 (Checkout) <literal>base</literal> 檔案庫。</para> | <para>FreeBSD 說明文件不只有書籍與文章,還有所有指令與設定檔的操作手冊 (Manual page) 也是文件的一部份,其中也有一部份是 <acronym>FDP</acronym> 的地盤。相關的檔案庫有兩個:<literal>doc</literal> 中有書籍與文章,而 <literal>base</literal> 中有作業系統以及操作手冊。要編輯操作手冊則必須另外取出 (Checkout) <literal>base</literal> 檔案庫。</para> | ||||
<para>檔案庫中可能會含有數個版本的說明文件與原始碼。新的修改幾乎都只對最新版本 <literal>head</literal> 做更新。</para> | <para>檔案庫中可能會含有數個版本的說明文件與原始碼。新的修改幾乎都只對最新版本 <literal>head</literal> 做更新。</para> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="working-copy-choosing-directory"> | <sect1 xml:id="working-copy-choosing-directory"> | ||||
<title>選擇一個目錄</title> | <title>選擇一個目錄</title> | ||||
<para>FreeBSD 說明文件一般會儲存在 <filename>/usr/doc/</filename>,而系統原始碼及操作手冊則會存在 <filename>/usr/src/</filename>。這些目錄樹可改放在其他地方,使用者可能會為了避免與現有在主要目錄的資料搞混,把工作副本放在其他的地方。以下的例子會放在 <filename>~/doc</filename> 以及 <filename>~/src</filename> 兩個在使用者家目錄下的目錄。</para> | <para>FreeBSD 說明文件一般會儲存在 <filename>/usr/doc/</filename>,而系統原始碼及操作手冊則會存在 <filename>/usr/src/</filename>。這些目錄樹可改放在其他地方,有些使用者可能會為了避免與現有在主要目錄的資料搞混,把工作副本放在其他的地方。以下的例子會放在 <filename>~/doc</filename> 以及 <filename>~/src</filename> 兩個在使用者家目錄下的目錄。</para> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="working-copy-checking-out"> | <sect1 xml:id="working-copy-checking-out"> | ||||
<title>取出一份副本</title> | <title>取出一份副本</title> | ||||
<para>從檔案庫下載工作副本的動作稱作 <emphasis>取出 (Checkout)</emphasis>,使用 <command>svn checkout</command> 來完成。本範例會取出主要說明文件樹最新版本的副本:</para> | <para>從檔案庫下載工作副本的動作稱作 <emphasis>取出 (Checkout)</emphasis>,使用 <command>svn checkout</command> 來完成。本範例會取出主要說明文件樹最新版本的副本:</para> | ||||
<screen><prompt>%</prompt> <userinput>svn checkout https://svn.FreeBSD.org/doc/head <replaceable>~/doc</replaceable></userinput></screen> | <screen><prompt>%</prompt> <userinput>svn checkout https://svn.FreeBSD.org/doc/head <replaceable>~/doc</replaceable></userinput></screen> | ||||
<para>取出原始碼編輯操作手冊的動作非常相似:</para> | <para>取出原始碼編輯操作手冊的動作也很相似:</para> | ||||
<screen xml:lang="en"><prompt>%</prompt> <userinput>svn checkout https://svn.FreeBSD.org/base/head <replaceable>~/src</replaceable></userinput></screen> | <screen xml:lang="en"><prompt>%</prompt> <userinput>svn checkout https://svn.FreeBSD.org/base/head <replaceable>~/src</replaceable></userinput></screen> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="working-copy-updating"> | <sect1 xml:id="working-copy-updating"> | ||||
<title>更新工作副本</title> | <title>更新工作副本</title> | ||||
<para>在 FreeBSD 檔案庫中的文件與檔案每天都會更改,人們會修改檔案與提交變更的頻率非常快,即使取出 (Checkout) 只過小一段時間,本地的工作副本可能就與主要 FreeBSD 檔案庫有差異了。要更新本地版本以同步對主要檔案庫的變更可在有本地工作副本的目錄下使用 <command>svn update</command>:</para> | <para>在 FreeBSD 檔案庫中的文件與檔案每天都會更改,人們會修改檔案與提交變更的頻率非常快,即使取出 (Checkout) 只過小一段時間,本地的工作副本可能就與主要 FreeBSD 檔案庫有差異了。要更新本地版本以同步對主要檔案庫的變更可在有本地工作副本的目錄下使用 <command>svn update</command>:</para> | ||||
<screen><prompt>%</prompt> <userinput>svn update <replaceable>~/doc</replaceable></userinput></screen> | <screen><prompt>%</prompt> <userinput>svn update <replaceable>~/doc</replaceable></userinput></screen> | ||||
<para>養成良好的習慣在編輯文件檔前先執行 <command>svn update</command>,可能會有其他人才剛編輯完該檔案,本地工作副本在尚未更新前不會有最後的變更內容,編輯最新版本的檔案會比將舊版本地檔案與新版檔案庫檔案合併來的簡單多了。</para> | <para>養成良好的習慣在編輯文件檔前先執行 <command>svn update</command>,由於可能會有其他人最近才編輯完該檔案,若未更新本地工作副則不會有最新變更的內容,比其還要將舊版本地檔案與新版檔案庫檔案合併的動作來說,直接編輯最新版本的檔案要簡單多了。</para> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="working-copy-revert"> | <sect1 xml:id="working-copy-revert"> | ||||
<title>還原變更</title> | <title>還原變更</title> | ||||
<para>有時才做完的變更可能就變的不需要了,或者作者剛想要重新搛寫。檔案可使以使用 <command>svn revert</command> 來<quote>重設</quote>成尚未被修改刪的狀態,舉例來說,要清除所有對 <filename>chapter.xml</filename> 的修改然後還原到未修改的版本可:</para> | <para>有時才做完的變更可能就變的不需要了,或者作者剛想要重新搛寫。檔案可使以使用 <command>svn revert</command> 來<quote>重設</quote>成尚未被修改過的狀態,舉例來說,要清除所有對 <filename>chapter.xml</filename> 的修改然後還原到未修改的版本可:</para> | ||||
<screen xml:lang="en"><prompt>%</prompt> <userinput>svn revert chapter.xml</userinput></screen> | <screen xml:lang="en"><prompt>%</prompt> <userinput>svn revert chapter.xml</userinput></screen> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="working-copy-making-diff"> | <sect1 xml:id="working-copy-making-diff"> | ||||
<title>比對差異</title> | <title>比對差異</title> | ||||
<para>在編輯一個檔案或數個檔案完成之後,需將本地工作副本與 FreeBSD 檔案庫的差異儲存到一個檔案然後提交。這些 <emphasis>差異 (Diff)</emphasis> 檔可透過將 <command>svn diff</command> 的輸出轉向到檔案來建立: </para> | <para>在編輯一個檔案或數個檔案完成之後,需將本地工作副本與 FreeBSD 檔案庫的差異儲存到一個檔案然後提交。這些 <emphasis>差異 (Diff)</emphasis> 檔可透過將 <command>svn diff</command> 的輸出轉向到檔案來建立: </para> | ||||
▲ Show 20 Lines • Show All 118 Lines • ▼ Show 20 Lines | <thead> | ||||
</row> | </row> | ||||
</thead> | </thead> | ||||
<tbody> | <tbody> | ||||
<row> | <row> | ||||
<entry valign="top" xml:lang="en"> | <entry valign="top" xml:lang="en"> | ||||
<filename>articles</filename></entry> | <filename>articles</filename></entry> | ||||
<entry>以 DocBook <tag>article</tag> (或同等級) 標記的說明文件。非常短,且會分成幾個小節,通常取得時只會有一個 <acronym>XHTML</acronym> 檔案。</entry> | <entry>以 DocBook <tag>article</tag> (或同等級) 標記的說明文件。非常短,且會分成幾個小節,通常取得時只會有一個 <acronym>XHTML</acronym> 檔案。</entry> | ||||
</row> | </row> | ||||
<row> | <row> | ||||
<entry valign="top" xml:lang="en"><filename>books</filename></entry> | <entry valign="top" xml:lang="en"><filename>books</filename></entry> | ||||
<entry>以 DocBook <tag>book</tag> (或同等級) 標記的說明文件。有跟書籍一樣的長度,會分成數個章。通常取得時會包含一個大型的 <acronym>XHTML</acronym> 檔 (供有較快連線速度的人使用,或者那些想直接在瀏覽器列印的人) 與數個連結的較小的檔案。</entry> | <entry>以 DocBook <tag>book</tag> (或同等級) 標記的說明文件。有跟書籍一樣的長度,會分成數個章。通常取得時會包含一個大型的 <acronym>XHTML</acronym> 檔 (供有較快連線速度的人使用,或者那些想直接在瀏覽器列印的人) 與數個連結的較小的檔案。</entry> | ||||
</row> | </row> | ||||
<row> | <row> | ||||
<entry valign="top" xml:lang="en"> | <entry valign="top" xml:lang="en"> | ||||
<filename>man</filename></entry> | <filename>man</filename></entry> | ||||
<entry>供系統操作手冊 (Manual page) 翻譯使用。這個目錄會包含一個或多個 <filename role="directory">man<replaceable>n</replaceable></filename> 目錄來對應已經翻譯的章節。</entry> | <entry>供系統操作手冊 (Manual page) 翻譯使用。這個目錄會包含一個或多個 <filename role="directory">man<replaceable>n</replaceable></filename> 目錄來對應已經翻譯的章節。</entry> | ||||
</row> | </row> | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | <sect4> | ||||
<para>例如,若有一章的檔案內容為:</para> | <para>例如,若有一章的檔案內容為:</para> | ||||
<programlisting xml:lang="en"><tag class="starttag">chapter id="kernelconfig"</tag> | <programlisting xml:lang="en"><tag class="starttag">chapter id="kernelconfig"</tag> | ||||
... | ... | ||||
<tag class="endtag">chapter</tag></programlisting> | <tag class="endtag">chapter</tag></programlisting> | ||||
<para>那麼放置這個 <filename>chapter.xml</filename> 的目錄則會命名為 <filename>kernelconfig</filename>。一般來說一章的所有內容會存放在這一個檔案。</para> | <para>那麼放置這個 <filename>chapter.xml</filename> 的目錄則會命名為 <filename>kernelconfig</filename>。一般來說一章的所有內容會存放在這一個檔案。</para> | ||||
<para>當有 <acronym>XHTML</acronym> 版本的使用手冊之後,也會用這個檔產出 <filename>kernelconfig.html</filename>,這個名稱是根據 <literal>id</literal> 的值而定,與目錄名稱無關。</para> | <para>當有 <acronym>XHTML</acronym> 版本的使用手冊之後,會用該檔產出 <filename>kernelconfig.html</filename>,而這個名稱也是根據 <literal>id</literal> 的值而定,與目錄名稱無關。</para> | ||||
<para>在早期版本的使用手冊,檔案皆儲存在與 <filename>book.xml</filename> 相同的目錄中,而名稱會以 <tag>chapter</tag> 元素中的 <literal>id</literal> 屬性的值來命名。現在可在每個章節之中引用圖片,每個使用手冊章節的圖片會儲存在 <filename>share/images/books/handbook</filename>,而在地化版本的圖片應放在與每個章節 <acronym>XML</acronym> 原始碼相同的目錄。命名空間會衝突是必然的,但以目錄多、檔案少與目錄少、檔案多的結構相比,目錄多、檔案少會較容易處理命名空間衝突的問題。</para> | <para>在早期版本的使用手冊,檔案皆儲存在與 <filename>book.xml</filename> 相同的目錄中,而名稱會以 <tag>chapter</tag> 元素中的 <literal>id</literal> 屬性的值來命名。現在可在每個章節之中引用圖片,每個使用手冊章節的圖片會儲存在 <filename>share/images/books/handbook</filename>,而在地化版本的圖片應放在與每個章節 <acronym>XML</acronym> 原始碼相同的目錄。命名空間會衝突是必然的,但以目錄多、檔案少與目錄少、檔案多的結構相比,目錄多、檔案少會較容易處理命名空間衝突的問題。</para> | ||||
<para>簡單來說會有很多個內含 <filename>chapter.xml</filename> 檔案的目錄,例如 <filename>basics/chapter.xml</filename>, <filename>introduction/chapter.xml</filename> 以及 <filename>printing/chapter.xml</filename>。</para> | <para>簡單來說會有很多個內含 <filename>chapter.xml</filename> 檔案的目錄,例如 <filename>basics/chapter.xml</filename>, <filename>introduction/chapter.xml</filename> 以及 <filename>printing/chapter.xml</filename>。</para> | ||||
<important> | <important> | ||||
<para>請勿以在使用手冊中的章節順序來命名章節或目錄,因為順序是會隨使用手冊重新組織後的內容改變的。重新組織結構應不需要去重新命名檔案,除非整個章節的階層被提升或下降。</para> | <para>請勿以在使用手冊中的章節順序來命名章節或目錄,因為順序是會隨使用手冊重新組織後的內容改變的。重新組織結構應不需要去重新命名檔案,除非整個章節的階層被提升或下降。</para> | ||||
</important> | </important> | ||||
<para><filename>chapter.xml</filename> 檔案並不是可以被單獨建置的完整 <acronym>XML</acronym> 文件,只能做為使用手冊的一部份來建置。</para> | <para><filename>chapter.xml</filename> 檔案並不是可以被單獨建置的完整 <acronym>XML</acronym> 文件,只能結合成整本使用手冊之後再一併建置。</para> | ||||
</sect4> | </sect4> | ||||
</sect3> | </sect3> | ||||
</sect2> | </sect2> | ||||
</sect1> | </sect1> | ||||
</chapter> | </chapter> | ||||
<!-- Copyright (c) 1999 Neil Blakey-Milner, All rights reserved. | <!-- Copyright (c) 1999 Neil Blakey-Milner, All rights reserved. | ||||
▲ Show 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | <para><link linkend="doc-make">說明文件的 <filename>Makefile</filename>s</link> 用來描述要如何在其所在目錄產生文件。</para> | ||||
<listitem> | <listitem> | ||||
<para><link linkend="make-includes"><application>Make</application> 引用檔</link> 會連結一些產生文件所需的程式,通常為 <filename>doc.<replaceable>xxx</replaceable>.mk</filename>。</para> | <para><link linkend="make-includes"><application>Make</application> 引用檔</link> 會連結一些產生文件所需的程式,通常為 <filename>doc.<replaceable>xxx</replaceable>.mk</filename>。</para> | ||||
</listitem> | </listitem> | ||||
</itemizedlist> | </itemizedlist> | ||||
<sect2 xml:id="sub-make"> | <sect2 xml:id="sub-make"> | ||||
<title>子目錄的 <filename>Makefile</filename></title> | <title>子目錄的 <filename>Makefile</filename></title> | ||||
<para xml:lang="en">These <filename>Makefile</filename>s usually take the form | <para>這種 <filename>Makefile</filename> 通常採用的格式為:</para> | ||||
of:</para> | |||||
<programlisting xml:lang="en">SUBDIR =articles | <programlisting xml:lang="en">SUBDIR =articles | ||||
SUBDIR+=books | SUBDIR+=books | ||||
COMPAT_SYMLINK = en | COMPAT_SYMLINK = en | ||||
DOC_PREFIX?= ${.CURDIR}/.. | DOC_PREFIX?= ${.CURDIR}/.. | ||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting> | .include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting> | ||||
<para xml:lang="en">The first four non-empty lines define the <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></citerefentry> | <para>前四行非空白的行用來定義 <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></citerefentry> 的變數 <varname>SUBDIR</varname>, <varname>COMPAT_SYMLINK</varname> 及 <varname>DOC_PREFIX</varname>。</para> | ||||
variables <varname>SUBDIR</varname>, | |||||
<varname>COMPAT_SYMLINK</varname>, and | |||||
<varname>DOC_PREFIX</varname>.</para> | |||||
<para xml:lang="en">The <varname>SUBDIR</varname> statement and | <para><varname>SUBDIR</varname> 敘述與 <varname>COMPAT_SYMLINK</varname> 敘述示範了如何指派數值到一個變數,覆蓋先前的值。</para> | ||||
<varname>COMPAT_SYMLINK</varname> statement show how to | |||||
assign a value to a variable, overriding any previous | |||||
value.</para> | |||||
<para xml:lang="en">The second <varname>SUBDIR</varname> statement shows how a | <para><varname>SUBDIR</varname> 的第二行敘述示範如何將數值附加到目前的變數值之後,<varname>SUBDIR</varname> 變數現在變成了 <literal>articles books</literal>。</para> | ||||
value is appended to the current value of a variable. The | |||||
<varname>SUBDIR</varname> variable is now <literal>articles | |||||
books</literal>.</para> | |||||
<para xml:lang="en">The <varname>DOC_PREFIX</varname> assignment shows how a | <para><varname>DOC_PREFIX</varname> 指派式示範了如何只在變數尚未定義時才指派數值給變數。這個功能在當 <varname>DOC_PREFIX</varname> 不在 <filename>Makefile</filename> 所認為的地方時,使用者可以覆蓋這個值,並提供正確的值。</para> | ||||
value is assigned to the variable, but only if it is not | |||||
already defined. This is useful if | |||||
<varname>DOC_PREFIX</varname> is not where this | |||||
<filename>Makefile</filename> thinks it is - the user can | |||||
override this and provide the correct value.</para> | |||||
<para xml:lang="en">What does it all mean? <varname>SUBDIR</varname> | <para>這所有的敘述實際代表什麼意思呢? <varname>SUBDIR</varname> 會列出接下來建置流程應傳遞作業到那些子目錄。</para> | ||||
mentions which subdirectories below this one the build process | |||||
should pass any work on to.</para> | |||||
<para xml:lang="en"><varname>COMPAT_SYMLINK</varname> is specific to | <para><varname>COMPAT_SYMLINK</varname> 是一個用來指定語言官方編碼的相容性符號連結 (<filename>doc/en</filename> 會指向 <filename>en_US.ISO-8859-1</filename>)。</para> | ||||
compatibility symlinks (amazingly enough) for languages to | |||||
their official encoding (<filename>doc/en</filename> would | |||||
point to <filename>en_US.ISO-8859-1</filename>).</para> | |||||
<para xml:lang="en"><varname>DOC_PREFIX</varname> is the path to the root of | <para><varname>DOC_PREFIX</varname> 是到 FreeBSD 說明文件計劃樹根目錄的路徑。這並非每一次都可以很輕易找到,為了增加彈性,要改寫也很簡單。<varname>.CURDIR</varname> 是一個 <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></citerefentry> 內建的變數,代表目前目錄的路徑。</para> | ||||
the FreeBSD Document Project tree. This is not always that easy | |||||
to find, and is also easily overridden, to allow for | |||||
flexibility. <varname>.CURDIR</varname> is a <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></citerefentry> | |||||
builtin variable with the path to the current | |||||
directory.</para> | |||||
<para xml:lang="en">The final line includes the FreeBSD Documentation Project's | <para>最後一行會引用 FreeBSD 說明文件計劃的全專案 <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></citerefentry> 系統檔 <filename>doc.project.mk</filename>,用來轉換這些變數成為建置的指令。</para> | ||||
project-wide <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></citerefentry> system file | |||||
<filename>doc.project.mk</filename> which is the glue which | |||||
converts these variables into build instructions.</para> | |||||
</sect2> | </sect2> | ||||
<sect2 xml:id="doc-make"> | <sect2 xml:id="doc-make"> | ||||
<title>說明文件的 <filename>Makefile</filename></title> | <title>說明文件的 <filename>Makefile</filename></title> | ||||
<para>這些 <filename>Makefile</filename> 用來設定 <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></citerefentry> 變數來描述要如何建置在該目錄中的說明文件。</para> | <para>這些 <filename>Makefile</filename> 用來設定 <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></citerefentry> 變數來描述要如何建置在該目錄中的說明文件。</para> | ||||
<para>這裡有一個例子:</para> | <para>這裡有一個例子:</para> | ||||
▲ Show 20 Lines • Show All 5,375 Lines • ▼ Show 20 Lines | <!-- Copyright (c) 1999 Nik Clayton, All rights reserved. | ||||
$FreeBSD$ | $FreeBSD$ | ||||
--> | --> | ||||
<chapter version="5.0" xml:id="translations"> | <chapter version="5.0" xml:id="translations"> | ||||
<title>翻譯</title> | <title>翻譯</title> | ||||
<para>本章節是供要翻譯 FreeBSD 說明文件 (常見問答集 (FAQ)、使用手冊 (Handbook)、教學 (Tutorial)、操作手冊 (Manual page) 等) 到各種語言的常見問答集 (FAQ)。</para> | <para>本章節是供要翻譯 FreeBSD 說明文件 (常見問答集 (FAQ)、使用手冊 (Handbook)、教學 (Tutorial)、操作手冊 (Manual page) 等) 到各種語言的常見問答集 (FAQ)。</para> | ||||
<para>本文件 <emphasis>主要</emphasis> 是以 FreeBSD 德文說明文件計劃的翻譯常見問答集為母本而來的, 原始撰稿者為 Frank Gründer <email>elwood@mc5sys.in-berlin.de</email>,並由 Bernd Warken <email>bwarken@mayn.de</email> 再翻譯回英文版。</para> | <para>本文件 <emphasis>主要</emphasis> 是以 FreeBSD 德文說明文件計劃的翻譯常見問答集為母本而來的,原始撰稿者為 Frank Gründer <email>elwood@mc5sys.in-berlin.de</email>,並由 Bernd Warken <email>bwarken@mayn.de</email> 再翻譯回英文版。</para> | ||||
<para>本常見問答集是由文件工程團隊 Documentation Engineering Team <email>doceng@FreeBSD.org</email> 所維護。</para> | <para>本常見問答集是由文件工程團隊 Documentation Engineering Team <email>doceng@FreeBSD.org</email> 所維護。</para> | ||||
<qandaset> | <qandaset> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para><phrase>i18n</phrase> 與 <phrase>l10n</phrase> 代表的是什麼意思?</para> | <para><phrase>i18n</phrase> 與 <phrase>l10n</phrase> 代表的是什麼意思?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para><phrase>i18n</phrase> 指的是國際化 (<phrase>Internationalization</phrase>) 而 <phrase>l10n</phrase> 指的是在地化 (<phrase>Localization</phrase>)。這些都是為了書寫方便而用的簡寫。</para> | <para><phrase>i18n</phrase> 指的是國際化 (<phrase>Internationalization</phrase>) 而 <phrase>l10n</phrase> 指的是在地化 (<phrase>Localization</phrase>)。這些都是為了書寫方便而用的簡寫。</para> | ||||
<para><phrase>i18n</phrase> 就是開頭為 <quote>i</quote> 後面有 18 個字母,最後接 <quote>n</quote>。同樣地, <phrase>l10n</phrase> 是開頭為 <quote>l</quote> 後面有 10 個字母,最後接 <quote>n</quote>。</para> | <para><phrase>i18n</phrase> 就是開頭為 <quote>i</quote> 後面有 18 個字母,最後接 <quote>n</quote>。同樣地,<phrase>l10n</phrase> 是開頭為 <quote>l</quote> 後面有 10 個字母,最後接 <quote>n</quote>。</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>有給翻譯人員參與討論的郵遞論壇 (Mailing list) 嗎?</para> | <para>有給翻譯人員參與討論的郵遞論壇 (Mailing list) 嗎?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para>有的,不同的語系翻譯人員都各自有自屬的郵遞論壇。這份 <link xlink:href="http://www.freebsd.org/docproj/translations.html"> 翻譯計劃清單</link> 有列出各翻譯計劃的詳細 mailing lists 及相關網站。此外,有一般翻譯討論的<email>freebsd-translators@freebsd.org</email>郵件論壇。</para> | <para>有的,不同的語系翻譯人員都各自有自屬的郵遞論壇。這份 <link xlink:href="http://www.freebsd.org/docproj/translations.html"> 翻譯計劃清單</link> 有列出各翻譯計劃的詳細 mailing lists 及相關網站。此外,有一般翻譯討論的<email>freebsd-translators@freebsd.org</email>郵件論壇。</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>需要更多人一起參與翻譯嗎?</para> | <para>需要更多人一起參與翻譯嗎?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para>當然囉,越多人參與翻譯,那麼就能夠越快翻完,而且英文版說明文件若有增減、更新的話, 各翻譯版也可以儘快同步囉。</para> | <para>當然囉,越多人參與翻譯,那麼就能夠越快翻完,而且英文版說明文件若有增減、更新的話,各翻譯版也可以儘快同步囉。</para> | ||||
<para>不一定得是專業譯者,才能參與翻譯的。</para> | <para>不一定得是專業譯者,才能參與翻譯的。</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>有要求哪些語言能力呢</para> | <para>有要求哪些語言能力呢</para> | ||||
Show All 31 Lines | <screen><prompt>%</prompt> <userinput>svn diff -r<replaceable>33733</replaceable>:<replaceable>33734</replaceable> en_US.ISO8859-1/books/fdp-primer/book.xml</userinput></screen> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>要怎麼找出來還有誰要跟我一起翻譯的呢?</para> | <para>要怎麼找出來還有誰要跟我一起翻譯的呢?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para><link xlink:href="http://www.FreeBSD.org/docproj/translations.html">說明文件計劃翻譯頁 </link> 列了目前已知的各翻譯者成果 ,如果已經有其他人也在做跟你一樣的翻譯工作,那麼請不要重複浪費人力, 請與他們聯繫看看還有哪些地方可以幫上忙的。</para> | <para><link xlink:href="http://www.FreeBSD.org/docproj/translations.html">說明文件計劃翻譯頁 </link> 列了目前已知的各翻譯者成果,如果已經有其他人也在做跟你一樣的翻譯工作,那麼請不要重複浪費人力,請與他們聯繫看看還有哪些地方可以幫上忙的。</para> | ||||
<para>若上面並未列出你母語的翻譯,或是也有人要翻譯但還未公開宣布的話,那麼就寄信到 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc">FreeBSD 說明文件計劃郵遞論壇 </link>。</para> | <para>若上面並未列出你母語的翻譯,或是也有人要翻譯但還未公開宣布的話,那麼就寄信到 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc">FreeBSD 說明文件計劃郵遞論壇 </link>。</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>都沒人翻譯為我所使用的語言,該怎麼辦?</para> | <para>都沒人翻譯為我所使用的語言,該怎麼辦?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para>恭喜啊,你剛好踏上 <quote>FreeBSD <replaceable>您的語言</replaceable> 說明文件翻譯計劃</quote>的啟程之路,歡迎登船。</para> | <para>恭喜啊,你剛好踏上 <quote>FreeBSD <replaceable>您的語言</replaceable> 說明文件翻譯計劃</quote>的啟程之路,歡迎登船。</para> | ||||
<para>首先呢,先判斷是否有妥善規劃時間,因為你只有一個人在翻而已, 因此,相關翻譯成果的公布、與其他可能會幫忙的志工們聯繫這些工作都是你的職責所在。</para> | <para>首先呢,先判斷是否有妥善規劃時間,因為你只有一個人在翻而已,因此,相關翻譯成果的公布、與其他可能會幫忙的志工們聯繫這些工作都是你的職責所在。</para> | ||||
<para>寫信到文件計劃郵遞論壇 (Documentation Project mailing list) 向大家宣布你正準備要翻譯,然後文件計劃的翻譯部分就會更新相關資料。</para> | <para>寫信到文件計劃郵遞論壇 (Documentation Project mailing list) 向大家宣布你正準備要翻譯,然後文件計劃的翻譯部分就會更新相關資料。</para> | ||||
<para>若你的國家已經有人提供 FreeBSD 的鏡像站 (Mirror) 服務的話,那麼就先跟他們聯繫, 並詢問你是否在上面可以有網頁空間來放相關計劃資料,以及是否可以有提供電子郵件帳號或郵遞論壇服務。</para> | <para>若你的國家已經有人提供 FreeBSD 的鏡像站 (Mirror) 服務的話,那麼就先跟他們聯繫,並詢問你是否在上面可以有網頁空間來放相關計劃資料,以及是否可以有提供電子郵件帳號或郵遞論壇服務。</para> | ||||
<para>然後,就開始翻文件囉,一開始翻譯的時候,先找些篇幅較短的文件會比較容易些 —— 像是 FAQ 啦,或是如何上手之類的說明文章。</para> | <para>然後,就開始翻文件囉,一開始翻譯的時候,先找些篇幅較短的文件會比較容易些 —— 像是 FAQ 啦,或是如何上手之類的說明文章。</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>已經翻好一些說明文件了,該寄到哪呢?</para> | <para>已經翻好一些說明文件了,該寄到哪呢?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para>這要看情況而定。若你是在翻譯團隊內做的話 (像是日本團隊、德國團隊), 他們會有自己內部流程來決定翻譯文件怎麼送,這些大致流程會在他們網頁上面有寫。</para> | <para>這要看情況而定。若你是在翻譯團隊內做的話 (像是日本團隊、德國團隊),他們會有自己內部流程來決定翻譯文件怎麼送,這些大致流程會在他們網頁上面有寫。</para> | ||||
<para>若你是某語系的唯一翻譯者 (或你是負責某翻譯計劃,並想把成果回饋給 FreeBSD 計劃) ,那麼你就應該把自己的翻譯成果寄給 FreeBSD 計劃。(細節請看下個問題)</para> | <para>若你是某語系的唯一翻譯者 (或你是負責某翻譯計劃,並想把成果回饋給 FreeBSD 計劃),那麼你就應該把自己的翻譯成果寄給 FreeBSD 計劃。(細節請看下個問題)</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>我是該語系的唯一翻譯者,該怎麼把翻譯成果寄出去呢?</para> | <para>我是該語系的唯一翻譯者,該怎麼把翻譯成果寄出去呢?</para> | ||||
<para xml:lang="en">or</para> | <para xml:lang="en">or</para> | ||||
<para>我們是翻譯團隊,該怎麼把我們成員翻譯成果寄出去呢?</para> | <para>我們是翻譯團隊,該怎麼把我們成員翻譯成果寄出去呢?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para>首先,請先確定你的翻譯成果組織條理分明,並可正確編譯,也就是說: 把它擺到現有說明文件樹內是可以正確編譯成功的。</para> | <para>首先,請先確定你的翻譯成果組織條理分明,並可正確編譯,也就是說: 把它擺到現有說明文件樹內是可以正確編譯成功的。</para> | ||||
<para>目前,FreeBSD 說明文件都是放在最上層的 <filename>head/</filename> 目錄內。而該目錄下的則根據其 ISO639 所定義的語系代碼來做分類命名的 (在 1999/1/20 之後的 FreeBSD 版本中的 <filename>/usr/share/misc/iso639</filename>)。</para> | <para>目前,FreeBSD 說明文件都是放在最上層的 <filename>head/</filename> 目錄內。而該目錄下的則根據其 ISO639 所定義的語系代碼來做分類命名的 (在 1999/1/20 之後的 FreeBSD 版本中的 <filename>/usr/share/misc/iso639</filename>)。</para> | ||||
<para>若你這個語系可能會有不同編碼方式 (像是:中文) 那麼就應該會像下面這樣,來依你所使用的編碼方式細分。</para> | <para>若你這個語系可能會有不同編碼方式 (像是:中文) 那麼就應該會像下面這樣,來依你所使用的編碼方式細分。</para> | ||||
<para>最後,你應該建立好各文件的目錄了。</para> | <para>最後,你應該建立好各文件的目錄了。</para> | ||||
<para>舉例來說,假設有瑞典文 (Swedish) 版的翻譯,那麼應該會長像:</para> | <para>舉例來說,假設有瑞典文 (Swedish) 版的翻譯,那麼應該會長像:</para> | ||||
<programlisting>head/ | <programlisting xml:lang="en">head/ | ||||
sv_SE.ISO8859-1/ | sv_SE.ISO8859-1/ | ||||
Makefile | Makefile | ||||
htdocs/ | htdocs/ | ||||
docproj/ | docproj/ | ||||
books/ | books/ | ||||
faq/ | faq/ | ||||
Makefile | Makefile | ||||
book.xml</programlisting> | book.xml</programlisting> | ||||
<para><literal>sv_SE.ISO8859-1</literal>是依照 <filename><replaceable>語系 (Lang)</replaceable>.<replaceable>編碼 (Encoding)</replaceable></filename> 的規則來建立的譯名。 請注意:其中有兩個 Makefile 檔,它們是用來建置說明文件的。</para> | <para><literal>sv_SE.ISO8859-1</literal>是依照 <filename><replaceable>語系 (Lang)</replaceable>.<replaceable>編碼 (Encoding)</replaceable></filename> 的規則來建立的譯名。請注意:其中有兩個 Makefile 檔,它們是用來建置說明文件的。</para> | ||||
<para>然後請用 <citerefentry><refentrytitle>tar</refentrytitle><manvolnum>1</manvolnum></citerefentry> 與 <citerefentry><refentrytitle>gzip</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來把你的說明文件壓縮起來,並寄到本計劃來。</para> | <para>然後請用 <citerefentry><refentrytitle>tar</refentrytitle><manvolnum>1</manvolnum></citerefentry> 與 <citerefentry><refentrytitle>gzip</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來把你的說明文件壓縮起來,並寄到本計劃來。</para> | ||||
<screen><prompt>%</prompt> <userinput>cd doc</userinput> | <screen><prompt>%</prompt> <userinput>cd doc</userinput> | ||||
<prompt>%</prompt> <userinput>tar cf swedish-docs.tar sv_SE.ISO8859-1</userinput> | <prompt>%</prompt> <userinput>tar cf swedish-docs.tar sv_SE.ISO8859-1</userinput> | ||||
<prompt>%</prompt> <userinput>gzip -9 swedish-docs.tar</userinput></screen> | <prompt>%</prompt> <userinput>gzip -9 swedish-docs.tar</userinput></screen> | ||||
<para>接著,把 <filename>swedish-docs.tar.gz</filename> 放到網頁空間上,若你沒有自己網頁空間的話(ISP不提供) ,那麼可以該檔寄到文件工程團隊 Documentation Engineering Team <email>doceng@FreeBSD.org</email> 來。</para> | <para>接著,把 <filename>swedish-docs.tar.gz</filename> 放到網頁空間上,若你沒有自己網頁空間的話 (ISP 不提供),那麼可以該檔寄到文件工程團隊 Documentation Engineering Team <email>doceng@FreeBSD.org</email> 來。</para> | ||||
<para>還有,記得用 Bugzilla 提交一個回報來通知大家你已經提交說明文件了, 還有,若有人可以幫忙檢閱、複審文件的話,對翻譯品質較好, 因為這也有助於提升翻譯品質的流暢度。</para> | <para>還有,記得用 Bugzilla 提交一個回報來通知大家你已經提交說明文件了,還有,若有人可以幫忙檢閱、複審文件的話,對翻譯品質較好,因為這也有助於提升翻譯品質的流暢度。</para> | ||||
<para>最後,會有人 (可能是文件計劃管理者,或是文件工程團隊 Documentation Engineering Team <email>doceng@FreeBSD.org</email> 成員) 會檢閱你的翻譯文件,並確認是否可正常編譯。此外,他們會特別注意下列幾點:</para> | <para>最後,會有人 (可能是文件計劃管理者,或是文件工程團隊 Documentation Engineering Team <email>doceng@FreeBSD.org</email> 成員) 會檢閱你的翻譯文件,並確認是否可正常編譯。此外,他們會特別注意下列幾點:</para> | ||||
<orderedlist> | <orderedlist> | ||||
<listitem> | <listitem> | ||||
<para>你的檔案是否都有用 RCS tag (像是 "ID" 之類的)?</para> | <para>你的檔案是否都有用 RCS tag (像是 "ID" 之類的)?</para> | ||||
</listitem> | </listitem> | ||||
Show All 15 Lines | <para>若沒問題的話,那麼就會很快把你的翻譯成果提交。</para> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>可以加入某語系或某國家才有的東西到翻譯內容內嗎?</para> | <para>可以加入某語系或某國家才有的東西到翻譯內容內嗎?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para>我們希望不要這麼做。</para> | <para>我們希望不要這麼做。</para> | ||||
<para>舉例來說,假設你正準備把使用手冊 (Handbook) 翻譯為韓文版, 並希望把韓國零售商也加到你翻譯的韓文版使用手冊內。</para> | <para>舉例來說,假設你正準備把使用手冊 (Handbook) 翻譯為韓文版,並希望把韓國零售商也加到你翻譯的韓文版使用手冊內。</para> | ||||
<para>我們想不出來有啥原因,為什麼不把這些資訊提供給英文版呢?(或是德文、西班牙文、日文等 …) 因為,有可能英語讀者跑去韓國時,會想買 FreeBSD 相關產品。 此外,這也可以提升 FreeBSD 的可見度,很顯然的,這並不是件壞事啊。</para> | <para>我們想不出來有啥原因,為什麼不把這些資訊提供給英文版呢?(或是德文、西班牙文、日文等 …) 因為,有可能英語讀者跑去韓國時,會想買 FreeBSD 相關產品。此外,這也可以提升 FreeBSD 的可見度,很顯然的,這並不是件壞事啊。</para> | ||||
<para>若你有某國才有的資料,請提供給英文版使用手冊以作為修訂 (用 Bugzilla),然後再把英文版的修訂部分翻為你要翻譯的使用手冊吧。</para> | <para>若你有某國才有的資料,請提供給英文版使用手冊以作為修訂 (用 Bugzilla),然後再把英文版的修訂部分翻為你要翻譯的使用手冊吧。</para> | ||||
<para>謝謝。</para> | <para>謝謝。</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>要怎麼把該語系特有的字元寫進去翻譯內容呢?</para> | <para>要怎麼把該語系特有的字元寫進去翻譯內容呢?</para> | ||||
Show All 19 Lines | <seglistitem> | ||||
<seg>&eacute;</seg> | <seg>&eacute;</seg> | ||||
<seg>é</seg> | <seg>é</seg> | ||||
<seg>小 <quote>e</quote>,並帶尖、重音 (Acute accent)</seg> | <seg>小 <quote>e</quote>,並帶尖、重音 (Acute accent)</seg> | ||||
</seglistitem> | </seglistitem> | ||||
<seglistitem> | <seglistitem> | ||||
<seg>&Eacute;</seg> | <seg>&Eacute;</seg> | ||||
<seg>É</seg> | <seg>É</seg> | ||||
<seg>大 <quote>E</quote>,並帶尖、重音 (Acute accent)</seg> | <seg>大 <quote>E</quote>,並帶尖、重音 (Acute accent)</seg> | ||||
</seglistitem> | </seglistitem> | ||||
<seglistitem> | <seglistitem> | ||||
<seg>&uuml;</seg> | <seg>&uuml;</seg> | ||||
<seg>ü</seg> | <seg>ü</seg> | ||||
<seg>小 <quote>u</quote>,並帶日耳曼語系中的母音變化 (Umlaut)</seg> | <seg>小 <quote>u</quote>,並帶日耳曼語系中的母音變化 (Umlaut)</seg> | ||||
</seglistitem> | </seglistitem> | ||||
</segmentedlist> | </segmentedlist> | ||||
<para>在裝了 iso8879 這個 Port 之後,就可以在 <filename>/usr/local/share/xml/iso8879</filename> 找到這些的詳細列表。</para> | <para>在裝了 iso8879 這個 Port 之後,就可以在 <filename>/usr/local/share/xml/iso8879</filename> 找到這些的詳細列表。</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>如何稱呼讀者呢?</para> | <para>如何稱呼讀者呢?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para>在英文文件內,讀者都是以 <quote>you</quote> 來稱呼,而有些語言並沒有正式/非正式的區隔。</para> | <para>在英文文件內,讀者都是以 <quote>you</quote> 來稱呼,而有些語言並沒有正式/非正式的區隔。</para> | ||||
<para>若你所要翻的語言可以區別這些差異,那麼請用該語系在一般技術說明文件上所使用的稱呼吧。 如果容易造成困惑的話,那麼請改用較中性的稱呼來取代。</para> | <para>若你所要翻的語言可以區別這些差異,那麼請用該語系在一般技術說明文件上所使用的稱呼吧。如果容易造成困惑的話,那麼請改用較中性的稱呼來取代。</para> | ||||
</answer> | </answer> | ||||
</qandaentry> | </qandaentry> | ||||
<qandaentry> | <qandaentry> | ||||
<question> | <question> | ||||
<para>翻譯成果內要不要附上一些其他訊息呢?</para> | <para>翻譯成果內要不要附上一些其他訊息呢?</para> | ||||
</question> | </question> | ||||
<answer> | <answer> | ||||
<para>要。</para> | <para>要。</para> | ||||
<para>每份英文版原稿的開頭,通常會有像下面的內容:</para> | <para>每份英文版原稿的開頭,通常會有像下面的內容:</para> | ||||
<programlisting xml:lang="en"><!-- | <programlisting xml:lang="en"><!-- | ||||
The FreeBSD Documentation Project | The FreeBSD Documentation Project | ||||
$FreeBSD$ | $FreeBSD$ | ||||
--></programlisting> | --></programlisting> | ||||
<para>實際上的內容可能稍有不同,但每份原稿都會附上 $FreeBSD$ 這一行以及 <literal>The FreeBSD Documentation Project</literal> 宣告。 請注意:$FreeBSD$ 開頭的這行是會由 Subversion 隨著每次異動而自動更改的,所以新檔案的話請保持原狀 (也就是只要寫 $FreeBSD$ 就好了)。</para> | <para>實際上的內容可能稍有不同,但每份原稿都會附上 $FreeBSD$ 這一行以及 <literal>The FreeBSD Documentation Project</literal> 宣告。請注意:$FreeBSD$ 開頭的這行是會由 Subversion 隨著每次異動而自動更改的,所以新檔案的話請保持原狀 (也就是只要寫 $FreeBSD$ 就好了)。</para> | ||||
<para>翻譯文件中,必須都要有 $FreeBSD$ 這行,並且把 <literal>FreeBSD Documentation Project</literal> 這行改為 <literal>The FreeBSD <replaceable>language</replaceable> Documentation Project</literal>。</para> | <para>翻譯文件中,必須都要有 $FreeBSD$ 這行,並且把 <literal>FreeBSD Documentation Project</literal> 這行改為 <literal>The FreeBSD <replaceable>language</replaceable> Documentation Project</literal>。</para> | ||||
<para>此外,還必須加上第三行來指出你所翻譯的,到底是以英文版原稿的哪一版本為母本所做的翻譯。</para> | <para>此外,還必須加上第三行來指出你所翻譯的,到底是以英文版原稿的哪一版本為母本所做的翻譯。</para> | ||||
<para>因此呢,西班牙文版 (Spanish) 的檔案開頭應該是長像這樣:</para> | <para>因此呢,西班牙文版 (Spanish) 的檔案開頭應該是長像這樣:</para> | ||||
<programlisting xml:lang="en"><!-- | <programlisting xml:lang="en"><!-- | ||||
The FreeBSD Spanish Documentation Project | The FreeBSD Spanish Documentation Project | ||||
Show All 12 Lines | |||||
--> | --> | ||||
<chapter version="5.0" xml:id="po-translations"> | <chapter version="5.0" xml:id="po-translations"> | ||||
<title><acronym>PO</acronym> 翻譯</title> | <title><acronym>PO</acronym> 翻譯</title> | ||||
<sect1 xml:id="po-translations-introduction"> | <sect1 xml:id="po-translations-introduction"> | ||||
<title>簡介</title> | <title>簡介</title> | ||||
<para><link xlink:href="http://www.gnu.org/software/gettext/"><acronym>GNU</acronym> <application>gettext</application></link> 系統提供翻譯者一個簡單的方法來建立和維護文件的翻譯。翻譯的字串從原始文件題取出來到 <acronym>PO</acronym> (Portable Object) 檔。字串的翻譯用另外的編輯器輸入。翻譯的字串可以直接使用,或是編譯成原始文件的完整翻譯版本。</para> | <para><link xlink:href="http://www.gnu.org/software/gettext/"><acronym>GNU</acronym> <application>gettext</application></link> 系統提供翻譯者一個簡單的方法來建立和維護文件的翻譯。翻譯的字串從原始文件題取出來到 <acronym>PO</acronym> (Portable Object) 檔。字串的翻譯用另外的編輯器輸入。翻譯的字串可以直接使用,或是編譯成原始文件的完整翻譯版本。</para> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="po-translations-quick-start"> | <sect1 xml:id="po-translations-quick-start"> | ||||
<title>快速上手</title> | <title>快速上手</title> | ||||
<para>我們會假設您已做過在 <xref linkend="overview-quick-start"/> 中的步驟,除此之外還必須打開 <package role="port">textproc/docproj</package> Port 中的 <literal>TRANSLATOR</literal> 選項。如果沒有打開這個選項,請打開選項後重新安裝 Port。</para> | <para>我們會假設您已做過在 <xref linkend="overview-quick-start"/> 中的步驟,除此之外還必須打開 <package role="port">textproc/docproj</package> Port 中的 <literal>TRANSLATOR</literal> 選項。如果沒有打開這個選項,請打開選項後重新安裝 Port。</para> | ||||
<screen><prompt>#</prompt> <userinput>cd /usr/ports/textproc/docproj</userinput> | <screen><prompt>#</prompt> <userinput>cd /usr/ports/textproc/docproj</userinput> | ||||
Show All 20 Lines | <procedure xml:id="po-translations-quick-start-initial-setup"> | ||||
<step> | <step> | ||||
<para>建立新翻譯的目錄。英文文章原始碼位於 <filename>~/doc/en_US.ISO8859-1/articles/leap-seconds/</filename> 。西班牙文翻譯將會放在 <filename>~/doc/es_ES.ISO8859-1/articles/leap-seconds/</filename> 。除了語系目錄的名稱外,其他路徑相同。</para> | <para>建立新翻譯的目錄。英文文章原始碼位於 <filename>~/doc/en_US.ISO8859-1/articles/leap-seconds/</filename> 。西班牙文翻譯將會放在 <filename>~/doc/es_ES.ISO8859-1/articles/leap-seconds/</filename> 。除了語系目錄的名稱外,其他路徑相同。</para> | ||||
<screen><prompt>%</prompt> <userinput>svn mkdir --parents ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen> | <screen><prompt>%</prompt> <userinput>svn mkdir --parents ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>從原始文件處將 <filename>Makefile</filename> 複製到翻譯目錄。</para> | <para>從原始文件處將 <filename>Makefile</filename> 複製到翻譯目錄。</para> | ||||
<screen><prompt>%</prompt> <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/leap-seconds/Makefile \ | <screen xml:lang="en"><prompt>%</prompt> <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/leap-seconds/Makefile \ | ||||
~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen> | ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen> | ||||
</step> | </step> | ||||
</procedure> | </procedure> | ||||
<procedure xml:id="po-translations-quick-start-translation"> | <procedure xml:id="po-translations-quick-start-translation"> | ||||
<title>翻譯</title> | <title>翻譯</title> | ||||
<para>翻譯文件公有兩個步驟:將可翻譯的字串從原始文件提去出來,然後翻譯這些字串。重複這些步驟,直到翻譯者認為文件的翻譯部份已經足夠用來產生可讀的翻譯文件。</para> | <para>翻譯文件公有兩個步驟:將可翻譯的字串從原始文件提去出來,然後翻譯這些字串。重複這些步驟,直到翻譯者認為文件的翻譯部份已經足夠用來產生可讀的翻譯文件。</para> | ||||
<step> | <step> | ||||
<para>從英文的原始文件提取字串到 <acronym>PO</acronym> 檔:</para> | <para>從英文的原始文件提取字串到 <acronym>PO</acronym> 檔:</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput> | <screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput> | ||||
<prompt>%</prompt> <userinput>make po</userinput></screen> | <prompt>%</prompt> <userinput>make po</userinput></screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>使用 <acronym>PO</acronym> 編輯器將翻譯輸入 <acronym>PO</acronym> 檔。有幾個不同的編輯器可以使用。這裡用的是 <package role="port">editors/poedit</package> 的 <filename>poedit</filename> 。</para> | <para>使用 <acronym>PO</acronym> 編輯器將翻譯輸入 <acronym>PO</acronym> 檔。有幾個不同的編輯器可以使用。這裡用的是 <package role="port">editors/poedit</package> 的 <filename>poedit</filename> 。</para> | ||||
<para><acronym>PO</acronym> 檔名是兩個字元的語系碼後面接底線和兩個字元的區域碼。以西班牙語來說,檔名是 <filename>es_ES.po</filename> 。</para> | <para><acronym>PO</acronym> 檔名是兩個字元的語系碼後面接底線和兩個字元的區域碼。以西班牙語來說,檔名是 <filename>es_ES.po</filename> 。</para> | ||||
<screen><prompt>%</prompt> <userinput>poedit es_ES.po</userinput></screen> | <screen><prompt>%</prompt> <userinput>poedit es_ES.po</userinput></screen> | ||||
</step> | </step> | ||||
</procedure> | </procedure> | ||||
<procedure xml:id="po-translations-quick-generating-a-translated-document"> | <procedure xml:id="po-translations-quick-generating-a-translated-document"> | ||||
<title>產生翻譯文件</title> | <title>產生翻譯文件</title> | ||||
<step> | <step> | ||||
<para>產生翻譯文件</para> | <para>產生翻譯文件</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput> | <screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput> | ||||
<prompt>%</prompt> <userinput>make tran</userinput></screen> | <prompt>%</prompt> <userinput>make tran</userinput></screen> | ||||
<para>產生的文件名稱與英文原始文件名稱相符,文章通常是 <filename>article.xml</filename> ,書籍是 <filename>book.xml</filename> 。</para> | <para>產生的文件名稱與英文原始文件名稱相符,文章通常是 <filename>article.xml</filename>,書籍是 <filename>book.xml</filename> 。</para> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>可以轉換成 <acronym>HTML</acronym> 來檢查產生的檔案,並用瀏覽器來察看。</para> | <para>可以轉換成 <acronym>HTML</acronym> 來檢查產生的檔案,並用瀏覽器來察看。</para> | ||||
<screen><prompt>%</prompt> <userinput>make FORMATS=html</userinput> | <screen><prompt>%</prompt> <userinput>make FORMATS=html</userinput> | ||||
<prompt>%</prompt> <userinput>firefox article.html</userinput></screen> | <prompt>%</prompt> <userinput>firefox article.html</userinput></screen> | ||||
</step> | </step> | ||||
▲ Show 20 Lines • Show All 186 Lines • ▼ Show 20 Lines | <row> | ||||
<entry><filename>zh_TW.UTF-8</filename></entry> | <entry><filename>zh_TW.UTF-8</filename></entry> | ||||
<entry><filename>zh_TW.po</filename></entry> | <entry><filename>zh_TW.po</filename></entry> | ||||
<entry><acronym>UTF</acronym>-8</entry> | <entry><acronym>UTF</acronym>-8</entry> | ||||
</row> | </row> | ||||
</tbody> | </tbody> | ||||
</tgroup> | </tgroup> | ||||
</table> | </table> | ||||
<para>翻譯位於主要說明文件目錄的子目錄,這裡假設如 <xref linkend="overview-quick-start"/> 所示,是 <filename>~/doc/</filename>。例如德文位於 <filename>~/doc/de_DE.ISO8859-1/</filename>, 法文位於 <filename>~/doc/fr_FR.ISO8859-1/</filename>。</para> | <para>翻譯位於主要說明文件目錄的子目錄,這裡假設如 <xref linkend="overview-quick-start"/> 所示,是 <filename>~/doc/</filename>。例如德文位於 <filename>~/doc/de_DE.ISO8859-1/</filename>,法文位於 <filename>~/doc/fr_FR.ISO8859-1/</filename>。</para> | ||||
<para>每個語系目錄包含不同文件類型的子目錄,通常是 <filename>articles/</filename> 和 <filename>books/</filename>。</para> | <para>每個語系目錄包含不同文件類型的子目錄,通常是 <filename>articles/</filename> 和 <filename>books/</filename>。</para> | ||||
<para>將目錄名稱組合起來就是文章或書的完整路徑。例如,NanoBSD 文章的法語翻譯在 <filename>~/doc/fr_FR.ISO8859-1/articles/nanobsd/</filename> 。而使用手冊的蒙古文翻譯在<filename>~/doc/mn_MN.UTF-8/books/handbook/</filename> 。</para> | <para>將目錄名稱組合起來就是文章或書的完整路徑。例如,NanoBSD 文章的法語翻譯在 <filename>~/doc/fr_FR.ISO8859-1/articles/nanobsd/</filename> 。而使用手冊的蒙古文翻譯在<filename>~/doc/mn_MN.UTF-8/books/handbook/</filename> 。</para> | ||||
<para>當翻譯到一個新語系時必須建立一個新的語系目錄。如果語系目錄已經存在,那只需要有 <filename>articles/</filename> 或 <filename>books/</filename> 的子目錄。</para> | <para>當翻譯到一個新語系時必須建立一個新的語系目錄。如果語系目錄已經存在,那只需要有 <filename>articles/</filename> 或 <filename>books/</filename> 的子目錄。</para> | ||||
<para>FreeBSD 說明文件的編譯是由同一個目錄的 <filename>Makefile</filename> 控制。簡單的文章可以從原始的英語目錄直接複製 <filename>Makefile</filename> 過來。書籍的翻譯流程結合多個獨立的 <filename>book.xml</filename> 和 <filename>chapter.xml</filename> 成為一個檔案, 所以書籍翻譯的 <filename>Makefile</filename> 必須複製並修改。</para> | <para>FreeBSD 說明文件的編譯是由同一個目錄的 <filename>Makefile</filename> 控制。簡單的文章可以從原始的英語目錄直接複製 <filename>Makefile</filename> 過來。書籍的翻譯流程結合多個獨立的 <filename>book.xml</filename> 和 <filename>chapter.xml</filename> 成為一個檔案,所以書籍翻譯的 <filename>Makefile</filename> 必須複製並修改。</para> | ||||
<example xml:id="po-translations-creating-example"> | <example xml:id="po-translations-creating-example"> | ||||
<title>建立 Porter 手冊的西班牙語翻譯</title> | <title>建立 Porter 手冊的西班牙語翻譯</title> | ||||
<para>建立 <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/porters-handbook">Porter 手冊</link> 的西班牙文翻譯。原文是位於 <filename>~/doc/en_US.ISO8859-1/books/porters-handbook/</filename> 的書籍。</para> | <para>建立 <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/porters-handbook">Porter 手冊</link> 的西班牙文翻譯。原文是位於 <filename>~/doc/en_US.ISO8859-1/books/porters-handbook/</filename> 的書籍。</para> | ||||
<procedure> | <procedure> | ||||
<step> | <step> | ||||
<para>西班牙文 books 目錄 <filename>~/doc/es_ES.ISO8859-1/books/</filename> 已經存在,所以只要建立 Porter 手冊的子目錄:</para> | <para>西班牙文 books 目錄 <filename>~/doc/es_ES.ISO8859-1/books/</filename> 已經存在,所以只要建立 Porter 手冊的子目錄:</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/books/</userinput> | <screen xml:lang="en"><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/books/</userinput> | ||||
<prompt>%</prompt> <userinput>svn mkdir porters-handbook</userinput> | <prompt>%</prompt> <userinput>svn mkdir porters-handbook</userinput> | ||||
A porters-handbook</screen> | A porters-handbook</screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>從原始文件的目錄複製 <filename>Makefile</filename> :</para> | <para>從原始文件的目錄複製 <filename>Makefile</filename>:</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> | <screen xml:lang="en"><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> | ||||
<prompt>%</prompt> <userinput>svn cp ~/doc/en_US.ISO8859-1/books/porters-handbook/Makefile .</userinput> | <prompt>%</prompt> <userinput>svn cp ~/doc/en_US.ISO8859-1/books/porters-handbook/Makefile .</userinput> | ||||
A Makefile</screen> | A Makefile</screen> | ||||
<para>修改 <filename>Makefile</filename> 內容以產生單一的 <filename>book.xml</filename>:</para> | <para>修改 <filename>Makefile</filename> 內容以產生單一的 <filename>book.xml</filename>:</para> | ||||
<programlisting xml:lang="en"># | <programlisting xml:lang="en"># | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
# | # | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | </step> | ||||
<example xml:id="po-translations-creating-example-french"> | <example xml:id="po-translations-creating-example-french"> | ||||
<title>建立 <acronym>PGP</acronym> 金鑰文章的法語翻譯。</title> | <title>建立 <acronym>PGP</acronym> 金鑰文章的法語翻譯。</title> | ||||
<para>建立 <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/pgpkeys"><acronym>PGP</acronym> 金鑰文章</link> 的法文翻譯。原文是位於 <filename>~/doc/en_US.ISO8859-1/articles/pgpkeys/</filename> 的文章。</para> | <para>建立 <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/pgpkeys"><acronym>PGP</acronym> 金鑰文章</link> 的法文翻譯。原文是位於 <filename>~/doc/en_US.ISO8859-1/articles/pgpkeys/</filename> 的文章。</para> | ||||
<procedure> | <procedure> | ||||
<step> | <step> | ||||
<para>法文文章目錄 <filename>~/doc/fr_FR.ISO8859-1/articles/</filename> 已經存在,所以只要建立 <acronym>PGP</acronym> 金鑰文章的子目錄:</para> | <para>法文文章目錄 <filename>~/doc/fr_FR.ISO8859-1/articles/</filename> 已經存在,所以只要建立 <acronym>PGP</acronym> 金鑰文章的子目錄:</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/</userinput> | <screen xml:lang="en"><prompt>%</prompt> <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/</userinput> | ||||
<prompt>%</prompt> <userinput>svn mkdir pgpkeys</userinput> | <prompt>%</prompt> <userinput>svn mkdir pgpkeys</userinput> | ||||
A pgpkeys</screen> | A pgpkeys</screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>從原始文件的目錄複製 <filename>Makefile</filename> :</para> | <para>從原始文件的目錄複製 <filename>Makefile</filename>:</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/pgpkeys</userinput> | <screen xml:lang="en"><prompt>%</prompt> <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/pgpkeys</userinput> | ||||
<prompt>%</prompt> <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/pgpkeys/Makefile .</userinput> | <prompt>%</prompt> <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/pgpkeys/Makefile .</userinput> | ||||
A Makefile</screen> | A Makefile</screen> | ||||
<para>檢查 <filename>Makefile</filename> 的內容。因為這是簡單的文章,此例的 <filename>Makefile</filename> 不用修改。第二行的 <literal>$FreeBSD...$</literal> 版本字串將會在檔案提交時被版本控制系統替換掉。</para> | <para>檢查 <filename>Makefile</filename> 的內容。因為這是簡單的文章,此例的 <filename>Makefile</filename> 不用修改。第二行的 <literal>$FreeBSD...$</literal> 版本字串將會在檔案提交時被版本控制系統替換掉。</para> | ||||
<programlisting xml:lang="en"># | <programlisting xml:lang="en"># | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
# | # | ||||
# Article: PGP Keys | # Article: PGP Keys | ||||
DOC?= article | DOC?= article | ||||
FORMATS?= html | FORMATS?= html | ||||
WITH_ARTICLE_TOC?= YES | WITH_ARTICLE_TOC?= YES | ||||
INSTALL_COMPRESSED?= gz | INSTALL_COMPRESSED?= gz | ||||
INSTALL_ONLY_COMPRESSED?= | INSTALL_ONLY_COMPRESSED?= | ||||
SRCS= article.xml | SRCS= article.xml | ||||
# To build with just key fingerprints, set FINGERPRINTS_ONLY. | # To build with just key fingerprints, set FINGERPRINTS_ONLY. | ||||
URL_RELPREFIX?= ../../../.. | URL_RELPREFIX?= ../../../.. | ||||
DOC_PREFIX?= ${.CURDIR}/../../.. | DOC_PREFIX?= ${.CURDIR}/../../.. | ||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting> | .include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting> | ||||
<para>文章結構處理好後, 可以執行建立 <command>make po</command> 建立 <acronym>PO</acronym> 檔。</para> | <para>文章結構處理好後,可以執行建立 <command>make po</command> 建立 <acronym>PO</acronym> 檔。</para> | ||||
</step> | </step> | ||||
</procedure> | </procedure> | ||||
</example> | </example> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="po-translations-translating"> | <sect1 xml:id="po-translations-translating"> | ||||
<title>翻譯</title> | <title>翻譯</title> | ||||
<para><application>gettext</application> 系統大幅減少翻譯者要追蹤的事情。 字串從原始文件提取到 <acronym>PO</acronym> 檔。再用 <acronym>PO</acronym> 檔編輯器輸入字串的翻譯。</para> | <para><application>gettext</application> 系統大幅減少翻譯者要追蹤的事情。字串從原始文件提取到 <acronym>PO</acronym> 檔。再用 <acronym>PO</acronym> 檔編輯器輸入字串的翻譯。</para> | ||||
<para>FreeBSD <acronym>PO</acronym> 翻譯系統不會覆蓋掉 <acronym>PO</acronym> 檔。所以提取步驟可以在任何時候重複執行來更新 <acronym>PO</acronym> 檔。</para> | <para>FreeBSD <acronym>PO</acronym> 翻譯系統不會覆蓋掉 <acronym>PO</acronym> 檔。所以提取步驟可以在任何時候重複執行來更新 <acronym>PO</acronym> 檔。</para> | ||||
<para>用 <acronym>PO</acronym> 檔編輯器來編輯檔案。此例是用 <package role="port">editors/poedit</package>,因為它很簡單而且系統需求低。其他的 <acronym>PO</acronym> 檔編輯器提供一些特點,能使翻譯工作更輕鬆。Port 套件集裡有數個編輯器,包括 <package role="port">devel/gtranslator</package> 。</para> | <para>用 <acronym>PO</acronym> 檔編輯器來編輯檔案。此例是用 <package role="port">editors/poedit</package>,因為它很簡單而且系統需求低。其他的 <acronym>PO</acronym> 檔編輯器提供一些特點,能使翻譯工作更輕鬆。Port 套件集裡有數個編輯器,包括 <package role="port">devel/gtranslator</package> 。</para> | ||||
<para>保留 <acronym>PO</acronym> 檔是很重要的。它包含所有的翻譯成果。</para> | <para>保留 <acronym>PO</acronym> 檔是很重要的。它包含所有的翻譯成果。</para> | ||||
<example xml:id="po-translations-translating-example"> | <example xml:id="po-translations-translating-example"> | ||||
<title>翻譯 Porter 手冊到西班牙文</title> | <title>翻譯 Porter 手冊到西班牙文</title> | ||||
<para>輸入 Porter 手冊的西班牙文內容</para> | <para>輸入 Porter 手冊的西班牙文內容</para> | ||||
<procedure> | <procedure> | ||||
<step> | <step> | ||||
<para>切換到西班牙文 Porter 手冊的目錄並更新 <acronym>PO</acronym> 檔。產生的 <acronym>PO</acronym> 檔如 <xref linkend="po-translations-language-names"/> 所示,名叫 <filename>es_ES.po</filename> 。</para> | <para>切換到西班牙文 Porter 手冊的目錄並更新 <acronym>PO</acronym> 檔。產生的 <acronym>PO</acronym> 檔如 <xref linkend="po-translations-language-names"/> 所示,名叫 <filename>es_ES.po</filename> 。</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> | <screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> | ||||
<prompt>%</prompt> <userinput>make po</userinput></screen> | <prompt>%</prompt> <userinput>make po</userinput></screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>使用 <acronym>PO</acronym> 檔編輯器輸入翻譯:</para> | <para>使用 <acronym>PO</acronym> 檔編輯器輸入翻譯:</para> | ||||
<screen><prompt>%</prompt> <userinput>poedit es_ES.po</userinput></screen> | <screen><prompt>%</prompt> <userinput>poedit es_ES.po</userinput></screen> | ||||
</step> | </step> | ||||
</procedure> | </procedure> | ||||
</example> | </example> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="po-translations-tips"> | <sect1 xml:id="po-translations-tips"> | ||||
▲ Show 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | </listitem> | ||||
<sect2 xml:id="po-translations-literal-dollar"> | <sect2 xml:id="po-translations-literal-dollar"> | ||||
<title><literal>$FreeBSD$</literal> 字串</title> | <title><literal>$FreeBSD$</literal> 字串</title> | ||||
<para>在檔案中使用到的 $FreeBSD$ 版本字串都需要特別處理,例如在 <xref linkend="po-translations-creating-example"/>,使用這些字串的用意並非要展開成版本。英文的說明文件會使用 <literal>&dollar;</literal> Entity 來避免在檔案中用到錢字符號:</para> | <para>在檔案中使用到的 $FreeBSD$ 版本字串都需要特別處理,例如在 <xref linkend="po-translations-creating-example"/>,使用這些字串的用意並非要展開成版本。英文的說明文件會使用 <literal>&dollar;</literal> Entity 來避免在檔案中用到錢字符號:</para> | ||||
<programlisting>&dollar;FreeBSD&dollar;</programlisting> | <programlisting>&dollar;FreeBSD&dollar;</programlisting> | ||||
<para>版本控制符號不會把 <literal>&dollar;</literal> entities 看成金錢符號,所以不會把字串展開成版本字串。</para> | <para>版本控制符號不會把 <literal>&dollar;</literal> entities 看成金錢符號,所以不會把字串展開成版本字串。</para> | ||||
<para>當 <acronym>PO</acronym> 檔建立之後,在範例中使用到的 <literal>&dollar;</literal> Entity 會被取代成實際的錢字符號,這會使的 <literal>$FreeBSD$</literal> 字串在提交時錯誤的被版本控制系統展開成版本字串。</para> | <para>當 <acronym>PO</acronym> 檔建立之後,在範例中使用到的 <literal>&dollar;</literal> Entity 會被取代成實際的錢字符號,這會使的 <literal>$FreeBSD$</literal> 字串在提交時錯誤的被版本控制系統展開成版本字串。</para> | ||||
<para>在英文文件上使用的方法也可以用在翻譯上,翻譯時在 <acronym>PO</acronym> 編輯器用 <literal>&dollar;</literal> 來取代金錢符號:</para> | <para>在英文文件上使用的方法也可以用在翻譯上,翻譯時在 <acronym>PO</acronym> 編輯器用 <literal>&dollar;</literal> 來取代金錢符號:</para> | ||||
<programlisting>&dollar;FreeBSD&dollar;</programlisting> | <programlisting>&dollar;FreeBSD&dollar;</programlisting> | ||||
</sect2> | </sect2> | ||||
<!-- | <!-- | ||||
<sect2 xml:id="po-translations-tips-makefile"> | <sect2 xml:id="po-translations-tips-makefile"> | ||||
<title>Modifying the <filename>Makefile</filename></title> | <title>Modifying the <filename>Makefile</filename></title> | ||||
Show All 35 Lines | <prompt>%</prompt> <userinput>make po</userinput></screen> | ||||
<sect1 xml:id="po-translations-building"> | <sect1 xml:id="po-translations-building"> | ||||
<title>編譯翻譯的文件</title> | <title>編譯翻譯的文件</title> | ||||
<para>原文的翻譯版本可以在任何時候被建立。未翻譯的部份會以英文呈獻。大部份 <acronym>PO</acronym> 編輯器有指標可以顯示翻譯完成度。這讓翻譯者更容易看翻譯好的字串是否足夠來編譯最終的文件。</para> | <para>原文的翻譯版本可以在任何時候被建立。未翻譯的部份會以英文呈獻。大部份 <acronym>PO</acronym> 編輯器有指標可以顯示翻譯完成度。這讓翻譯者更容易看翻譯好的字串是否足夠來編譯最終的文件。</para> | ||||
<example xml:id="po-translations-building-example"> | <example xml:id="po-translations-building-example"> | ||||
<title>編譯西班牙文 Porter 手冊</title> | <title>編譯西班牙文 Porter 手冊</title> | ||||
<para>編譯和預覽之前範例翻譯的西班牙文版 Porter 手冊</para> | <para>編譯和預覽之前範例翻譯的西班牙文版 Porter 手冊</para> | ||||
<procedure> | <procedure> | ||||
<step> | <step> | ||||
<para>編譯翻譯好的文件。因為原文是書籍,所以產生的文件是 <filename>book.xml</filename>。</para> | <para>編譯翻譯好的文件。因為原文是書籍,所以產生的文件是 <filename>book.xml</filename>。</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> | <screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput> | ||||
<prompt>%</prompt> <userinput>make tran</userinput></screen> | <prompt>%</prompt> <userinput>make tran</userinput></screen> | ||||
</step> | </step> | ||||
Show All 23 Lines | <step> | ||||
<para>增加 FreeBSD 版本字串註解到 <acronym>PO</acronym> 檔的第一行:</para> | <para>增加 FreeBSD 版本字串註解到 <acronym>PO</acronym> 檔的第一行:</para> | ||||
<programlisting xml:lang="en">#$FreeBSD$</programlisting> | <programlisting xml:lang="en">#$FreeBSD$</programlisting> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>增加 <filename>Makefile</filename> 、<acronym>PO</acronym> 檔和產生的 <acronym>XML</acronym> 翻譯到版本控制系統:</para> | <para>增加 <filename>Makefile</filename> 、<acronym>PO</acronym> 檔和產生的 <acronym>XML</acronym> 翻譯到版本控制系統:</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/articles/nanobsd/</userinput> | <screen xml:lang="en"><prompt>%</prompt> <userinput>cd ~/doc/es_ES.ISO8859-1/articles/nanobsd/</userinput> | ||||
<prompt>%</prompt> <userinput>ls</userinput> | <prompt>%</prompt> <userinput>ls</userinput> | ||||
Makefile article.xml es_ES.po | Makefile article.xml es_ES.po | ||||
<prompt>%</prompt> <userinput>svn add Makefile article.xml es_ES.po</userinput> | <prompt>%</prompt> <userinput>svn add Makefile article.xml es_ES.po</userinput> | ||||
A Makefile | A Makefile | ||||
A article.xml | A article.xml | ||||
A es_ES.po</screen> | A es_ES.po</screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>在這些檔案設定 <application>Subversion</application> <literal>svn:keywords</literal> 屬性為 <literal>FreeBSD=%H</literal> 讓 <literal>$FreeBSD$</literal> 字串可以在提交時被展開成為路徑、修訂、日期以及作者:</para> | <para>在這些檔案設定 <application>Subversion</application> <literal>svn:keywords</literal> 屬性為 <literal>FreeBSD=%H</literal> 讓 <literal>$FreeBSD$</literal> 字串可以在提交時被展開成為路徑、修訂、日期以及作者:</para> | ||||
<screen><prompt>%</prompt> <userinput>svn propset svn:keywords FreeBSD=%H Makefile article.xml es_ES.po</userinput> | <screen><prompt>%</prompt> <userinput>svn propset svn:keywords FreeBSD=%H Makefile article.xml es_ES.po</userinput> | ||||
property 'svn:keywords' set on 'Makefile' | property 'svn:keywords' set on 'Makefile' | ||||
property 'svn:keywords' set on 'article.xml' | property 'svn:keywords' set on 'article.xml' | ||||
property 'svn:keywords' set on 'es_ES.po'</screen> | property 'svn:keywords' set on 'es_ES.po'</screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>設定檔案的 <acronym>MIME</acronym> 類型。書籍和文章是 <literal>text/xml</literal> ,<acronym>PO</acronym> 檔是 <literal>text/x-gettext-translation</literal> 。</para> | <para>設定檔案的 <acronym>MIME</acronym> 類型。書籍和文章是 <literal>text/xml</literal>,<acronym>PO</acronym> 檔是 <literal>text/x-gettext-translation</literal> 。</para> | ||||
<screen><prompt>%</prompt> <userinput>svn propset svn:mime-type text/x-gettext-translation es_ES.po</userinput> | <screen><prompt>%</prompt> <userinput>svn propset svn:mime-type text/x-gettext-translation es_ES.po</userinput> | ||||
property 'svn:mime-type' set on 'es_ES.po' | property 'svn:mime-type' set on 'es_ES.po' | ||||
<prompt>%</prompt> <userinput>svn propset svn:mime-type text/xml article.xml</userinput> | <prompt>%</prompt> <userinput>svn propset svn:mime-type text/xml article.xml</userinput> | ||||
property 'svn:mime-type' set on 'article.xml'</screen> | property 'svn:mime-type' set on 'article.xml'</screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
Show All 13 Lines | <step> | ||||
<para>增加 FreeBSD 版本字串註解到 <acronym>PO</acronym> 檔的第一行:</para> | <para>增加 FreeBSD 版本字串註解到 <acronym>PO</acronym> 檔的第一行:</para> | ||||
<programlisting xml:lang="en">#$FreeBSD$</programlisting> | <programlisting xml:lang="en">#$FreeBSD$</programlisting> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>增加 <filename>Makefile</filename> 、<acronym>PO</acronym> 檔和產生的 <acronym>XML</acronym> 翻譯到版本控制系統:</para> | <para>增加 <filename>Makefile</filename> 、<acronym>PO</acronym> 檔和產生的 <acronym>XML</acronym> 翻譯到版本控制系統:</para> | ||||
<screen><prompt>%</prompt> <userinput>cd ~/doc/ko_KR.UTF-8/articles/explaining-bsd/</userinput> | <screen xml:lang="en"><prompt>%</prompt> <userinput>cd ~/doc/ko_KR.UTF-8/articles/explaining-bsd/</userinput> | ||||
<prompt>%</prompt> <userinput>ls</userinput> | <prompt>%</prompt> <userinput>ls</userinput> | ||||
Makefile article.xml ko_KR.po | Makefile article.xml ko_KR.po | ||||
<prompt>%</prompt> <userinput>svn add Makefile article.xml ko_KR.po</userinput> | <prompt>%</prompt> <userinput>svn add Makefile article.xml ko_KR.po</userinput> | ||||
A Makefile | A Makefile | ||||
A article.xml | A article.xml | ||||
A ko_KR.po</screen> | A ko_KR.po</screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>在這些檔案設定 <application>Subversion</application> <literal>svn:keywords</literal> 屬性為 <literal>FreeBSD=%H</literal> 讓 <literal>$FreeBSD$</literal> 字串可以在提交時被展開成為路徑、修訂、日期以及作者:</para> | <para>在這些檔案設定 <application>Subversion</application> <literal>svn:keywords</literal> 屬性為 <literal>FreeBSD=%H</literal> 讓 <literal>$FreeBSD$</literal> 字串可以在提交時被展開成為路徑、修訂、日期以及作者:</para> | ||||
<screen><prompt>%</prompt> <userinput>svn propset svn:keywords FreeBSD=%H Makefile article.xml ko_KR.po</userinput> | <screen><prompt>%</prompt> <userinput>svn propset svn:keywords FreeBSD=%H Makefile article.xml ko_KR.po</userinput> | ||||
property 'svn:keywords' set on 'Makefile' | property 'svn:keywords' set on 'Makefile' | ||||
property 'svn:keywords' set on 'article.xml' | property 'svn:keywords' set on 'article.xml' | ||||
property 'svn:keywords' set on 'ko_KR.po'</screen> | property 'svn:keywords' set on 'ko_KR.po'</screen> | ||||
</step> | </step> | ||||
<step> | <step> | ||||
<para>設定檔案的 <acronym>MIME</acronym> 類型。因為這些檔案使用 <acronym>UTF-8</acronym> 字元集,這也需要指定。為了防止版本控制系統將這些檔案誤認為二進位資料,<literal>fbsd:notbinary</literal> 屬性也需要設定。</para> | <para>設定檔案的 <acronym>MIME</acronym> 類型。因為這些檔案使用 <acronym>UTF-8</acronym> 字元集,這也需要指定。為了防止版本控制系統將這些檔案誤認為二進位資料,<literal>fbsd:notbinary</literal> 屬性也需要設定。</para> | ||||
<screen><prompt>%</prompt> <userinput>svn propset svn:mime-type 'text/x-gettext-translation;charset=UTF-8' ko_KR.po</userinput> | <screen><prompt>%</prompt> <userinput>svn propset svn:mime-type 'text/x-gettext-translation;charset=UTF-8' ko_KR.po</userinput> | ||||
property 'svn:mime-type' set on 'ko_KR.po' | property 'svn:mime-type' set on 'ko_KR.po' | ||||
<prompt>%</prompt> <userinput>svn propset fbsd:notbinary yes ko_KR.po</userinput> | <prompt>%</prompt> <userinput>svn propset fbsd:notbinary yes ko_KR.po</userinput> | ||||
property 'fbsd:notbinary' set on 'ko_KR.po' | property 'fbsd:notbinary' set on 'ko_KR.po' | ||||
<prompt>%</prompt> <userinput>svn propset svn:mime-type 'text/xml;charset=UTF-8' article.xml</userinput> | <prompt>%</prompt> <userinput>svn propset svn:mime-type 'text/xml;charset=UTF-8' article.xml</userinput> | ||||
property 'svn:mime-type' set on 'article.xml' | property 'svn:mime-type' set on 'article.xml' | ||||
<prompt>%</prompt> <userinput>svn propset fbsd:notbinary yes article.xml</userinput> | <prompt>%</prompt> <userinput>svn propset fbsd:notbinary yes article.xml</userinput> | ||||
▲ Show 20 Lines • Show All 264 Lines • ▼ Show 20 Lines | </listitem> | ||||
<para xml:lang="en">For more information about writing style, see <link xlink:href="http://www.bartleby.com/141/">Elements of | <para xml:lang="en">For more information about writing style, see <link xlink:href="http://www.bartleby.com/141/">Elements of | ||||
Style</link>, by William Strunk.</para> | Style</link>, by William Strunk.</para> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="writing-style-guide"> | <sect1 xml:id="writing-style-guide"> | ||||
<title>風格指南</title> | <title>風格指南</title> | ||||
<para>由於說明文件是由眾多作者所維護,為了保持寫作風格的一貫性, 請遵守下列撰寫風格慣例。</para> | <para>由於說明文件是由眾多作者所維護,為了保持寫作風格的一貫性,請遵守下列撰寫風格慣例。</para> | ||||
<sect2> | <sect2> | ||||
<title>大小寫</title> | <title>大小寫</title> | ||||
<para>Tag 的部份都是用小寫字母,譬如是用 <tag>para</tag> ,<emphasis>而非</emphasis><tag>PARA</tag>。</para> | <para>Tag 的部份都是用小寫字母,譬如是用 <tag>para</tag>,<emphasis>而非</emphasis><tag>PARA</tag>。</para> | ||||
<para>而 SGML 內文則是用大寫字母表示,像是: <literal><!ENTITY…></literal> 及 <literal><!DOCTYPE…></literal>, <emphasis>而不是</emphasis> <literal><!entity…></literal> 及 <literal><!doctype…></literal>。</para> | <para>而 SGML 內文則是用大寫字母表示,像是: <literal><!ENTITY…></literal> 及 <literal><!DOCTYPE…></literal>,<emphasis>而不是</emphasis> <literal><!entity…></literal> 及 <literal><!doctype…></literal>。</para> | ||||
</sect2> | </sect2> | ||||
<sect2 xml:id="writing-style-acronyms"> | <sect2 xml:id="writing-style-acronyms"> | ||||
<title>縮寫</title> | <title>縮寫</title> | ||||
<para>縮寫字(acronym)通常在書中第一次提到時,必須同時列出完整拼法, 比如:<quote>Network Time Protocol (<acronym>NTP</acronym>)</quote>。 定義縮寫字之後,應該儘量只使用該縮寫字(而非完整詞彙, 除非使用完整詞彙可以更能表達語意)來表達即可。 通常每本書只會第一次提到時,才會列出完整詞彙, 但若您高興也可以在每章第一次提到時又列出完整詞彙。</para> | <para>縮寫字 (Acronym) 通常在書中第一次提到時,必須同時列出完整拼法,比如:<quote>Network Time Protocol (<acronym>NTP</acronym>)</quote>。定義縮寫字之後,應該儘量只使用該縮寫字(而非完整詞彙,除非使用完整詞彙可以更能表達語意)來表達即可。通常每本書只會第一次提到時,才會列出完整詞彙,但若您高興也可以在每章第一次提到時又列出完整詞彙。</para> | ||||
<para>所有縮寫要包在<tag>acronym</tag>標籤內。</para> | <para>所有縮寫要包在<tag>acronym</tag>標籤內。</para> | ||||
</sect2> | </sect2> | ||||
<sect2 xml:id="writing-style-indentation"> | <sect2 xml:id="writing-style-indentation"> | ||||
<title>縮排</title> | <title>縮排</title> | ||||
<para><emphasis>無論</emphasis>檔案縮排設定為何, 每個檔案的第一行都不縮排。</para> | <para><emphasis>無論</emphasis>檔案縮排設定為何,每個檔案的第一行都不縮排。</para> | ||||
<para>未完的標籤會以多兩個空白來增加縮排, 結尾的標籤則少兩個空白來縮減縮排。 若已達 8 個空白,則以 tab 取代之。 此外,在 tab 前面不要再用空白,也不要在每行後面加上空白。 每個 tag 的內文若超過一行的話,則接下來的就多兩個空白以做縮排。</para> | <para>未完的標籤會以多兩個空白來增加縮排,結尾的標籤則少兩個空白來縮減縮排。若已達 8 個空白,則以 tab 取代之。此外,在 tab 前面不要再用空白,也不要在每行後面加上空白。每個 tag 的內文若超過一行的話,則接下來的就多兩個空白以做縮排。</para> | ||||
<para>舉個例子,這節所用的寫法大致是下面這樣:</para> | <para>舉個例子,這節所用的寫法大致是下面這樣:</para> | ||||
<programlisting><tag class="starttag">chapter</tag> | <programlisting xml:lang="en"><tag class="starttag">chapter</tag> | ||||
<tag class="starttag">title</tag>...<tag class="endtag">title</tag> | <tag class="starttag">title</tag>...<tag class="endtag">title</tag> | ||||
<tag class="starttag">sect1</tag> | <tag class="starttag">sect1</tag> | ||||
<tag class="starttag">title</tag>...<tag class="endtag">title</tag> | <tag class="starttag">title</tag>...<tag class="endtag">title</tag> | ||||
<tag class="starttag">sect2</tag> | <tag class="starttag">sect2</tag> | ||||
<tag class="starttag">title</tag>Indentation<tag class="endtag">title</tag> | <tag class="starttag">title</tag>Indentation<tag class="endtag">title</tag> | ||||
<tag class="starttag">para</tag>The first line in each file starts with no indentation, | <tag class="starttag">para</tag>The first line in each file starts with no indentation, | ||||
<tag class="starttag">emphasis</tag>regardless<tag class="endtag">emphasis</tag> of the indentation level of | <tag class="starttag">emphasis</tag>regardless<tag class="endtag">emphasis</tag> of the indentation level of | ||||
the file which might contain the current file。<tag class="endtag">para</tag> | the file which might contain the current file.<tag class="endtag">para</tag> | ||||
... | ... | ||||
<tag class="endtag">sect2</tag> | <tag class="endtag">sect2</tag> | ||||
<tag class="endtag">sect1</tag> | <tag class="endtag">sect1</tag> | ||||
<tag class="endtag">chapter</tag></programlisting> | <tag class="endtag">chapter</tag></programlisting> | ||||
<para>有長屬性的標籤也是遵循一樣的原則。遵守縮排規則可以幫助編輯和作者了解哪些內容在標籤內:</para> | <para>有長屬性的標籤也是遵循一樣的原則。遵守縮排規則可以幫助編輯和作者了解哪些內容在標籤內:</para> | ||||
<programlisting><tag class="starttag">para</tag>See the <tag class="starttag">link | <programlisting xml:lang="en"><tag class="starttag">para</tag>See the <tag class="starttag">link | ||||
linkend="gmirror-troubleshooting"</tag>Troubleshooting<tag class="endtag">link</tag> | linkend="gmirror-troubleshooting"</tag>Troubleshooting<tag class="endtag">link</tag> | ||||
section if there are problems booting. Powering down and | section if there are problems booting. Powering down and | ||||
disconnecting the original <tag class="starttag">filename</tag>ada0<tag class="endtag">filename</tag> disk | disconnecting the original <tag class="starttag">filename</tag>ada0<tag class="endtag">filename</tag> disk | ||||
will allow it to be kept as an offline backup.<tag class="endtag">para</tag> | will allow it to be kept as an offline backup.<tag class="endtag">para</tag> | ||||
<tag class="starttag">para</tag>It is also possible to journal the boot disk of a &os; | <tag class="starttag">para</tag>It is also possible to journal the boot disk of a &os; | ||||
system. Refer to the article <tag class="starttag">link | system. Refer to the article <tag class="starttag">link | ||||
xlink:href="&url.articles.gjournal-desktop;"</tag>Implementing UFS | xlink:href="&url.articles.gjournal-desktop;"</tag>Implementing UFS | ||||
Journaling on a Desktop PC<tag class="endtag">link</tag> for detailed | Journaling on a Desktop PC<tag class="endtag">link</tag> for detailed | ||||
instructions.<tag class="endtag">para</tag></programlisting> | instructions.<tag class="endtag">para</tag></programlisting> | ||||
<para xml:lang="en">When an element is too long to fit on the remainder of a | <para xml:lang="en">When an element is too long to fit on the remainder of a | ||||
line without wrapping, moving the start tag to the next line | line without wrapping, moving the start tag to the next line | ||||
can make the source easier to read. In this example, the | can make the source easier to read. In this example, the | ||||
<literal>systemitem</literal> element has been moved to the | <literal>systemitem</literal> element has been moved to the | ||||
next line to avoid wrapping and indenting:</para> | next line to avoid wrapping and indenting:</para> | ||||
<programlisting><tag class="starttag">para</tag>With file flags, even | <programlisting xml:lang="en"><tag class="starttag">para</tag>With file flags, even | ||||
<tag class="starttag">systemitem class="username"</tag>root<tag class="endtag">systemitem</tag> can be | <tag class="starttag">systemitem class="username"</tag>root<tag class="endtag">systemitem</tag> can be | ||||
prevented from removing or altering files。<tag class="endtag">para</tag></programlisting> | prevented from removing or altering files.<tag class="endtag">para</tag></programlisting> | ||||
<para xml:lang="en">Configurations to help various text editors conform to | <para xml:lang="en">Configurations to help various text editors conform to | ||||
these guidelines can be found in | these guidelines can be found in | ||||
<xref linkend="editor-config"/>.</para> | <xref linkend="editor-config"/>.</para> | ||||
</sect2> | </sect2> | ||||
<sect2 xml:id="writing-style-tag-style"> | <sect2 xml:id="writing-style-tag-style"> | ||||
<title>標籤風格</title> | <title>標籤風格</title> | ||||
<sect3 xml:id="writing-style-tag-style-spacing"> | <sect3 xml:id="writing-style-tag-style-spacing"> | ||||
<title>標籤間距</title> | <title>標籤間距</title> | ||||
<para>同一縮排階層的標籤要以空一行來做區隔,而不同縮排階層的則不必。 比如:</para> | <para>同一縮排階層的標籤要以空一行來做區隔,而不同縮排階層的則不必。比如:</para> | ||||
<informalexample> | <informalexample> | ||||
<programlisting><tag class="starttag">article lang='en'</tag> | <programlisting xml:lang="en"><tag class="starttag">article lang='en'</tag> | ||||
<tag class="starttag">articleinfo</tag> | <tag class="starttag">articleinfo</tag> | ||||
<tag class="starttag">title</tag>NIS<tag class="endtag">title</tag> | <tag class="starttag">title</tag>NIS<tag class="endtag">title</tag> | ||||
<tag class="starttag">pubdate</tag>October 1999<tag class="endtag">pubdate</tag> | <tag class="starttag">pubdate</tag>October 1999<tag class="endtag">pubdate</tag> | ||||
<tag class="starttag">abstract</tag> | <tag class="starttag">abstract</tag> | ||||
<tag class="starttag">para</tag>... | <tag class="starttag">para</tag>... | ||||
... | ... | ||||
Show All 14 Lines | <tag class="starttag">para</tag>It is also possible to journal the boot disk of a &os; | ||||
<tag class="endtag">sect1</tag> | <tag class="endtag">sect1</tag> | ||||
<tag class="endtag">article</tag></programlisting> | <tag class="endtag">article</tag></programlisting> | ||||
</informalexample> | </informalexample> | ||||
</sect3> | </sect3> | ||||
<sect3 xml:id="writing-style-tag-style-separating"> | <sect3 xml:id="writing-style-tag-style-separating"> | ||||
<title>分隔標籤</title> | <title>分隔標籤</title> | ||||
<para>像是 <tag>itemizedlist</tag> 這類的標籤事實上本身不含任何文字資料,必須得由其他標籤來補充內文。 這類的標籤會獨用一整行。</para> | <para>像是 <tag>itemizedlist</tag> 這類的標籤事實上本身不含任何文字資料,必須得由其他標籤來補充內文。這類的標籤會獨用一整行。</para> | ||||
<para>另外,像是 <tag>para</tag> 及 <tag>term</tag> 這類的標籤並不需搭配其他標籤, 就可附上文字資料,並且在標籤後面的<emphasis>同一行</emphasis>內即可立即寫上這些內文。</para> | <para>另外,像是 <tag>para</tag> 及 <tag>term</tag> 這類的標籤並不需搭配其他標籤,就可附上文字資料,並且在標籤後面的<emphasis>同一行</emphasis>內即可立即寫上這些內文。</para> | ||||
<para>當然,這兩類的標籤結尾時也是跟上面道理相同。</para> | <para>當然,這兩類的標籤結尾時也是跟上面道理相同。</para> | ||||
<para>不過,當上述這兩種標籤混用時,會有很明顯的困擾。</para> | <para>不過,當上述這兩種標籤混用時,會有很明顯的困擾。</para> | ||||
<para>當第一類標籤的後面接上第二類標籤的話, 那麼要把這兩類標籤各自分行來寫。 後者標籤的段落, 也是需要做適當縮排調整。</para> | <para>當第一類標籤的後面接上第二類標籤的話,那麼要把這兩類標籤各自分行來寫。後者標籤的段落,也是需要做適當縮排調整。</para> | ||||
<para>而第二類標籤結尾時,可以與第一類標籤的結尾放在同一行。</para> | <para>而第二類標籤結尾時,可以與第一類標籤的結尾放在同一行。</para> | ||||
</sect3> | </sect3> | ||||
</sect2> | </sect2> | ||||
<sect2 xml:id="writing-style-whitespace-changes"> | <sect2 xml:id="writing-style-whitespace-changes"> | ||||
<title>空白變更</title> | <title>空白變更</title> | ||||
<para><emphasis>在提交修改時,請別在修改內容的同時也一起更改編排格式</emphasis>。</para> | <para><emphasis>在提交修改時,請別在修改內容的同時也一起更改編排格式</emphasis>。</para> | ||||
<para>如此一來,像是翻譯團隊才能迅速找出你改了哪些內容, 而不用費心思去判斷該行的改變,是由於格式重排或者內容異動。</para> | <para>如此一來,像是翻譯團隊才能迅速找出你改了哪些內容,而不用費心思去判斷該行的改變,是由於格式重排或者內容異動。</para> | ||||
<para>舉例說明,若要在某段加上兩個句子,如此一來該段落的某行勢必會超出 80 縱列,這時請先 commmit 修改。 接著,再修飾過長行落的換行,然後再次 commit 之。 而第二次的 commit 紀錄,請明確說明這只是 whitespace-only (修改空白而已) 的更改,如此一來,翻譯團隊就可以忽略第二次 commit 了 。</para> | <para>舉例說明,若要在某段加上兩個句子,如此一來該段落的某行勢必會超出 80 縱列,這時請先 commmit 修改。接著,再修飾過長行落的換行,然後再次 commit 之。而第二次的 commit 紀錄,請明確說明這只是 whitespace-only (修改空白而已) 的更改,如此一來,翻譯團隊就可以忽略第二次 commit 了 。</para> | ||||
</sect2> | </sect2> | ||||
<sect2 xml:id="writing-style-nonbreaking-space"> | <sect2 xml:id="writing-style-nonbreaking-space"> | ||||
<title>不斷行空白</title> | <title>不斷行空白</title> | ||||
<para>請避免一些情況下的斷行:造成版面醜醜的、或是須連貫表達的同一句子。 斷行的情況會隨所閱讀的工具不同而有所不同。 尤其是透過純文字瀏覽器來看 HTML 說明文件時會更明顯看到類似下面這樣不好的編排段落:</para> | <para>請避免一些情況下的斷行:造成版面醜醜的、或是須連貫表達的同一句子。斷行的情況會隨所閱讀的工具不同而有所不同。尤其是透過純文字瀏覽器來看 HTML 說明文件時會更明顯看到類似下面這樣不好的編排段落:</para> | ||||
<literallayout class="monospaced">Data capacity ranges from 40 MB to 15 | <literallayout class="monospaced" xml:lang="en">Data capacity ranges from 40 MB to 15 | ||||
GB。 Hardware compression …</literallayout> | GB. Hardware compression …</literallayout> | ||||
<para>請使用 <literal>&nbsp;</literal> 以避免同句子之間的斷行, 以下示範如何使用不斷行空白:</para> | <para>請使用 <literal>&nbsp;</literal> 以避免同句子之間的斷行,以下示範如何使用不斷行空白:</para> | ||||
<itemizedlist> | <itemizedlist> | ||||
<listitem> | <listitem> | ||||
<para>在數字與單位之間:</para> | <para>在數字與單位之間:</para> | ||||
<programlisting>57600&nbsp;bps</programlisting> | <programlisting>57600&nbsp;bps</programlisting> | ||||
</listitem> | </listitem> | ||||
<listitem> | <listitem> | ||||
<para>在程式名稱與版號之間:</para> | <para>在程式名稱與版號之間:</para> | ||||
<programlisting>&os;&nbsp;9.2</programlisting> | <programlisting>&os;&nbsp;9.2</programlisting> | ||||
</listitem> | </listitem> | ||||
<listitem> | <listitem> | ||||
<para>多個單字的名稱之間 (在套用到如 <quote>The FreeBSD Brazilian Portuguese Documentation Project</quote> 這種由三到四個字所組成的名稱時請小心):</para> | <para>多個單字的名稱之間 (在套用到如 <quote>The FreeBSD Brazilian Portuguese Documentation Project</quote> 這種由三到四個字所組成的名稱時請小心):</para> | ||||
<programlisting>Sun&nbsp;Microsystems</programlisting> | <programlisting>Sun&nbsp;Microsystems</programlisting> | ||||
</listitem> | </listitem> | ||||
</itemizedlist> | </itemizedlist> | ||||
</sect2> | </sect2> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="writing-style-word-list"> | <sect1 xml:id="writing-style-word-list"> | ||||
<title>詞彙表</title> | <title>詞彙表</title> | ||||
<para>以下詞彙表列出使用在 FreeBSD 文件的正確拼法和大小寫。 若找不到要找的詞彙,請詢問 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc">FreeBSD documentation project mailing list</link> 。</para> | <para>以下詞彙表列出使用在 FreeBSD 文件的正確拼法和大小寫。若找不到要找的詞彙,請詢問 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc">FreeBSD documentation project mailing list</link> 。</para> | ||||
<informaltable frame="none" pgwide="0"> | <informaltable frame="none" pgwide="0"> | ||||
<tgroup cols="3"> | <tgroup cols="3"> | ||||
<thead> | <thead> | ||||
<row> | <row> | ||||
<entry>字詞</entry> | <entry>字詞</entry> | ||||
<entry>XML 程式碼</entry> | <entry>XML 程式碼</entry> | ||||
<entry>備註</entry> | <entry>備註</entry> | ||||
▲ Show 20 Lines • Show All 418 Lines • ▼ Show 20 Lines | <para><link xlink:href="http://www.w3.org/TR/REC-html40/">The HTML 4.0 規格表</link></para> | ||||
</itemizedlist> | </itemizedlist> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="see-also-docbook"> | <sect1 xml:id="see-also-docbook"> | ||||
<title>DocBook</title> | <title>DocBook</title> | ||||
<itemizedlist> | <itemizedlist> | ||||
<listitem> | <listitem> | ||||
<para><link xlink:href="http://www.oasis-open.org/docbook/">The DocBook 技術委員會</link>, DocBook DTD的維護者</para> | <para><link xlink:href="http://www.oasis-open.org/docbook/">The DocBook 技術委員會</link>,DocBook DTD的維護者</para> | ||||
</listitem> | </listitem> | ||||
<listitem> | <listitem> | ||||
<para><link xlink:href="http://www.docbook.org/">DocBook:The Definitive Guide</link>, DocBook DTD 的線上說明文件。</para> | <para><link xlink:href="http://www.docbook.org/">DocBook:The Definitive Guide</link>,DocBook DTD 的線上說明文件。</para> | ||||
</listitem> | </listitem> | ||||
<listitem> | <listitem> | ||||
<para xml:lang="en"><link xlink:href="http://docbook.sourceforge.net/">The DocBook | <para xml:lang="en"><link xlink:href="http://docbook.sourceforge.net/">The DocBook | ||||
Open Repository</link> contains DSSSL stylesheets and | Open Repository</link> contains DSSSL stylesheets and | ||||
other resources for people using DocBook</para> | other resources for people using DocBook</para> | ||||
</listitem> | </listitem> | ||||
</itemizedlist> | </itemizedlist> | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | <para xml:lang="en">These examples are not exhaustive—they do not contain | ||||
<uri xlink:href="http://svnweb.FreeBSD.org/doc/">http://svnweb.FreeBSD.org/doc/</uri>.</para> | <uri xlink:href="http://svnweb.FreeBSD.org/doc/">http://svnweb.FreeBSD.org/doc/</uri>.</para> | ||||
<sect1 xml:id="examples-docbook-book"> | <sect1 xml:id="examples-docbook-book"> | ||||
<title>DocBook <tag>book</tag></title> | <title>DocBook <tag>book</tag></title> | ||||
<example> | <example> | ||||
<title>DocBook <tag>book</tag></title> | <title>DocBook <tag>book</tag></title> | ||||
<programlisting><!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" | <programlisting xml:lang="en"><!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" | ||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd"> | "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd"> | ||||
<tag class="starttag">book xmlns="http://docbook.org/ns/docbook" | <tag class="starttag">book xmlns="http://docbook.org/ns/docbook" | ||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" | xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" | ||||
xml:lang="en"</tag> | xml:lang="en"</tag> | ||||
<tag class="starttag">info</tag> | <tag class="starttag">info</tag> | ||||
<tag class="starttag">title</tag>An Example Book<tag class="endtag">title</tag> | <tag class="starttag">title</tag>An Example Book<tag class="endtag">title</tag> | ||||
Show All 12 Lines | <tag class="endtag">address</tag> | ||||
<tag class="endtag">author</tag> | <tag class="endtag">author</tag> | ||||
<tag class="starttag">copyright</tag> | <tag class="starttag">copyright</tag> | ||||
<tag class="starttag">year</tag>2000<tag class="endtag">year</tag> | <tag class="starttag">year</tag>2000<tag class="endtag">year</tag> | ||||
<tag class="starttag">holder</tag>Copyright string here<tag class="endtag">holder</tag> | <tag class="starttag">holder</tag>Copyright string here<tag class="endtag">holder</tag> | ||||
<tag class="endtag">copyright</tag> | <tag class="endtag">copyright</tag> | ||||
<tag class="starttag">abstract</tag> | <tag class="starttag">abstract</tag> | ||||
<tag class="starttag">para</tag>If your book has an abstract then it should go here。<tag class="endtag">para</tag> | <tag class="starttag">para</tag>If your book has an abstract then it should go here.<tag class="endtag">para</tag> | ||||
<tag class="endtag">abstract</tag> | <tag class="endtag">abstract</tag> | ||||
<tag class="endtag">info</tag> | <tag class="endtag">info</tag> | ||||
<tag class="starttag">preface</tag> | <tag class="starttag">preface</tag> | ||||
<tag class="starttag">title</tag>Preface<tag class="endtag">title</tag> | <tag class="starttag">title</tag>Preface<tag class="endtag">title</tag> | ||||
<tag class="starttag">para</tag>Your book may have a preface, in which case it should be placed | <tag class="starttag">para</tag>Your book may have a preface, in which case it should be placed | ||||
here。<tag class="endtag">para</tag> | here.<tag class="endtag">para</tag> | ||||
<tag class="endtag">preface</tag> | <tag class="endtag">preface</tag> | ||||
<tag class="starttag">chapter</tag> | <tag class="starttag">chapter</tag> | ||||
<tag class="starttag">title</tag>My First Chapter<tag class="endtag">title</tag> | <tag class="starttag">title</tag>My First Chapter<tag class="endtag">title</tag> | ||||
<tag class="starttag">para</tag>This is the first chapter in my book。<tag class="endtag">para</tag> | <tag class="starttag">para</tag>This is the first chapter in my book.<tag class="endtag">para</tag> | ||||
<tag class="starttag">sect1</tag> | <tag class="starttag">sect1</tag> | ||||
<tag class="starttag">title</tag>My First Section<tag class="endtag">title</tag> | <tag class="starttag">title</tag>My First Section<tag class="endtag">title</tag> | ||||
<tag class="starttag">para</tag>This is the first section in my book。<tag class="endtag">para</tag> | <tag class="starttag">para</tag>This is the first section in my book.<tag class="endtag">para</tag> | ||||
<tag class="endtag">sect1</tag> | <tag class="endtag">sect1</tag> | ||||
<tag class="endtag">chapter</tag> | <tag class="endtag">chapter</tag> | ||||
<tag class="endtag">book</tag></programlisting> | <tag class="endtag">book</tag></programlisting> | ||||
</example> | </example> | ||||
</sect1> | </sect1> | ||||
<sect1 xml:id="examples-docbook-article"> | <sect1 xml:id="examples-docbook-article"> | ||||
<title>DocBook <tag>article</tag></title> | <title>DocBook <tag>article</tag></title> | ||||
<example> | <example> | ||||
<title>DocBook <tag>article</tag></title> | <title>DocBook <tag>article</tag></title> | ||||
<programlisting><!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" | <programlisting xml:lang="en"><!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" | ||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd"> | "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd"> | ||||
<tag class="starttag">article xmlns="http://docbook.org/ns/docbook" | <tag class="starttag">article xmlns="http://docbook.org/ns/docbook" | ||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" | xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" | ||||
xml:lang="en"</tag> | xml:lang="en"</tag> | ||||
<tag class="starttag">info</tag> | <tag class="starttag">info</tag> | ||||
<tag class="starttag">title</tag>An Example Article<tag class="endtag">title</tag> | <tag class="starttag">title</tag>An Example Article<tag class="endtag">title</tag> | ||||
Show All 12 Lines | <tag class="endtag">address</tag> | ||||
<tag class="endtag">author</tag> | <tag class="endtag">author</tag> | ||||
<tag class="starttag">copyright</tag> | <tag class="starttag">copyright</tag> | ||||
<tag class="starttag">year</tag>2000<tag class="endtag">year</tag> | <tag class="starttag">year</tag>2000<tag class="endtag">year</tag> | ||||
<tag class="starttag">holder</tag>Copyright string here<tag class="endtag">holder</tag> | <tag class="starttag">holder</tag>Copyright string here<tag class="endtag">holder</tag> | ||||
<tag class="endtag">copyright</tag> | <tag class="endtag">copyright</tag> | ||||
<tag class="starttag">abstract</tag> | <tag class="starttag">abstract</tag> | ||||
<tag class="starttag">para</tag>If your article has an abstract then it should go here。<tag class="endtag">para</tag> | <tag class="starttag">para</tag>If your article has an abstract then it should go here.<tag class="endtag">para</tag> | ||||
<tag class="endtag">abstract</tag> | <tag class="endtag">abstract</tag> | ||||
<tag class="endtag">info</tag> | <tag class="endtag">info</tag> | ||||
<tag class="starttag">sect1</tag> | <tag class="starttag">sect1</tag> | ||||
<tag class="starttag">title</tag>My First Section<tag class="endtag">title</tag> | <tag class="starttag">title</tag>My First Section<tag class="endtag">title</tag> | ||||
<tag class="starttag">para</tag>This is the first section in my article。<tag class="endtag">para</tag> | <tag class="starttag">para</tag>This is the first section in my article.<tag class="endtag">para</tag> | ||||
<tag class="starttag">sect2</tag> | <tag class="starttag">sect2</tag> | ||||
<tag class="starttag">title</tag>My First Sub-Section<tag class="endtag">title</tag> | <tag class="starttag">title</tag>My First Sub-Section<tag class="endtag">title</tag> | ||||
<tag class="starttag">para</tag>This is the first sub-section in my article。<tag class="endtag">para</tag> | <tag class="starttag">para</tag>This is the first sub-section in my article.<tag class="endtag">para</tag> | ||||
<tag class="endtag">sect2</tag> | <tag class="endtag">sect2</tag> | ||||
<tag class="endtag">sect1</tag> | <tag class="endtag">sect1</tag> | ||||
<tag class="endtag">article</tag></programlisting> | <tag class="endtag">article</tag></programlisting> | ||||
</example> | </example> | ||||
</sect1> | </sect1> | ||||
</appendix> | </appendix> | ||||
<index/> | <index/> | ||||
</book> | </book> |