2010年11月25日 星期四

joomla元件sh404SEF製作中文化語言檔打包的方法並指定為中文語系的方法。

有些joomla元件(組件)的語言檔在有心人找到外國語言檔而辛苦將它本土化,然後再放回原程式裏打包成可直接安裝的多國語言元件,基本上只要如前面的幾編文章所提的方法,就大致已可完成很多元件(組件)的中文化方法了,而一般的元件的程式設計者最初規劃軟體時,也多數是寫成可以自動對應你的joomla系統的內定語系,而自動呈現該元件中有對應的該國語系,而這也就是所謂的多國語言檔元件,能夠使前台用戶在切換前台語系時,該元件(組件)也能改變語言(只要它有該語系的語言檔即可)。然而有些軟體就不是這麼簡單了,當你好不容易翻譯完本地的語系之後,也修改了.xml檔,安裝完的程式也有將你辛苦翻譯的語言檔安裝到joomla系統裏,可是該元件卻都還是只呈現原來的語系(通常是english),這類的軟體有的可以到後台的控制台去選語系,但也有一種是完全無法變法更改的,如expose gallery,以及sh404SEF,這類著名的元件,小弟花了很多時間,辛苦的將其語言檔翻譯成中文語系之後,卻無法運用,然而由於小弟的英文不好,翻譯的時間很長,也因為時間花太多了,所以當最後無法使用,實在很不爽,為此只好做一種中文化的方式,就是取代法,什麼意思呢?就是將保留原檔名(如english.ini,不另建一個名為taiwan.ini的檔案),而將裏面放的英文語系檔改為中文語系檔。有些元件在用了這樣的方式之後果然可以呈現中文語系,但是這樣做總還是覺得怪的怪,所以最後還是不得不進一步進到程式裏去做語言檔更改設定的方法,通常這種改法,網路上要找到更改的方法,好像很不易找到,例如我就想找到sh404SEF的設定更改方法,但找了很久,中英文與官方網站裏好像都沒有相闗的說明,最後我只好用土法鍊鋼的方法,去更改,首先強調,小弟我不會程式語法,也沒正式學過,所以只能憑直接覺得怎麼改而後去測試,底下的方法,用於只是改語系設定的方法應該能解決全部語系設定的問題:

首先在你安裝的joomla網站看一下你安裝好的元件是什麼語系,若是英文(在此僅以英文語系為例)

接著在你的windows pc裏將該元件解壓縮,看其英文語言檔的檔名為何,若是english.ini(也可能是english.php、en-GB.ini或en.php………反正就是要看出來就對了,可配合解開的檔案之根目錄裏的.xml檔裏的language字段部份)

接著找整個元件裏,與語系設定有關的程式,並修改其設定。底下以圖例詳細說明:

我是以ssh連上linux server端,打入以下grep指令找相關字串。

(選擇用linux 的grep指令是因為我用它比較好找,windows底下若有好用的字串搜尋程式也可直接使用,只是我不知道,所以只好到linux下用grep指令)

以上述要將英文語系改設定為中文語系為例:我在要找的元件之目錄下,輸入grep –rw “english” *的指令

image

它找到

language/plugins/com_weblinks.php:  // english
language/plugins/com_letterman.php:  // english
language/plugins/com_content.php:  // english
language/plugins/com_smf.php:   // english
language/plugins/com_user.php:  // english
language/plugins/com_docman.php:  // english
language/plugins/com_newsfeeds.php:  // english
language/plugins/com_poll.php:  // english
language/plugins/com_magazine.php:  // english
language/plugins/com_search.php:  // english
language/plugins/com_comprofiler.php:  // english
language/plugins/com_registration.php:  // english
language/plugins/com_sobi2.php:  // english
language/plugins/com_rsgallery2.php:  // english
language/plugins/com_rd_rss.php:  // english
language/plugins/com_remository.php:  // english
language/plugins/com_myblog.php:  // english
language/plugins/com_virtuemart.php:  // english
language/plugins/com_fireboard.php:  // english
language/plugins/com_hotproperty.php:  // english
language/plugins/com_mtree.php:  // english
sh404sef.class.php:$GLOBALS['shMosConfig_lang']   = $lang->get('backwardlang', '
sh404sef.class.php:    include_once(sh404SEF_ADMIN_ABS_PATH.'language/english.ph

其中我判斷其影響設定的檔應是sh404sef.class.php這個程式。

於是我回到windows pc端將解壓的元件裏找到sh404sef.class.php檔並以文字編輯軟體修改。

以下圖為例找關鍵字english

image

將該字改為我的中文語系檔名,假若為taiwan.php

image

則將原english改為taiwan

 

****一般有關語言檔的設定,有時是指接指向檔名,有時也可能是用語言代碼。也就是除了english這個字之外,也要找en或en-GB等語系代碼字,所以搜尋修改時,要同時注意,將english、en或en-GB,改為你自行建立的語言檔的檔名或語系代碼(可能是taiwan、zh-TW或tw),原則上改完就會將內定的語系改為你要的了。

最後再打包起來(前提是安裝記錄檔.xml也要先改好),應該就可以安裝了。

image

如上圖全選(必須是.xml檔所在的根目錄)你的打包的內容,滑鼠按右鍵選擇壓縮所選的檔案,

image

壓縮格式選ZIP後(別的壓縮格式好像LINUX無法解開,至少目前我試過RAR是不行的,tar檔好像可以,我沒試,不知道),按確定,即完成打包工作。可進到joomla後台去做安裝測試了!

相關文章:

joomla套件語言檔辛苦中文化完之後,將其放入原始安裝檔內使其成為「可直接安裝」的多國語言版之補充說明
Joomla 1.5套件模組前台中文化的簡單方法(影片教學)
Joomla 1.5套件前台CB會員社群頁籤怪字中文化的簡單方法(影片教學)
如何自製含中文語言檔的直接安裝joomla延伸套件?
我的Joomla1.5延伸套件中文化方式
joomla套件(components、Extensions),繁體中文化教學,以joomdoc為例:

沒有留言: