yetist / lunar-calendar

a gtk+ calendar widget for chinese lunar library.
GNU Lesser General Public License v2.1
7 stars 1 forks source link

3.0.1 版本中,设置 LUNAR_CALENDAR_IGNORE_NON_CHINESE=1 后,xfce 无法直接显示农历 #5

Open atzlinux opened 2 years ago

atzlinux commented 2 years ago

3.0.1 版本中,设置 LUNAR_CALENDAR_IGNORE_NON_CHINESE=1 后,xfce 无法直接显示农历 ,需要点击日期,才会显示农历信息。

在环境变量中,不设置 LUNAR_CALENDAR_IGNORE_NON_CHINESE=1 ,xfce 面板的日历程序,就能够直接显示农历。

我本机 locale 为:

LANG=zh_CN.UTF-8
LANGUAGE=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
yetist commented 2 years ago

xfce4-panel 的代码 plugins/clock/clock.c 文件, clock_plugin_popup_calendar (ClockPlugin *plugin) 函数中:

1366       plugin->calendar = gtk_calendar_new ();                                    
1367       gtk_calendar_set_display_options (GTK_CALENDAR (plugin->calendar),         
1368                                         GTK_CALENDAR_SHOW_HEADING                
1369                                         | GTK_CALENDAR_SHOW_DAY_NAMES            
1370                                         | GTK_CALENDAR_SHOW_WEEK_NUMBERS);       

我在 1366 行这里使用 lunar_calendar_new() 替换 gtk_calendar_new() 并设置了显示 details,但是 1367 行,它立刻重新设置把 details 给关了,所以没法显示出来农历。

atzlinux commented 2 years ago

这个问题,除了修改 xfce4-panel 的代码外, lunar-calendar 还有办法解决吗?

yetist commented 2 years ago

这只是个库,正常应该基于 lunar-calendar 开发应用程序或applet 的,目前用 gtk module 方式只是能这样用而已。 如果应用强制设置了参数,库不应该强制修改回来,这样就跑偏了。

swimmingchar commented 1 year ago

兄弟们,这个农历显示在xfce上显示很难么?啥语言做一个通用的可以显示啊?