舊文件

此處文件僅供參考,請自行考量時效性與適用程度,其他庫藏文件請參考文件頁面
我們亟需您的協助,進行共筆系統搬移、及文件整理工作,詳情請查閱參與我們

「使用者:Xacid」修訂間的差異

出自 MozTW Wiki

Nvu 0.90 中文化
Nvu 0.90 中文化: --小修飾
行 6: 行 6:
 
piaip 之前已經製作了 [http://moztw.org/dls/nvu/jaronly/0.50/en-US.jar 0.50 版的 locale 檔] ,
 
piaip 之前已經製作了 [http://moztw.org/dls/nvu/jaronly/0.50/en-US.jar 0.50 版的 locale 檔] ,
 
就可以用 MozLCDB 把之前的翻譯成果匯入資料庫,不過還需要 0.50 的英文語系檔,要自己到 [http://www.nvu.com Nvu]
 
就可以用 MozLCDB 把之前的翻譯成果匯入資料庫,不過還需要 0.50 的英文語系檔,要自己到 [http://www.nvu.com Nvu]
下載 Nvu 0.50 、解壓縮取出英文 en-US.jar 。抓完 MozLCDB 和中英文 0.50 的 locale 以後全部解壓縮到 '''mozlcdb/''' ,
+
下載 Nvu 0.50 、解壓縮取出英文 '''en-US.jar''' 。抓完 MozLCDB 和中英文 0.50 的 locale 以後全部解壓縮到 '''mozlcdb/''' ,
 
中英的 locale 分別放在 '''mozlcdb/zh-TW/''', '''mozlcdb/en-US/''' ,再下一層目錄放的就是 '''global/''' 等資料夾。然後執行:
 
中英的 locale 分別放在 '''mozlcdb/zh-TW/''', '''mozlcdb/en-US/''' ,再下一層目錄放的就是 '''global/''' 等資料夾。然後執行:
  

於 2005年3月20日 (日) 17:32 的修訂

其實不知道要寫什麼,就隨便放一些筆記。

Nvu 0.90 中文化

試著使用 piaip 提供的工具 MozLCDB 進行中文化的工作, 的確是方便很多,比起之前一堆 *.dtd, *.properties 弄得頭昏眼花好多了。以 Nvu 為例, piaip 之前已經製作了 0.50 版的 locale 檔 , 就可以用 MozLCDB 把之前的翻譯成果匯入資料庫,不過還需要 0.50 的英文語系檔,要自己到 Nvu 下載 Nvu 0.50 、解壓縮取出英文 en-US.jar 。抓完 MozLCDB 和中英文 0.50 的 locale 以後全部解壓縮到 mozlcdb/ , 中英的 locale 分別放在 mozlcdb/zh-TW/, mozlcdb/en-US/ ,再下一層目錄放的就是 global/ 等資料夾。然後執行:

$ perl mozlcdb.pl -n en-US zh-TW

如此可產生 mozlcdb.txtcurrent.txt 。 mozlcdb.txt 是詞庫,紀錄所有翻譯過的詞 (glossary) , current.txt 則存放待翻譯的部份;當然這邊 piaip 已經全部翻完了。詞庫匯入以後剛剛的 en-US, zh-TW 都可以砍了。 接著是匯入 0.90 的 locale ,把 0.90 的 en-US.jar 解壓縮到 mozlcdb/ ,產生的 locale/ 底下就是 global/ , 所以執行:

$ perl mozlcdb.pl -i locale/

這樣就匯入 0.90 的詞庫了,再看看 glossary 的內容,之前匯入的翻譯還在,也有些是新的;而 current.txt 的內容則完全是沒翻譯過的。 這時候就可以開始編輯 current.txt ,格式很簡單, ";" 開頭的都是註解。使用熟悉的 UTF-8 文字編輯器把中文填上去就可以, 我這時候才發現 vim 可以自動區塊化編輯:

; [MozLCDB] mozilla localization database: current editing
; Get MozLCDB from http://moztw.org/tools/mozlcdb/
; extra keys: cm=COMMENT and kp=1 (KEEP)

[communicator-platform/mac/platformCommunicatorOverlay.dtd]

id=redoCmd.label
en=Redo
tr=這裡就是放翻譯過的詞

翻完以後 (我當然是翻了兩個就急著想先看看結果啊) ,要把 glossary 更新,也就是把 current.txt 的翻譯內容更新到 mozlcdb.txt 裡, 執行:

$ perl mozlcdb.pl -u

發現產生一些編碼的問題,不過這些特殊的編碼通常是不常見的某種語言名稱,跟我要做的中文沒有關係,所以改用大 -U 強制執行。 然後就從資料庫匯出到 locale/ (裡面的 *.dtd, *.properties) :

$ perl mozlcdb.pl -X locale/

-x 應該是第一次建立的時候用,不過我從一開始 locale/ 就在那了,所以用大 -X 。 然後用 zip 格式包成 en-US.arj ,不要壓縮。接著覆蓋原來的語系檔:

$ zip -r0 en-US.arj locale/
$ cp en-US.arj ../nvu-0.90/chrome/

這樣就完成了。表面上似乎經過不少步驟,但是一想到 Mozilla, Firefox 這些程式有多少語系設定檔,這些步驟還是輕鬆得多; 更何況這樣做還可以在不同版本之間,甚至是 Mozilla 和 Netscape 這樣不同軟體之間維護語系檔,真的方便許多。 這真的是 piaip 多年經驗累積下來的智慧啊!

ps. 後面那幾個步驟我是用這個 script 來作啦:

#/bin/sh
# Usage:
#   upxzic.sh [ROOT] [locale].jar [path to nvu/chrome]

echo "updating..."
perl mozlcdb.pl -U
echo "exporting to $1..."
perl mozlcdb.pl -X $1
echo "zipping to $2..."
zip -9c -q $2 $1
echo "copying to $3..."
cp $2 $3

關於網頁技術

使用 getElementById("") 做選單

其實應該可以完全用 CSS 寫,可是用 CSS 好像就沒辦法點一次開、再點一次收。 這只是一個簡單的範例,有些地方怪怪的,實際用的時候可能需要用 CSS 美化。

<html>

<head>
<script language="JavaScript">
function modifyMenu(menuId){
        menu=document.getElementById(menuId);
        if( menu.style.display == "none")
                menu.style.display = "block";
        else
                menu.style.display = "none";
}
</script>
<style type="text/css">
#menu1, #menu2{
        display:none;
}
</style>
</head>

<body>
<div onmousedown="modifyMenu('menu1')">選單之一
<ul id="menu1">
<li>次選單一</li>
<li>次選單二</li>
<li>次選單三</li>
</ul></div>
<div onmousedown="modifyMenu('menu2')">選單之二
<ul id="menu2">
<li>次選單一</li>
<li>次選單二</li>
<li>次選單三</li>
</ul></div>
</body>

</html>

position:fixed 的使用

看到一個關於固定圖層的討論,麻煩的是 IE 不能用 position:fixed ,還會把 body 多加空的捲軸;而 Firefox 不能使用滑鼠滾輪捲動 overflow:scroll 製造的捲軸。於是很 dirty 的利用 IE 不能用的 selector ,製造出固定的圖層,而且在 Firefox 中也可以用滑鼠捲動。其實根本是純粹無聊, IE 沒有的東西不要管他就好了。

<html>
<head>
<style type="text/css">
<!--
body{
	padding:0;
	margin:0;
	overflow:auto;
}
#main{
	position:absolute;
	height:100%;
	width:100%;
	overflow:auto;
}
body > div#main{
	height:auto;
	overflow:visible;
}
#fixed{
	position:absolute;
	top:100px;
	right:100px;
	z-index:100;
	background-color:#aaaaff;
}
body > div#fixed{
	position:fixed;
}
-->
</style>
</head>

<body>
<div id="fixed">
	<h1>Fixed!</h1>
</div>
<div id="main">
*********************<br />
*********************<br />
*********************<br />
*********************<br />
(repeats)
</div>
</body>
</html>
個人工具