LifeType 中文開發論壇

支援 => 使用與操作 => 主題作者是: Anonymous 於 四月 04, 2005, 10:51:52 下午



主題: 也是亂碼的問題?
作者: Anonymous四月 04, 2005, 10:51:52 下午
系統FC3,安裝plog1.0
模板使用預設的standard,沒有亂碼的問題(而且這個版面我喜歡,乾乾淨淨的)
但同事喜歡嘗試其他的模板,結果大部份另安裝的模板(全部吧),在日期方面都出現亂碼,例如,reic模板
 03 å??, 2005, 10:49 (四月)出現亂碼?

在apache的設定有將#AddDefaultCharset null加#註解

另一個問題,讓註冊者透過e-mail來啟動plog,寄給註冊者的mail出現亂碼?在ie瀏覽器,點選[檢視]→[編碼]→UTF-8,才能看到以下的中文字
程式碼:
請點選下面的連結來啟用你的網誌:: 
http://XXX.XXX.XXX.XX/summary.php?op=activeAccount&username=abc&activeCode=1e948640e43aab27c6cac77ad8c5d54e
祝你有個美好的一天!


主題: Re: 也是亂碼的問題?
作者: Eji四月 04, 2005, 11:08:32 下午
引用自: Anonymous
系統FC3,安裝plog1.0
模板使用預設的standard,沒有亂碼的問題(而且這個版面我喜歡,乾乾淨淨的)
但同事喜歡嘗試其他的模板,結果大部份另安裝的模板(全部吧),在日期方面都出現亂碼,例如,reic模板
 03 å??, 2005, 10:49 (四月)出現亂碼?


我有遇到同樣的問題,不過過去有解法了,感謝mark提到:
http://forum.lifetype.org.tw/index.php?topic=339.0

至於plog祭出的 mail 似乎真的都是UTF8....這比較麻煩orz


主題: 也是亂碼的問題?
作者: Anonymous四月 04, 2005, 11:16:36 下午
感謝,真的修改templates/XXXXX/post.template就好了,
但是要一個一個模板改,真的...........


主題: 也是亂碼的問題?
作者: Eji四月 04, 2005, 11:21:33 下午
引用自: Anonymous
感謝,真的修改templates/XXXXX/post.template就好了,
但是要一個一個模板改,真的...........


你可以用EMEditor之類的搜尋器,搜尋看看哪些需要修改.......


主題: 也是亂碼的問題?
作者: Horse四月 05, 2005, 12:04:34 上午
standard模板日期顯示不會出現亂碼,但亂碼出現在另一個地方
在資料夾建立檔案的日期出現亂碼,如下
created 05 å??, 2005 (四月)
程式碼:
templates/standard/post.template
h2 class="date">{$locale->formatDate($postDate,"%j %B, %Y")}</h2>


主題: 也是亂碼的問題?
作者: Horse四月 05, 2005, 12:18:46 上午
剛上去申請貴站測試的plog
發現standard模板的資料夾沒有出現亂碼,但少了〝月〞字
http://plogdev.markplace.net/index.php?op=ViewResource&blogId=18&resource=5.gif

也且我上傳的是gif動畫檔,上傳之後就不動了 (在哪兒可以設定成這樣)


主題: 也是亂碼的問題?
作者: bibicall四月 05, 2005, 01:23:20 上午
因年月日程式碼的大小寫分別代表不同的表達方式
在中文語系中又會因為空白字元的問題使得亂碼產生
我在0.32版就曾經用過兩種不同方法
第一就是不辭千辛萬苦的一個一個模版慢慢改
除了將小寫換成大寫之外,年月日的間隔也須加多幾個空白字元
有幾個模版原始的年月日間隔即使換了大寫,還會出現亂碼
加了空白字元拉長間隔就不會了

但是,我發現:人還是懶惰的
所以我用了算是畢其功於一役的作法
就是直接將中文語系檔中的年月日改成跟英語語系檔一樣
也就是不翻譯年月日的部分
這樣就不需要改所有的模版了 :-P
只是不知道這一招在1.0管不管用


主題: 也是亂碼的問題?
作者: Eji四月 05, 2005, 09:25:22 下午
引用自: bibicall
因年月日程式碼的大小寫分別代表不同的表達方式
在中文語系中又會因為空白字元的問題使得亂碼產生
我在0.32版就曾經用過兩種不同方法
所以我用了算是畢其功於一役的作法
就是直接將中文語系檔中的年月日改成跟英語語系檔一樣
也就是不翻譯年月日的部分
這樣就不需要改所有的模版了 :-P
只是不知道這一招在1.0管不管用


