此處已屬廢坑

= . = 此處已屬廢坑 = . =

2007年4月13日 星期五

MovableType 俄文化 (Russification)

從學俄文到會看俄文的那一天起, 我就在想一件事, 我想把我的 MT 俄文化, 在 MT 2.x 版繁體中文化的 pm 檔是 Jedi 做的, 所以在 MT 的 l10n 中有繁體中文的選擇, 不過由於 2.x 版在 MT 版本升級為 3.0 暨商業化後, 關於 2.x 版本的支援就此終止, 隨著時日逐漸久遠, 網路上越來越少人討論關於 2.x 的修訂, 也由於商業化, 許多人也早在幾年前就跳到其他的 blog 軟體平台了.

所以俄文化這部份只有兩條路: 1. 自救, 2. 放棄.

不過因為我要做的並非整個平台的俄文化, 只是要發佈出來的檔案標題部份是俄文, 這部份自救的可能性比較大, 而如今也幾乎是算完成, 惟獨日期的部份.

這部份斷斷續續的在網路上找, 中文的資料, 沒人會去研究俄文化的問題, 從英文的資料找, 卻不知道該如何定關鍵字, 從俄文的資料去翻, 似乎 blog 文化在俄國社會中還未蓬勃發展, 且其實這幾年許多的空間供應商也都會推出免費 blog 的申請, 只要幾個步驟, 傻瓜安裝法即可完成用戶端這方的介面, 且 MT 3.x 版提供免費的單人版本, 除非是遇到我家的狀況, 對大多數人來說這版本以及 MT 所提供的服務都足以滿足需求, 也就更少人在 MT 2.x 板上投注精神了.

簡單來說, 目前俄文化最大的問題在於 "日期", 所幸今天在俄文的網站上看到一線曙光, 在 "Русификация MovableType" 文章中就清楚的指到這部分.

Русификация MovableType состоит из таких шагов
MT 俄文化需要以下步驟:

  1. Русификация дат (日期的俄文化)
  2. Русификация имен файлов для dirify (檔案命名的俄文化)
  3. Перевод темплейтов и системных сообщений (樣板的翻譯與系統的溝通)

Первые два пункта требуют правок кода, каковые правки и были сделаны. Все действия производились над MovableType 3.33
前面兩點需要程式碼的修正. 以上所有的步驟都是在 MT 3.33 版本上被執行.

文章中提到幾個要點:

  • UTF-8 и только он
    UTF-8 的環境

    包括 Apache 上的設定以及 MT 上所有相關的設定.
    修改 mt-config.cgi,

    MailEncoding utf-8

    這個步驟若沒有設定, 會影響所有的來信 (關於迴響, 以及來自於 trackbacks 的通知), 將會以 ISO-8859-1 的編碼遞送, 收到的信件會以問號符號代替俄文字母.

    Раз MT предлагает нам UTF-8, значит нужно пользоваться. Единственное изменение, которое нужно внести в настройки по-умолчанию в этом месте, это добавить в mt-config.cgi строчку

    MailEncoding utf-8

    Без этой настройки вся приходящая почта (о комментариях, от trackbacks) будет как-бы в ISO-8859-1, со знаками вопроса вместо русских букв.

  • Неделя начинается в понедельник
    週由星期一開始

    在俄國 (比方說法國也是) 一週的第一天是星期一. 可是 MT 的計算日曆是寫死在 code 當中而無法更改. 幸運地, 要修改這部份很容易, 只要從 Util.pm 以及 MTUtil.php 上修改一行程式. 修正 calendar.tmpl 的標準 (重新挪動行列, 不是翻譯.)

    * 不過台灣週的開始也是由星期日開始 (? 這部分我很懷疑, 我總覺得台灣是聯合國, 高興從哪開始, 好像都有人這麼幹. 所以在不影響我家老公 blog 運作情況下, 跳過此步驟.)

  • Русские названия месяцев
    月份名稱的俄文化, 包括日期格式

    在網誌組態, 偏好設定中, 顯示日期用的語言 Date Language, 增加 Russian (俄羅斯) 的選項.

    這個部份總共要修改幾個檔案, 包括:

    文章中的內容是以修改義大利文版本的 Util.pm 做為範例, 不過以我家的電腦中, 已經有近十種語言的情況下 (雖然會用的就那幾樣), 選單的內容不以 "修改" 來增加, 而是直接在 "義大利文" 之下增加 "俄文 Russian" 的選項為主.


    'ru' => [ (
    [ ('Воскресенье', 'Понедельник', 'Вторник', 'Среда',
    'Четверг', 'Пятница', 'Суббота')],
    [ ('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль',
    'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь')],
    [ ('AM','PM'),
    "%d.%m.%y %H:%M",
    "%d.%m.%y",]

    另外, 因為 MT 有 L10N 支援, 我家的 MT 用的就是 Jedi 的 zh_TW.pm 中文化檔案, 所以也要在這個檔案中將相關的訊息指給系統知道.

    • zh_TW.pm - 位在 Lib/MT/l10n/ 之下, 一樣以 Italian (it) 當指標, 將 'Russian' => '俄語' 這行加進去.

    到此, 俄文的日期設定算是完成, 至於日期格式的部分, 俄國的習慣 (我從網站上看的) 是 "星期, DD.MM.YYYY"

    написано 12 Декабрь 2006

    По совету Влада Головача выбираем в качестве Date Language (меню Settings) итальянский язык. Это даст нам даты записей в формате DD.MM.YYYY и итальянские названия месяцев в архиве и над календарем. Я небольшой любитель цифровых дат, но они - куда меньшее зло чем "написано 12 Декабрь 2006", а склонять имена месяцев MT не умеет.
    Следующим шагом нужно перевести названия месяцев (и, до кучи, дней недели) для итальянского языка на русский. Это опять делается патчем для Util.pm и MTUtil.php

    В результате выбора итальянского языка для "Date Format", он появится еще и в теге <language> в RSS-экспорте. Потому что это вовсе не Date Format, а вообще язык блога. Ну да из темплейта index.xml можно и руками удалить (патч не прилагается)

  • Имена файлов для dirify
    dirify 檔案的命名

    (此步驟跳過, 俄文與中文一樣都有這個困擾, 所以無解))

    http://blog.lexa.ru/2007/01/01/rusifikacija_movabletype.html

    rusifikacija_movabletype 就是 dirify 在做的事, 如果是英語系國家, 這部份沒任何困擾, 直接可以抓文章 archive 標題當作網頁的檔名, 可是中文涉及到編碼的問題, 我們的辦法是以資料庫的文章號碼當作檔名, 來略過這個困擾, 所以同樣的俄文也是如此.

  • Русские сообщения в темплейтахх
    樣板 template 的俄文化宣告

    這部份包括所有的索引 (index), 彙整 (archives) 檔案都必須將相關字換成俄文, 這包括:

    • 尋找站內 = Поиск в блоге
    • 分類 = теги
    • 靜態連結 = (постоянная) ссылка
    • 迴響 = (последние) комментарии
    • Trackback
    • 作者 = авторы
    • 匯整 = архивы
    • 最新文章 = последнее (статья) / последние записи
    • 留下迴響 добавить комментарий
    • 名字 = имя
    • url
    • email
    • 記住我的資訊 = запомнить меня
    • подписаться на ответы 送出迴響
    • 迴響 (允許使用 HTML 標籤) = комментарий: (можно использовать HTML теги)/ (HTML-теги разрешены)
    • 不允許 = нельзя использовать HTML теги (?)
  • Все патчи вместе
    相關 patch

到此, 這篇文章算是翻譯完了, 重新開啟 MT, 應該如期望中能夠見到日期語言的部分增加俄文選項, 如果有人也按照我的步驟做了, 肯定如我一樣失望了, 問題在於完成了所有的 pm 檔案的設定, 卻沒有做最關鍵的一個部份, 就是產生 "偏好" 頁面很重要的 tmpl 當中的下拉式選單並沒有增加俄文這個選項.

這個問題, 在這篇原始文章的迴響中, 有人提到也解決了.

А затем в tmpl/cms/cfg_prefs.tmpl в нужном месте добавил строчку:
<option value="ru"<TMPL_IF NAME=LANGUAGE_RU> selected="selected"</TMPL_IF>><MT_TRANS phrase="Russian"<>/option<
После в настройках выбрал нужный язык.

修改 tmpl/cms/cfg_prefs.tmpl, 找到 Date Language 選項下的下拉式選單, 同樣以 Italian 做為指標, 將

<option value="ru"<TMPL_IF NAME=LANGUAGE_RU> selected="selected"</TMPL_IF<<>MT_TRANS phrase="Russian"<>/option>

這行加入, 重新載入 MT, 進入偏好設定中, 選定日期語言為 Russian.

開啟模板, 修改 index.php (這是我家的, 一般來說應該是: index.html), 在 <$MTEntryDate format="%A, %e.%B.%Y"$> 將日期格式改成引號中格式, 重建索引, 開啟 blog.

%A = 星期全稱;
%e = 一個月的第幾天;
%B = 月的全稱; 以四月為例: Апрель 是全稱, 若 %b 則是 Ар.
%Y = 四碼的西元

恭喜自己, 我終於達成我最想要的畫面了!

【參考資料】

Русификация MovableType
http://blog.lexa.ru/2007/01/01/rusifikacija_movabletype.html

沒有留言:

張貼留言

* 所有回應必經本人檢閱後發佈 *