日程管理问答(Lightning 和 Sunbird)

这篇文章不再受到维护,因此它的内容可能已过时。

请注意:我们已经不再 维护 Sunbird。但是还有很多人在用,所以我们还是把其相关的帮助文档写在这里。

常规

Sunbird 和 Lightning 有什么区别?

Sunbird 是一个独立运行的日程管理软件。它无需其他客户端,所以它要大些并需要更多的内存。由于是独立运行,Sunbird 并不和电子邮件客户端紧密集成,也不需要和 Mozilla Thunderbird 集成。它直接在 Thunderbird 的用户界面提供日程管理功能。由于它不再被维护,其他功能,如邮件邀请或通讯录集成等 在发布计划中。请用 Lightning 来代替 Sunbird

安装 Lightning 需要什么?

你需要最近的 Thunderbird 版本,3.1或更高。在“开发频道”,Lightning 也有针对最新的 nightly 发布版的版本。参看 Lightning 下载页。如果遇到问题,请在安装 Lightning 之前不要安装其他扩展。

如何卸载 Lightning?

你可以在附加组件管理器的工具菜单卸载 Lightning。

nightly 编译版安全吗?

Nightly 发布版是针对开发者的测试版。它们的目地不是常规使用。Nightly 发布版可能会导致崩溃和数据丢失。

用法

有没有节假日功能?

你可以订阅 节假日文件

是否可以设置循环事件,比如每个八月的第一个星期一?

设置每12个月重复一次的事件:在新事件对话框,设置事件开始日期是第一年八月的第一个星期一,比如 2012-08-06。点击“重复”旁边的下拉列表并选择“定制...”,再从“重复模式”旁边的下拉列表里选择"每年",然后设置间隔为1年,并将其他选项设置为“八月的第一个星期一”。

如何在服务器上发布日程事件?

你可以在支持 CalDAVWCAP 或者带有 日程 数据发布者附加组件的服务器上创建日程事件。CalDAV、WCAP 和一些附加组件允许诸如 Sunbird 和 Lightning 之类的日程软件来更改日程事件,同时服务器也能阻止或检测多人(多个程序)更改事件。当你订阅此类日程服务时,你的改变会按每次向服务器存储一个事件或任务来完成。

你还可以通过在 FTP 服务器(仅适用于 Sunbird)或在启用 webDAV 的网络服务器上使用个人 .ics 文件来发布日程。你也可以使用该日程来订阅事件。因为这个方法每次都会改变整个文件,它不适用于多个人使用,也不适用于大的日程文件。

如何分享日程事件?

一个方式是把日程存放到公开的日程服务器上。这个有很多:请联系你的邮件提供商或进行网络搜索。其中一些仅支持单人更改整个 ics 文件,其他一些支持更强壮的协议,比如 CalDAV(或 WCAP),这样可以更好地处理大型日程文件和进行多用户更新。

要在你自己的服务器上分享日程,最好的方法是安装一个特定的日程管理服务,典型的协议是 CalDAVWCAP。既有开源的也有商业的日程服务软件。

如果仅是一个人的小日程文件,你可以使用 webDAV 服务器。如果你有网络服务器,你可以安装 mod_dav,它是一个免费的 Apache 模块,它可以把网络服务器变成 webDAV 服务器。如何设置可以参看其网页介绍。一旦你搭建了 webDAV 服务器,你就可以在网站上发布日程,如何使用其他任何 Calendar 来订阅它。这就是一个穷人的自动更新日程服务器。

Sunbird/Lightning 会发提醒吗?

不,Sunbird 和 Lightning 在不运行时是不会弹出消息,也不会发送邮件的。但是,这里有一个“技巧”:你可以隐藏运行中的 Sunbird。在 Windows 下可以使用 Suntray托盘最小化,在 Linux 下使用 Kdocker 来隐藏它。

导入和导出

Sunbird/Lightning 用什么文件格式?

Sunbird/Lightning 使用一种基于 SQL 的存储机制—— SQLite。本地的日程文件带有后缀名 .sdb,可以在配置文件夹找到。Sunbird/Lightning 也支持基于 iCal 标准 的日程文件。这些文件带有后缀名 .ics,可以被打开、导入、导出和订阅。

它能和 Outlook 一起工作吗?

