|
推荐
楼主 |
发表于 2016-7-1 12:04:30
|
只看该作者
本帖最后由 东风解冻 于 2016-7-1 14:12 编辑
## 文件结构
- 将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
- 一个词库目录中包含以下文件:
- 词库数据文件。如:mdx, mdd, inf, idx, dict.dz等文件,目前支持StarDict和MDict的词库。
- dict.png。词库图标,72*72像素大小的PGN图片。
- dict.css。样式文件,必需以dict.css命名。
- dict.js。脚本文件,必需以dict.js命名。
- 资源文件。资源文件可以包含子目录结构。建议将资源文件整合到mdd等专用的资源文件中。
## 样式
- 为了更好的用户体验,请尽量使用预置样式。
- 预置样式详细见预置样式源代码。
- body
- {
- font-family: 宋体, Helvetica, Arial, sans-serif /*{global-font-family}*/;
- font-size:13px;
- color: #595857;
- margin: 0px;
- padding: 4px 10px 4px 10px;
- background: #f3f0e9;
- }
- /* 标题栏中的当前词条 */
- #current_word
- {
- color:#E58339;
- font-weight:bold;
- font-size:24px;
- }
- /* 用于高亮例句中的当前词条 */
- .current_word
- {
- color:Green;
- }
- /* 词性 */
- .pro
- {
- color: White;
- background-color: #999999;
- font-size: 14px;
- min-width: 30px;
- display: inline-block;
- padding: 1px 2px 1px 2px;
- text-align: center;
- font-weight: bold;
- }
- /* 词意 */
- .dec
- {
- font-size: 15px;
- font-weight: bold;
- padding: 1px 2px 1px 2px;
- vertical-align: baseline;
- }
- /* 例句原文 */
- .sent
- {
- }
- /* 例句译文 */
- .tran
- {
- }
- /* 高亮 */
- .highlight
- {
- color:#E58339 !important;
- }
复制代码
## 脚本
- 默认已经引用了JQuery开发框架。
- 自定义脚本时,需要编写dictExecute函数:
- // 此函数将在切换词库时自动调用。
- // dict:词库信息;object类型;大体的格式如下:
- // {
- // "bookName":"锐特英汉词典",
- // "date":"2013.06.17",
- // "description":"Enjoy!",
- // "wordCount":0,
- // "author":"锐特"
- // "dictSize":0,
- // "dictVersion":"1",
- // "dictVersionCode":0,
- // "type":"main"
- // }
- // word: 当前要查的词;string类型;
- // response: word词条的数据;string类型,如果词条的数据是一个JSON字符串,可以用eval("(" + response + ")")将其转化为JSON对象;
- // 在编写脚本的过程中,你可直接使用这些参数中的数据。
- function dictExecute(dict, word, response){
- }
复制代码
- 预置JS函数
- // 用cls类样式标记source中的word
- // 例如: markWord("This is a good dict.", "good", "hightlight"); 将会返回"This is a <span class="hightlight">good</span> dict."
- function markWord(source, word, cls);
- // 分词,给每个单词加上一个<w>标签。当用户点击<w>标签时,将会弹出其文本解释。
- // source 句子
- // 例如: splitWord("This is a good dict."); 将会返回"<w>This</w> <w>is</w> <w>a</w> <w>good</w> <w>dict</w>."
- function splitWord(source);
复制代码
## 词条数据
- 词条数据,可以是HTML、文本、JSON、二进制。
- 为了能更好在手机上使用,建议对每个词条的HTML进行压缩,去掉其中的换行和空字符,网上有现成的压缩工具。
- 对于各词条布局比较简洁统一的词库,建议词库只用来存储JSON之类的数据,用JS来生成HTML页面。
- 预置HTML标签扩展:
- <!--entry://跳转;key: 跳转到key单词;不推荐使用,为了更好的用户体验,请尽量使用词内查词功能替代。-->
- <a href="entry://key">key</a>
- <!--sound://发音;其后是发音文件的路径,这个路径可以是一个文件路径也可以是MDD等资源库中的key。-->
- <a href="sound://uk/outlive_gb_1.aac">a sentence.</a>
- <!--给单词加上<w>标签,当用户点击这个词时,就可以实现词内查词;可以使用内置的函数自动给句子中的每个词都加上<w>标签。-->
- <w>word</w>
复制代码
## 资源
- 资源可以词库目录下,但最好是放在转用的资源库中,如:mdd文件。
- 资源路径中的分隔符使用\例如:\pic\test.png。
- 音频资源格式建议使用Android和IOS都支持的AAC(推荐)、MP3,其中AAC的文件更小。
- 软件已经包含了一些预置图标,可直接使用:
- uk_pron.png 英式发音图标
- us_pron.png 美式发音图标
- voice.png 语音图标
复制代码
## 注意事项
- CSS, JS等文本文件如无特殊说明均使用UTF-8
## QA
- 目前支持哪些格式的词库格式?
目前支持StarDict和MDict的词库。
MDict词库目前暂不支持加密。
StarDict词库为了提高手机平台的使用效率仅支持压缩后的.dict.dz格式。
- 如何添加的词库?
将词库放到 codetimes/dict/dict/目录下,每个词库一个目录。
- 我制作词库时需要技术怎么办?
请在论坛发帖,我会全力技术。
- 自带的词库数据是否会开源?
会的,自带的词库数据是JSON格式的,如果你使用同样格式编写词库,那就可以直接使用对应的脚本,并有完整的功能支持。
## 开发计划
- 单词发音
- 支持多语言词库的索引 |
|