目前看來似乎不太管用..... :-#
我把語系表的部份改了,不過summary和實際上各個帳號裡面顯示的狀況都還是中文;
不知道是不是和cache有關,不過我記得我沒開啊....?

[Update]

好,強制reload"數次"之後,似乎是改成功了。:)
我還讓他掃了幾次語系檔的目錄....
不過不是每個帳號都順利改過去了,有些還卡在原來的"中文"上面,
說不定真的要等那些user更新內容才會套用到....

Http Cache有方便也有缺點,這回學到了。


主題: 也是亂碼的問題?
作者: markwu四月 06, 2005, 10:22:10 上午
引用自: bibicall
因年月日程式碼的大小寫分別代表不同的表達方式
在中文語系中又會因為空白字元的問題使得亂碼產生
我在0.32版就曾經用過兩種不同方法
第一就是不辭千辛萬苦的一個一個模版慢慢改
除了將小寫換成大寫之外,年月日的間隔也須加多幾個空白字元
有幾個模版原始的年月日間隔即使換了大寫,還會出現亂碼
加了空白字元拉長間隔就不會了

但是,我發現:人還是懶惰的
所以我用了算是畢其功於一役的作法
就是直接將中文語系檔中的年月日改成跟英語語系檔一樣
也就是不翻譯年月日的部分
這樣就不需要改所有的模版了 :-P
只是不知道這一招在1.0管不管用


管用的!只是我會建議用另一個方式,就不用動到語系檔。就是用 Smarty 內建的日期函數,作法如下,以文章時間為例:

{assign var="postDate" value=$post->getDateObject()}
{assign var="postUnixTime" value=$postDate->getUnixDate()}
{$postUnixTime|date_format:"%Y-%m-%dT%H:%M:%S"}Z

這樣出來的時間效果就是 2005-04-05T10:22:10Z

這樣的用法彈性比 formatDate 更大。因為 smarty 預設的語系是英文,你愛怎麼用就用了。

Mark


主題: 也是亂碼的問題?
作者: markwu四月 06, 2005, 10:23:32 上午
引用自: Eji
引用自: bibicall
因年月日程式碼的大小寫分別代表不同的表達方式
在中文語系中又會因為空白字元的問題使得亂碼產生
我在0.32版就曾經用過兩種不同方法
所以我用了算是畢其功於一役的作法
就是直接將中文語系檔中的年月日改成跟英語語系檔一樣
也就是不翻譯年月日的部分
這樣就不需要改所有的模版了 :-P
只是不知道這一招在1.0管不管用


目前看來似乎不太管用..... :-#
我把語系表的部份改了,不過summary和實際上各個帳號裡面顯示的狀況都還是中文;
不知道是不是和cache有關,不過我記得我沒開啊....?

[Update]

好,強制reload"數次"之後,似乎是改成功了。:)
我還讓他掃了幾次語系檔的目錄....
不過不是每個帳號都順利改過去了,有些還卡在原來的"中文"上面,
說不定真的要等那些user更新內容才會套用到....

Http Cache有方便也有缺點,這回學到了。


refresh 幾次的效果不大。用到 http cache,最快的 refresh 的方式就是清除 browser 的 cache 或是關掉 browser 然後重開。

Mark


主題: 也是亂碼的問題?
作者: Eji四月 06, 2005, 05:12:41 下午
引用自: markwu
refresh 幾次的效果不大。用到 http cache,最快的 refresh 的方式就是清除 browser 的 cache 或是關掉 browser 然後重開。

Mark


嗯,因為我refresh每次都是Ctrl + F5,所以我才覺得怎麼沒有用....
今天大家都寫新東西了,所以回報:有用。 :-D


主題: 也是亂碼的問題?
作者: netki四月 10, 2005, 02:35:07 下午
引用自: markwu
引用自: bibicall
因年月日程式碼的大小寫分別代表不同的表達方式
在中文語系中又會因為空白字元的問題使得亂碼產生
我在0.32版就曾經用過兩種不同方法
第一就是不辭千辛萬苦的一個一個模版慢慢改
除了將小寫換成大寫之外,年月日的間隔也須加多幾個空白字元
有幾個模版原始的年月日間隔即使換了大寫,還會出現亂碼
加了空白字元拉長間隔就不會了

