2010年12月5日 星期日

joomla語言檔中文化檔名的取名規範,及其遵守之重要性!

先前我在文章裏提到有些語言檔中文化之後,可是元件本身安裝完,卻還是去捉英文的語言檔,以至於必須找到includ語言檔的相關程式,修改其預設的語言(通常是english)而將其改為你自己的語言檔之檔名(若你的語言檔檔名取為taiwan,則改為taiwan),然而這樣實在有違所謂的多國語言元件,因為實在不能讓一般使用者在自行安裝完,即呈現自己該國的語言。今天我發現若本土化的語言檔之檔名取得適當,則可不用再自行進到程式裏去更改設定,至少我在xmap這個元件裏遇到的狀況便是如此。我原先總是將繁體中文的語言檔取名為taiwan(若始英文的語言檔檔名為english),因為總覺得這樣才對應,然而實際用在xmap時,又遇到還是不會自動捉這個語言檔,於是我再將語言檔檔名改為zh-TW,然而程式還是沒捉到。本想進到admin.xmap.php這個程式裏,將其中的這一段的

 

// load language file
if( file_exists( $xmapComponentPath.DS.'language'.DS . $xmapLang . '.php') ) {
        require_once( $xmapComponentPath.DS.'language'.DS.$xmapLang.'.php' );
} else {
        if ($task != 'ajax_request') {
                echo 'Language file [ '. $xmapLang .' ] not found, using default language: english<br />';
        }
        $xmapLang = 'english';
        require_once( $xmapComponentPath.DS.'language'.DS.'english.php' );


最後一行的english.php改為zh-TW.php

    require_once( $xmapComponentPath.DS.'language'.DS.'zh-TW.php' );

然而這一次我有點想要嘗試別種可能性,於是我試著更改的是這一段的第六行,也就是下面這一行

echo 'Language file [ '. $xmapLang .' ] not found, using default language: english<br />';

改為

echo 'Language file [ '. $xmapLang .' ] not found, using default language: zh-TW<br />';

當我由後台進到xmap時,看到其上方(如下圖)的一段語引起我的注意:

image

Language file [ traditional_chinese ] not found, using default language: zh-TW

其中的traditional_chinese,是我從頭到尾都沒用過的詞,結果元件卻主動秀出這個語,這表示系統可能對於語言檔的檔名有固定的命名方式,於是我將zh-TW.php,改為traditional_chinese.php,也將admin.xmap.php,的設定,恢復回原來系統內定的狀況:

// load language file
if( file_exists( $xmapComponentPath.DS.'language'.DS . $xmapLang . '.php') ) {
        require_once( $xmapComponentPath.DS.'language'.DS.$xmapLang.'.php' );
} else {
        if ($task != 'ajax_request') {
                echo 'Language file [ '. $xmapLang .' ] not found, using default language: english<br />';
        }
        $xmapLang = 'english';
        require_once( $xmapComponentPath.DS.'language'.DS.'english.php' );

,然後我由後台進到xmap,看到就如下圖中的完成繁體中文化了!

image

於是我想到,之前很多我中文化的方式,有用到必須去改指向語言檔設定之方式,可能都是多餘的,其實可能只要我語言檔的取名符合joomla系統的內定的話,可能根本不用去做設定而能真正達到只要安裝的版本是有多國語系,就能在安裝完之後自動感應你的系統是什麼語系而呈現該語系的文字介面。目前已知繁體中文檔名對應英文檔名為english的是traditional_chinese,對此我大膽推測簡體中文應是simplified_chinese,至於這樣的推測是否正確,之後我測試完之後,會再來說明!

沒有留言: