Skip to content

rST 特殊語法注意事項

Payon edited this page Dec 30, 2023 · 4 revisions

關於雙斜線的使用時機

在翻譯字串中的 rst 特殊語法 (e.g. :mod:`os`) 旁有時會需要空格才能正常建置,但當不想在網頁 (html) 上顯示空格時就會需要用到雙斜線 \\

參閱 :mod:`os` 模組 為例:

PO 譯文寫法 html 頁面上的長相 備註
參閱 :mod:`os` 模組 參閱 os 模組 這是正常寫法,os 部分變成超連結
參閱:mod:`os` 模組 build failed sphinx 認不出特殊語法
參閱:mod:`os`模組 build failed sphinx 認不出特殊語法
參閱 :mod:`os`模組 build failed sphinx 認不出特殊語法
參閱\\ :mod:`os` 模組 參閱os 模組 build 成功(因為前有 \\ ),但顯示上中英文間應要有空格

有時候特殊語法是可能 render 出中文字的

PO 譯文寫法 html 頁面上的長相 備註
一個 :term:`file object`。 一個 file object file object 部分變成超連結
一個\\ :term:`檔案物件 <file object>`。 一個檔案物件 檔案物件部分變成超連結,
且不希望中文字間有空白
參考 `wiki 文章 <https://wiki.com/...>`_\\ 中 參考 wiki 文章 特殊語法後不希望有空白
,故加上 \\

關於 rST 的常見問題

翻譯文件的時候,在遇到 rST 語法的時候,經常遇到一些問題,這個章節就各種例外狀態做一個統整

遇到全型逗號全型句號全型冒號等標點符號時,可以正常使用 rST 語法,我們可以觀察上個章節的例子:

PO 譯文寫法 html 頁面上的長相
一個 :term:`file object`。 一個 file object

本例子的 rST 特殊語法 :term:`file object`,在遇到全型句號時可以照正常的規則使用,即可以根據狀況單純使用空格或不使用空格隔開 rST 語法與標點符號。

但如果標點符號是全型括號時,就會引發錯誤:

PO 譯文寫法 html 頁面上的長相
一個 :term:`file object`( # build failed
一個 :term:`file object`\\( 一個 file object

因此在翻譯途中,若是遇到全型括號與 rST 語法同時出現時,就需要特別注意。

更簡潔的 rST 的 literal block 標記語法

po file 中看到原文以 :: 結尾時,只要像以下這樣翻譯,就能顯示全形冒號並且同時成功標記接下來的段落是一個 literal block:

msgid "blah blah::"
msgstr "blah blah: ::"

也就是當原文以 :: 結尾時,譯文內使用 : ::(全形冒號 x1+空格 x1+半形冒號 x2)就可以了。