但是,我發現:人還是懶惰的
所以我用了算是畢其功於一役的作法
就是直接將中文語系檔中的年月日改成跟英語語系檔一樣
也就是不翻譯年月日的部分
這樣就不需要改所有的模版了 :-P
只是不知道這一招在1.0管不管用


管用的!只是我會建議用另一個方式,就不用動到語系檔。就是用 Smarty 內建的日期函數,作法如下,以文章時間為例:

{assign var="postDate" value=$post->getDateObject()}
{assign var="postUnixTime" value=$postDate->getUnixDate()}
{$postUnixTime|date_format:"%Y-%m-%dT%H:%M:%S"}Z

這樣出來的時間效果就是 2005-04-05T10:22:10Z

這樣的用法彈性比 formatDate 更大。因為 smarty 預設的語系是英文,你愛怎麼用就用了。

Mark

請問你說的這個,是在哪裡找到和修改的呢???


主題: 也是亂碼的問題?
作者: markwu四月 11, 2005, 08:14:22 上午
在post.template,你可以試試看把原來的改成這個。

Mark


主題: 也是亂碼的問題?
作者: 在思緒重疊之前六月 05, 2005, 10:25:04 上午
時間上沒問題 可是我看到有人提出 寄送E-MAIL開通的內容是亂碼 必須切換成 UTF8 收信才可正常關看.. 不知道有沒有辦法解決這問題呢!? 因為台灣比較知名的幾個提供E-MAIL的入口網站都是BIG5.. 很少是 UTF8 這樣有點麻煩~_~

不然可否告知 控制E-MAIL認證信 內容的檔案是哪一個呢!?

感謝^____^


剛看了一下 是語系檔再做控制的..
不知道我這樣的想法行不行 > 就是把 E-MAIL 寄送內容的文字拉出來建立一個新的 E-MAIL語系檔 然後把該語系檔設定成 BIG5 ( 各國自己變更編碼 ) 然後在原本引導註冊後寄發E-MAIL的檔案指定到新建立的E-MAIL語系模版 讓她由新的 E-MAIL語系當作寄發 E-MAIL的文字模版 因為E-MAIL 只在使用者收郵件得時候會打開 所以應該不會引響到原本以 UTF8編碼的 PLOG主體..

不知這樣搞可行嗎!?


主題: 也是亂碼的問題?
作者: charlesc六月 06, 2005, 10:44:40 下午
1.01有提供email charset!

