Joomla! Discussion Forums



It is currently Tue Nov 24, 2009 2:47 pm (All times are UTC )

 





Post new topic Reply to topic  [ 13 posts ] 
Author Message
 Post subject: ExtCalendar v2 的尴尬
Posted: Sun Sep 03, 2006 12:43 am 
User avatar
Joomla! Explorer
Joomla! Explorer
Offline

Joined: Mon Mar 20, 2006 3:17 pm
Posts: 440
Location: China
不知道这里有没有人用 ExtCalendar v2 组件? 我今天早上刚刚安装上。基于台湾 which 制作的繁体中文汉化for 0.9.1 版本,我稍作修改制作了针对最新版 0.9.2 版本的简体中文汉化版。

安装后发现三个问题:

1、在迷你日历上,星期显示为乱码;

2、在主日历右上角显示的简短日历中,(星期)7 显示为 0 !

3、在事件描述中,默认文字排列为居中,不便阅读。

以上问题可到我的“杏林书香网” http://www.tcmbook.net 查看“现场演示”。

不知道哪位高手有修正办法?谢谢 !

_________________
JoomlaGate - Chinese Joomla Users' Portal

http://www.joomlagate.com


Top
   
 
Posted: Sat Sep 09, 2006 1:46 pm 
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Wed Mar 08, 2006 8:28 am
Posts: 29
1、在迷你日历上,星期显示为乱码;
这个可以很简单的解决
其他 倒还没在意

_________________
梦想天空:http://joom.org.ru


Top
  E-mail  
 