Outlook 并不将其日程文件存为开放标准的格式,所以 Calendar 和 Sunbird 目前不直接支持 Outlook 。然而,你可以将 Outlook 事件按照 .ics 或 .csv 文件导出,然后使用“Calendar 文件”或“Outlook 逗号分隔”文件格式导入到 Sunbird or Lightning。GNU/Linux 用户可以参看 该页。(参考 bug 167102 了解更多 Outlook 集成相关的问题。)

它能和 Sun 的日程服务器一起工作吗?

在新日程事件对话框里选择“网络”,然后选择“WCAP”日程类型。按照 "https://servername.com/" 或 "https://username@servername.com/" 格式在 "地址" 栏填写日程服务器的URL。请参看 WCAP 指导

它能和 Apple 的 iCal 一起工作吗?

iCal 和 Calendar 使用同样的文件格式,所以它们可以互相看到对方的日程事件。如果你愿意,你还可以订阅 Apple 网站的事件列表

请注意,iCal 目前不能在 webDAV 或 ftp 服务器上协同更改日程文件。iCal 每次的更改都会覆盖整个文件(比如来自 Sunbird 或 Lightning 的更改)。

它能和 Palm Pilot 同步吗?

Calendar 还不能和 Palm Pilot 同步。

为什么导入日程文件后还是看不到任何日程事件?(看起来导入成功了,但是没有显示日程事件。)

听起来是你的默认日程设置是不可见(在日程标签页)。已知有一个 问题 是在添加新事件时把不可见的日程临时设为可见。设置时这些事件是可见的,但当你点击事件时,日程就消失了,系统崩溃。

简单来说:请检查你的日程是否默认可见。

配置和定制

如何改变日期格式?

日期的长短格式由本地操作系统定义,这样所有的日期都一致。

在 Windows 2000/XP,请参照 开始 | 设置 (Win 2000) | 控制面板 | 地区 | 定制... (Win XP) | 日期(标签页)。
在 Windows Vista/7,请参照 开始 | 控制面板 | 时钟,语言和地区 | 地区和语言 | 其他设置... | 日期(标签页)。

你可以在日程偏好设置里选择日期的长短格式,这样可以控制日期在表格和导出文本里的显示。

如何改变提示音?

这个放在应用的 chrome 文件夹,打包在 calendar.jar 文件里。文件名是 sound.wav。你要用 zip(比如 WinZip)解压 calendar.jar ,更改 sound.wav 文件,然后在打包。

如何设置事件的颜色?

你可以为不同的事件创建日程文件并为每个文件设置一个颜色。

如何从 Sunbird 或 Lightning 同步访问本地日程?

  • Sunbird:请使用一个程序通过 "File | New Calendar..." 创建一个新的本地文件,然后用另一个程序通过 "File | Open Calendar File" 打开该文件。
  • Lightning:请使用一个程序通过 "File | New | Calendar..." 创建一个新的本地文件,然后用另一个程序通过 "File | Open | Calendar File..." 打开该文件。这个是使用两个程序查看同一个本地日程文件,但它不是用来编辑共享的日程文件。请注意不要用两个程序同时编辑日程文件,否则会导致修改被覆盖。(如果必须要修改,请先刷新。)

一个例子详解:

  • 用 Lightning 创建一个新的本地日程文件。
    1. 使用 "file://" URL: 创建新文件。
    2. 通过菜单 "File",选择 "New | Calendar..."
    3. 选择 "网络",然后点击 "下一步"(不要选 "我的电脑",这是创建保存在本地 SQLite 数据库的文件。)
    4. 选择 "iCalendar (ICS)"(默认),输入文件:本地文件路径。在 MS-Windows 系统,类似 "file:///C:/Documents and Settings/USERNAME/MyCal.ics"。
    5. 点击 "下一步"。
    6. 编辑名称和颜色。
    7. 点击 "下一步"。
    8. 点击 "完成"。
    9. 在左边栏,日程就被添加到列表(点击 '+' 可以展开),但是 MyCal.ics 文件只有在你添加了事件或任务之后才会保存到磁盘。
    10. 在 "日程" 列表里,点击选择新建的 "MyCal",其选中后其颜色会有变化。(勾选框保持已勾选。)
  • 在工具栏点击 "新事件" 图标(或在 "文件" 菜单点击 "新事件...")就可以创建新事件。在事件对话框,输入事件标题,比如 "My Lunch"。
  • 点击 "保存并关闭"。
  • 要验证日程存放的位置:在 "日程" 列表里,右击名称 "MyCal.ics" 然后点击 "属性"。记住文件路径。点击 "确认"。
  • 要验证 "My Lunch" 事件已经保存到 "MyCal.ics",请在文本编辑器里查看 "MyCal.ics" 中的事件标题 "My Lunch"。
  • 用另一个程序,比如 Sunbird,打开本地日程文件。
  • 打开文件:
    1. 在 "文件" 菜单,点击 "打开日程文件..."
    2. 在文件浏览窗口,找到该文件。
    3. 你应该看到 "My Lunch" 事件已经从 Lightning 上添加过来了。
  • 在 Sunbird 下,在此文件添加一个任务,比如 "My Workout",然后点击“保存并关闭”。
  • 刷新一下分享这个日程文件的另一个程序。
  • 在 Lightning 里找到 "日程" 列表。
  • 取消勾选日程 "MyCal" 的勾选框,然后再勾选。通过 Sunbird 添加的任务或事件,比如 "My Workout",应该显示出来。