可是,我有問題,email認證信的內容在locale file裡,但是信件主旨,是在哪?
我找到一個/class/action/admin/adminaddbloguseraction.class.php
改了一下,似乎沒用???

       
程式碼:
function sendNotificationEmail( $userInfo )
        {
            // if everything went fine, we can now send the confirmation email
            // only if the user specified a valid email address
            if( $userInfo->getEmail() != "" ) {
            // build an email message
                $message = new EmailMessage();
                $message->setBody( $this->_notificationText );
                $message->setSubject( "歡迎加入部落格" );
                $message->addTo( $userInfo->getEmail());
                $message->setFrom( $this->_userInfo->getEmail());
                // and finally send it
                $emailService = new EmailService();
                $emailService->sendMessage( $message );
            }


主題: 也是亂碼的問題?
作者: markwu六月 06, 2005, 10:59:39 下午
其實應該把這部分獨立出來才對。放在程式裡在不太好。  :-(

Mark


主題: 也是亂碼的問題?
作者: 在思緒重疊之前六月 07, 2005, 06:49:18 上午
你改的是信件標題吧@@"

信件的內容是寫在語系檔裡面 等於使用者註冊的時候 系統會去語系檔抓信件內容的文字 然後匯出到E-MAIL格式的模板裏面寄送出去.. 但是我不知道要怎麼把E-MAIL的內容從語系檔裡面獨立出來...=_=|| ( 重點是我不知道哪個檔案去抓語系裡面的 E-MAIL 內容文字 ) ....O_Q

MARK 老大 能說一下是哪個檔案是 E-MAIL 的模板嗎@@? 實在找不到O_Q
( 獨立的想法是因為 我的PHPBB也是這樣弄來修改 E-MAIL的內容.. )


主題: 也是亂碼的問題?
作者: charlesc六月 07, 2005, 08:22:00 上午
對啊,我會改信件內文,不會改主旨....help!!!

email確認信是找locale檔裡的
程式碼:
$messages['register_confirmation_email_text'] = 


主題: 也是亂碼的問題?
作者: 在思緒重疊之前六月 07, 2005, 02:38:23 下午
那是由哪格檔案來呼叫他的呢!?


主題: 也是亂碼的問題?
作者: charlesc六月 07, 2005, 02:58:01 下午
好像好多...

class\summary\mail\confirmemailmessage.class.php

templates\summary\email_confirm.template
程式碼:
{$locale->pr("register_confirmation_email_text", $activeLink)}



class\action\admin\adminaddbloguseraction.class.php
       
程式碼:
function sendNotificationEmail( $userInfo )
        {
            // if everything went fine, we can now send the confirmation email
            // only if the user specified a valid email address
            if( $userInfo->getEmail() != "" ) {
            // build an email message
                $message = new EmailMessage();
                $message->setBody( $this->_notificationText );
                $message->setSubject( "歡迎加入plog" );
                $message->addTo( $userInfo->getEmail());
                $message->setFrom( $this->_userInfo->getEmail());
                // and finally send it
                $emailService = new EmailService();
                $emailService->sendMessage( $message );
            }

            return true;
        }


主題: 也是亂碼的問題?
作者: charlesc六月 09, 2005, 09:12:44 下午
挖哈,我找到確認信主旨要改哪裡了:

/home/httpd/class/summary/action/dofinishregister.class.php

程式碼:
$message = new ConfirmEmailMessage();
$message->setFrom( $this->_config->getValue( "post_notification_source_address" ));
$message->addTo( $this->userEmail);
$message->setSubject( "pLog user registration confirmation for: ".$this->userName);
$message->setUsername($this->userName);
$message->setActiveCode($activeCode);


主題: 也是亂碼的問題?
作者: markwu六月 10, 2005, 10:20:14 上午
不好意思,一直忙著 moblog 的開發。應該已經告一個段落。

我的想法是把所有系統會寄出的信件獨立出來到站台管理中,這樣比較好設定。另外加上編碼選項。這個應該可以放到 1.1 中。

Mark


主題: Re: 也是亂碼的問題?
作者: damonsung十一月 14, 2005, 01:33:10 下午
請問一下email charset 是在那個地方?    一直找不到說

p.s我的是1.01版

1.01有提供email charset!

可是,我有問題,email認證信的內容在locale file裡,但是信件主旨,是在哪?
我找到一個/class/action/admin/adminaddbloguseraction.class.php
改了一下,似乎沒用???

        
程式碼:
function sendNotificationEmail( $userInfo )
        {
            // if everything went fine, we can now send the confirmation email
            // only if the user specified a valid email address
            if( $userInfo->getEmail() != "" ) {
             // build an email message
                $message = new EmailMessage();
                $message->setBody( $this->_notificationText );
                $message->setSubject( "歡迎加入部落格" );
                $message->addTo( $userInfo->getEmail());
                $message->setFrom( $this->_userInfo->getEmail());
                // and finally send it
                $emailService = new EmailService();
                $emailService->sendMessage( $message );
            }


主題: Re: 也是亂碼的問題?
作者: markwu十一月 15, 2005, 10:48:21 上午
在 pLog/class/mail/emailservice.class.php,只不過 charset 是依照你設定的語系檔來抓取 charset ...

如果你『一定』要使用 big5 來顯示信件,你有兩個方法可以作:

1. 把語系檔改成 big5,記得裡面的 encoding 也要改成 big5
2. 另一個方式是,在 email service 裡面加入一個判斷式,當 language 是 zh_TW 且 encode 是 utf-8,透過 iconv 或是 mbstring 把信件轉換為 big5 後再寄出。

Mark


主題: Re: 也是亂碼的問題?
作者: jameshsi六月 19, 2006, 02:14:35 下午
我剛剛也是注意到這問題,雖然一安裝好 Lifetype 就有中文,但是新用戶註冊卻會看到 pLog user registration confirmation 這種看不懂的郵件主旨,或許有人會把他當作垃圾信件刪除呢!


主題: Re: 也是亂碼的問題?
作者: lizzie十月 23, 2006, 01:25:31 下午
我的lifetype 是1.1 (on server 2003/IIS), 為何認證信的標題也出現亂碼? 明明看到code 有抓charset