Posted: Sun Sep 10, 2006 4:41 am 
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Wed Mar 08, 2006 8:28 am
Posts: 29
思路:不能正确显示星期,在此之前是不能正确取得我们所要的日期 
看一下这个迷你 日期的模块 
改几个语句 就成了
在这个模块文件的560行左右 
有个
  for ($i=0;$i语句
里面的第一个$params = array('{WEEK_DAY}'就是 显示星期几的
好办
给这个循环之前加个 数组

$d1 = array("日","一","二","三","四","五","六");
再将
$params = array('{WEEK_DAY}' => $d1[$i],
就行了,
当然这样是比较简单的修改
要从星期日 开始 
从星期一开始显示 将$d1中的“日”移动到 最后就行了

_________________
梦想天空:http://joom.org.ru


Top
  E-mail  
 
Posted: Sun Sep 10, 2006 3:10 pm 
User avatar
Joomla! Explorer
Joomla! Explorer
Offline

Joined: Mon Mar 20, 2006 3:17 pm
Posts: 440
Location: China
恕我直言,这个方法似乎只是“表面上”显示了中文的星期名称,但是与内在的“日历机制”没有关系。我解释一下:

我按照你的指教,将 554 行左右那段代码修改为

Code:
    // print weekday labels
      echo $weekday_header_row;
      $d1 = array( "日","一","二","三","四","五","六");
    for ($i=0;$i<count($info_data['weekdays']);$i++)
    {
         $params = array('{WEEK_DAY}' => $d1[$i],

         );
         echo minical_template_eval($weekday_cell_row, $params);
      }
      echo $weekday_footer_row;


结果是,迷你日历上的星期名称都正确显示了中文。我高兴之余,觉得把星期天放在第一位不符合中国习惯,于是按你说的将“日”移动到了末尾,再刷新页面测试,发现出现了有趣的现象:星期名称是从一到七了,但是日历内的日子并没有跟着调整,呵呵,看看我的截图你就明白了:9月10日,也就是今天,变成了星期一!

很明显,这样调整的方法只是改变了“星期名称”这一行字符的显示顺序,并没有与内部数据达成一致。我认为这种修改方法与“剪箭杆”的治疗方法有异曲同工之妙。

据台湾朋友提示,这个问题可能是因为服务器上对于日期的定义在php文件中用了gb2312代码来编写,而我们的模块使用utf-8编码来读取,因此产生了错误。

我不知道该怎么解决——很显然空间提供商不可能为我修改代码,毕竟还有很多用户在用gb2312编码。只有等待作者在新版本中想办法了。

谢谢你的指教!希望你继续努力,攻破这个难题。


You do not have the required permissions to view the files attached to this post.

_________________
JoomlaGate - Chinese Joomla Users' Portal

http://www.joomlagate.com


Top
   
 
Posted: Sun Sep 10, 2006 4:27 pm 
User avatar
Joomla! Intern
Joomla! Intern
Offline

Joined: Sun Apr 09, 2006 4:01 pm
Posts: 54
如果是编码问题的话,可以这样:
require_once( $mosConfig_absolute_path . '/includes/utf8.php' );
.............

...............

................
 
$params = array('{WEEK_DAY}
$params =default_to_utf8($params);

...............

或者用 iconv 函数看看.

_________________
### Joomla! AutoIt! ###
Joomla! 中文交流平台  [Chinese GMT +8] http://www.autoit.cn


Top
   
 
Posted: Sun Sep 10, 2006 11:13 pm 
User avatar
Joomla! Explorer
Joomla! Explorer
Offline

Joined: Mon Mar 20, 2006 3:17 pm
Posts: 440
Location: China
AutoIt 这个方法我看得一头雾水,因为没有行号,也没有查找替换,我不知道该放哪里。我把第一句代码放在文件首行,把后面两句代码放在那个大括号里面,结果前台出错了,不知道是不是因为我放的位置不正确?建议 AutoIt 在本地测试一下,这个组件值得完善,功能很不错的,比原来名声很响的 gigCalendar 好用、好看。

另外,我想起一件事:这个组件我根据台湾which制作的繁体中文语言转换生成了一个简体语言文件并应用了,这样后台、前台的界面基本上都是简体中文的。我翻译时发现一个现象,改变语言文件中的某个日期变量就能在miniCalendar 看到相应的变化。会不会这个迷你日历跟语言文件也有一定联系?

希望高手能够仔细研究一下这个问题。我把简体中文语言文件附于本帖,解压到 components/com_extcalendar/languages 目录下即可。


You do not have the required permissions to view the files attached to this post.

_________________
JoomlaGate - Chinese Joomla Users' Portal

http://www.joomlagate.com


Top
   
 
Posted: Mon Sep 11, 2006 12:47 am 
User avatar
Joomla! Intern
Joomla! Intern
Offline

Joined: Sun Apr 09, 2006 4:01 pm
Posts: 54
;) 其实这是汉化者要完成的事情!  否则就不是汉化了!

mod_extcalendar_minical.php

line 447  :

Code:
$info_data['weekdays'][$i]['name'] = minical_sub_string($lang_date_format['day_of_week'][$array_index],2,'');


change:

Code:
$info_data['weekdays'][$i]['name'] = minical_sub_string($lang_date_format['day_of_week'][$array_index],4,'');

_________________
### Joomla! AutoIt! ###
Joomla! 中文交流平台  [Chinese GMT +8] http://www.autoit.cn


Top
   
 
Posted: Mon Sep 11, 2006 1:34 am 
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Wed Mar 08, 2006 8:28 am
Posts: 29
其实这个是编码搞的
原因在于strftime()函数
他返回的是一个本地编码的值
而不是UTF-8的编码
我改那个文件 只是表面 功夫
如果你要从星期一开始的话
我也提到 了
Quote:
从星期一开始显示 将$d1中的“日”移动到 最后就行了

还有你注意 一下
你看看逐日查看
你的日期还有乱码
就是那个strftime()的函数的问题

_________________
梦想天空:http://joom.org.ru


Top
  E-mail  
 
Posted: Mon Sep 11, 2006 6:04 am 
User avatar
Joomla! Explorer
Joomla! Explorer
Offline

Joined: Mon Mar 20, 2006 3:17 pm
Posts: 440
Location: China
AutoIt 的方法这次成功了,感谢!呵呵,虽然我能汉化英文字串,但是代码方面还要仰仗你们这些编程高手啊,大家多支持我啊!

我大胆猜一下:是不是把2改成4,意味着取字头前4个字节,也就是两个双字节?因为我记得utf-8编码好像是4字节的。原来的2看来是截断了我们在语言文件中定义的星期名称,是吧?

Blank 指出了问题的关键,虽然我看不懂代码,但是你说的在理。这个取日期的函数一旦错误,怎么设置汉化字串都没用。

感谢两位高手的关注,现在日历总算是正常显示了。AutoIt 给出的方案很好,如果把星期一作为第一天的话,日子显示的顺序自动随之调整!看来问题就出在“截取字头”时使用了双字节而不是 utf-8 的4字节!

总之,还是要感谢你们,否则我绝对做不出来的。Blank发现的那个“逐日查看”出现乱码的问题,还请你们多多费心。一旦这个东东完美汉化,我准备大力推荐,功能真是很好!

_________________
JoomlaGate - Chinese Joomla Users' Portal

http://www.joomlagate.com


Last edited by baijianpeng on Mon Sep 11, 2006 6:14 am, edited 1 time in total.

Top
   
 
Posted: Mon Sep 11, 2006 6:48 am 
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Wed Mar 08, 2006 8:28 am
Posts: 29
我也装了个
在原来的基础上加了阴历显示,自己先得意一把,我觉这个东东私人用比较好,不用把自己的东东都 放在网上给人看吧,或者在单位内部站点上用比较好, :-\

_________________
梦想天空:http://joom.org.ru


Top
  E-mail  
 
Posted: Mon Sep 11, 2006 12:17 pm 
User avatar
Joomla! Explorer
Joomla! Explorer
Offline

Joined: Mon Mar 20, 2006 3:17 pm
Posts: 440
Location: China
呵呵,刚才为了看你的“阴历”还专门去你网站逛了一下。你安装汉化文件的方法也不标准,不需要覆盖 english 目录下的文件,另外建一个 simplified_chinese 目录,把中文版的 index.php 放进去就行了。这个程序自动挂载中文(当前,前提是你网站的“全站设定”中设置语言为简体中文)。

你的“阴历”效果不错!可否共享一下?谢谢!

_________________
JoomlaGate - Chinese Joomla Users' Portal

http://www.joomlagate.com


Last edited by baijianpeng on Mon Sep 11, 2006 12:19 pm, edited 1 time in total.

Top
   
 
Posted: Mon Sep 11, 2006 1:57 pm 
User avatar
Joomla! Intern
Joomla! Intern
Offline

Joined: Sun Apr 09, 2006 4:01 pm
Posts: 54
blank 高呀, 俺是没想那么多,

他默认 2 是取2个字节, 所以显示的英文的字母都是 两个.

而Utf-8格式的编码是 3个字节. 所以那里改成大于等于3都是可以的! 因为只一个字哦. 如果两个了就要大于等于 6 就行...

我上次写是 是随手写上的. 让你产生误解了呵呵...

_________________
### Joomla! AutoIt! ###
Joomla! 中文交流平台  [Chinese GMT +8] http://www.autoit.cn


Top
   
 
Posted: Mon Sep 11, 2006 2:11 pm 
Joomla! Apprentice
Joomla! Apprentice
Offline

Joined: Wed Mar 08, 2006 8:28 am
Posts: 29
Quote:
,不需要覆盖 english 目录下的文件,另外建一个 simplified_chinese 目录,把中文版的 index.php 放进去就行了。这个程序自动挂载中文(当前,前提是你网站的“全站设定”中设置语言为简体中文)。

汗一下
我全站设定中原来也是E文的
最早没有汉化出来自己搞的
后来一直延续下来
不想改了
阴历那个到时再写文章 
说说怎么改

_________________
梦想天空:http://joom.org.ru


Top
  E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

Quick reply

 



Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group