帮助开发 Sunbird/Lightning

如何改进/修正用户界面?

图形界面 GUI 是用 XUL, JavaScriptCSS 加上 DTDs 和定义本地化文本的 属性文件 开发的。它们都放在位于用户配置文件夹(Firefox, Thunderbird)的 chrome/calendar.jar 文件里。

在 Linux 下,扩展配置路径可能类似 ~/.mozilla/thunderbird/default.xxx/extensions/{8e117890-a33f-424b-a2ea-deb272731365}/chrome/calendar.jar。应用路径可能是 /usr/local/sunbird/chrome/calendar.jar

在 Windows 下,扩展配置路径可能类似 C:\Documents and Settings\(user)\Application Data\Mozilla\thunderbird\Profiles\default.xxx\extensions\{8e117890-a33f-424b-a2ea-deb272731365}\chrome\calendar.jar。 应用路径可能是 c:\Program Files\sunbird\chrome\calendar.jar

解压 calendar.jar 文件。它有三个子文件夹:content, locale, skin
content:XUL 和 JS 定义了部件和事件处理程序。 XBL 包含 XUL 和 JS。
locale:DTD 和属性定义了本地化文本。
skin:CSS 和图片定义了每个默认主题的长相。

做变更:

  1. 解压 calendar.jar
  2. 编辑文件,
  3. 重新压缩到 calendar.jar
  4. 重启 Lightning/Sunbird 并测试。

就是这样是。设置 javascript.options.stricttrue 进行测试就可以看到 JavaScript 相关的常见警告(在浏览器里打开 URI about:config 来设置偏好。)

要修正问题,如果软件库 (Comm-Central) 中的文件比你所用的 nightly 发布更新,那么你最好从软件库中获取该文件,然后打包到 jar(请注意文件路径)。

在哪里获得 Sunbird/Lightning 的源代码?

Sunbird/Lightning 的源代码放在 comm-central Mercurial (hg) 库。请根据页面指南获取源代码。
你还可以 浏览查找 源代码,或者是查看在 comm-central 库中发生了哪些 变更

如何编译 Sunbird/Lightning?

导出 源代码编译文档。相关信息也可在 Sunbird 编译页面 获得。

如何帮助修复问题?

请查看 问题页面

社区讨论和帮助

Sunbird/Lightning 的帮助功能在哪里?

Sunbird 和 Lightning 目前还没有帮助功能。扩展 Sunbird 的xmas正在进行中。该扩展项目详见 项目页面。该项目带有 在线帮助 功能。

Sunbird 和 Lightning 有没有论坛或用户讨论组?

news.mozilla.org 的新闻服务器上,有两个 Sunbird-/Lightning 相关的新闻组。
mozilla.support.calendar: 该新闻组专属于 Sunbird 或 Lightning 的用户。所有用户相关的讨论(关于产品、技巧、临时解决方案或功能需求的问题)都应该发表在此。
mozilla.dev.apps.calendar: 该新闻组专注于 Sunbird 或 Lightning 当前和未来的功能。所有开发者相关的问题(如何最好地解决问题、如何使用特定接口扩展功能或者所有关于未来产品的规划)都应该发表于此。
如果你需要帮助,可以在 MozillaZine Calendar 论坛 发帖。

// 这些人帮助撰写了这篇文章:wxie 你也可以帮忙 - 来看看该怎么做
成为 Mozilla 技术支持的志愿者