Compare commits

..
1 Commits
Author SHA1 Message Date
lealife 290772b437 init index 2016-05-30 11:51:41 +08:00
27 changed files with 568 additions and 1193 deletions

No files matched your search

+1 -1
View File
@@ -1,5 +1,5 @@
language: go language: go
go: 1.4 go: 1.3
services: services:
- mongodb # 2.4.12 - mongodb # 2.4.12
+64 -88
View File
@@ -5,83 +5,66 @@
## 1. Introduction ## 1. Introduction
Leanote, not just a notepad! Leanote, Not Just A Notepad!
![leanote.png](leanote.png "") ![leanote.png](leanote.png "")
**Highlighted Features** **Some Features**
* Note-taking made easy: Leanote incorporates a clean and intuitive interface, the `tinymce` rich-text editor and a dedicated *markdown* editor, making your writing/typing more efficient and enjoyable. For more advanced users, we even offer `Vim` and `Emacs` writing modes to help boost your writing speed to another level. * Knowledge: Manage your knowledge in Leanote. Leanote contains the tinymce editor and a markdown editor, just enjoy yourself writing.
* Knowledge management: The flexible and versatile notebook-note-tagging system of Leanote makes it an ideal tool for knowledge management. * Share: Share your knowledge with your friends in Leanote. You can invite your friends to join your notepad in the cloud so you can share knowledge.
* Sharing: Share your knowledge, thoughts and experiences with friends via Leanote. Invite your friends to join your notepad in the cloud. * Cooperation: Collaborate with friends to improve your skills.
* Cooperating: Collaborate with colleagues to improve skills, fertilize ideas and brainstorm on the fly. * Blog: Publish your knowledge and make Leanote your blog.
* Blogging: Publish your work and make Leanote your personal blog.
**Other Features** **Other Features**
* Markdown syntax support * Support Markdown
* Distraction-free writing mode * Writting mode
* `Vim` and `Emacs` editing mode * Export note to PDF
* Export notes to PDFs * Note batch operation
* Batch note operation * Custom theme for blog
* Customizable themes for blogging
## 2. Why we create Leanote ## 2. Why we created Leanote
To be honest, our inspiration comes from Evernote. We use Evernote to manage our knowledge everyday. But we find that:
We have been using the popular note-taking software/service `Evernote` as our knowledge management tool on a daily basis. Benefited from and inspired by `Evernote`, we decided to create a brand-new tool that provides everything `Evernote` has to offer, plus a bunch of new features that `Evernote` failed to deliver, such as: * Evernote's editor can't meet our needs, it does not have document navigation, it does not render code properly (as a programmer, syntax highlighted code rendering is a basic need), it cannot resize images and so forth
* We like markdown, but Evernote does not support it.
* A more powerful editor: `Evernote`'s editor lacks the functionalities of **document navigation**, **syntax based code rendering** (as a programmer, syntax highlighted code rendering is a necessity), **image resizing** and so forth. * We want to share our knowledge, so all of us have our blogs (e.g. on Wordpress) and our Evernote accounts, but why can not those two be one!
* Everybody loves *markdown*, however `Evernote` simply wouldn't add it despite of years' of requests from users. So we will do the favor and bring a *markdown* enabled editor to you, guess what, it is also rendered in real-time!
* If you a developer and miss the `Vim` or `Emacs` ways of writing, we offer you the choice of `Vim` and `Emacs` editting modes. Equipped with *markdown* syntax for text formatting, you will never need to touch your mouse while writing.
* We love managing knowledge and thoughts as much as sharing them, so everybody has their own note account (`Evernote`, `Onenote`, `Google doc`, `Wiz note` etc.) and social media account (`Facebook`, `Wordpress`, blogs, etc.). But why can’t those two be one? Leanote makes this first step to bridge the private note-taking and public knowledge sharing seamlessly.
* A complete and all-platform (sorry Windows phone) covering software suite: that includes Leanote Web & Server (this repository), [Desktop app](https://github.com/leanote/desktop-app), [iOS](https://github.com/leanote/leanote-ios), [Android](https://github.com/leanote/leanote-android). And they are all open source!
* ...... * ......
## 3. How to get Leanote ## 3. How to install Leanote
The Leanote software suite contains: Leanote Web & Server (this repository), [Desktop app](https://github.com/leanote/desktop-app), [iOS](https://github.com/leanote/leanote-ios), [Android](https://github.com/leanote/leanote-android). Leanote contains: Leanote Web & Server (this repository), [Desktop app](https://github.com/leanote/desktop-app), [iOS](https://github.com/leanote/leanote-ios), [Android](https://github.com/leanote/leanote-android). And all the products are open source!
Interested in our product and want to try it out from your web browser? Welcome to sign up on https://leanote.com. You can install Leanote on your server, and use Leanote App (Desktop, iOs, Android) to sync notes with your self-hosted server.
Feeling suspicious about how those note-taking companies treat your personal data? You can install Leanote on your server, and use Leanote App (Desktop, iOS, Android) to sync notes with your self-hosted server. Welcome to sign up on https://leanote.com, Leanote team provide a stable and reliable service for you.
More information about how to install Leanote please see: More information about how to install Leanote please see:
* Leanote binary installation tutorial: * [Leanote binary installation tutorial](https://github.com/leanote/leanote/wiki/leanote-binary-distribution-installation-tutorial)
* [Windows](https://github.com/leanote/leanote/wiki/leanote-source-installation-on-Windows-(En)) * [Leanote source installation tutorial](https://github.com/leanote/leanote/wiki/leanote-source-installation-tutorial)
* [Mac and Linux](https://github.com/leanote/leanote/wiki/leanote-binary-installation-on-Mac-and-Linux-(En))
* Leanote source installation tutorial:
* [Windows](https://github.com/leanote/leanote/wiki/leanote-source-installation-on-Windows-(En))
* [Mac and Linux](https://github.com/leanote/leanote/wiki/Leanote-source-installation-on-Mac-and-Linux-(En))
## 4. Documentation ## 4. How to develop Leanote
Please see [wiki](https://github.com/leanote/leanote/wiki) for detailed instruction on how to install Leanote on various platforms, trouble shooting and configuration explanations. Please see [How-to-develop-leanote](https://github.com/leanote/leanote/wiki/How-to-develop-leanote-%E5%A6%82%E4%BD%95%E5%BC%80%E5%8F%91leanote)
## 5. Docs
## 5. How to develop Leanote Please see [wiki](https://github.com/leanote/leanote/wiki).
If you are a developer yourself and feel like to build on top of Leanote, please refer to [How-to-develop-leanote](https://github.com/leanote/leanote/wiki/How-to-develop-leanote-%E5%A6%82%E4%BD%95%E5%BC%80%E5%8F%91leanote). ## 6. Contributors
Thank you to all the [contributors](https://github.com/leanote/leanote/graphs/contributors) on
this project. Your help is much appreciated.
## 7.Join us
## 6. Contributions Please fork this repository and contribute back using [pull requests](https://github.com/leanote/leanote/pulls).
Like or dislike Leanote, please leave your comments and suggestions to help us improve it. If you find some problems or has some good ideas, please submit [issues](https://github.com/leanote/leanote/issues).
If you encounter any issue, we suggest you first do a search in the issues section to see whether a solution already exists, or open up a new one otherwise.
We’d like to acknowledge the contributions made by our [developers and contributors](https://github.com/leanote/leanote/graphs/contributors) to
this project. Leanote won’t exist without your hard work. Your help is much appreciated.
## 7. Join us
Please feel free to fork this repository and contribute back using [pull requests](https://github.com/leanote/leanote/pulls).
If you find any problems or have any good ideas, feature requests, please submit here [issues](https://github.com/leanote/leanote/issues).
You are always welcomed!
## 8. Donation ## 8. Donation
Support us, [donate us](http://leanote.org/#donate). And thanks [donators](http://leanote.leanote.com/post/leanote-donation-list).
If you like our product, consider supporting us via [donate us](http://leanote.org/#donate).
We acknowledge the donations make by all the [donators](http://leanote.leanote.com/post/leanote-donation-list).
## 9. Related projects ## 9. Related projects
@@ -91,12 +74,12 @@ We acknowledge the donations make by all the [donators](http://leanote.leanote.c
You are welcome to join us. You are welcome to join us.
## 10. Contacts ## 9. Support & Join us
* Email: leanote@leanote.com * Email: leanote@leanote.com
* [Leanote BBS](http://bbs.leanote.com) * [Leanote BBS](http://bbs.leanote.com)
* [Leanote Google Group](https://groups.google.com/forum/#!forum/leanote) * [Leanote Google Group](https://groups.google.com/forum/#!forum/leanote)
* QQ Groups: 326073529, 256076853, 158716820 * QQ Group: 326073529, 256076853, 158716820
----------------------------------------------------------------------- -----------------------------------------------------------------------
@@ -108,71 +91,64 @@ Leanote, 不只是笔记!
**特性** **特性**
* 高效笔记:Leanote 有易操作的界面, 包含一款富文本编辑器和Markdown编辑器,让您的笔记记录更轻松和高效。对高阶用户,我们还提供`Vim` 和`Emacs` 编辑模式,助推你的写作速度更上层楼。 * 知识管理: 通过Leanote来管理知识, Leanote有易操作的界面, 包含两款编辑器富文本编辑器和Markdown编辑器. 在Leanote, 你可以尽情享受写作.
* 知识管理: Leanote 灵活而强大的“笔记本-笔记-标签”系统,让它成为你个人知识管理的利器。 * 博客: Leanote也可以作为你的博客, 将知识公开成博客, 让Leanote把你的知识传播的更远!
* 分享: 你可以通过Leanote同好友分享知识、想法和经历, 邀请好友加入你的笔记簿,通过云端交流信息。 * 分享: 你也可以通过分享知识给好友, 让好友拥有你的知识.
* 协作: Leanote协助你与同事之间相互协作,激荡新思路,随时随地头脑风暴。 * 协作: 在分享的同时也可以与好友一起协作知识.
* 博客: Leanote也可以作为你的个人博客, 把你的知识传播的更远!
**其它特性** **一些其它特性**
* 支持Markdown编辑 * 支持Markdown编辑
* 写作模式 * 写作模式
* `Vim` 及 `Emacs` 编辑模式
* 支持PDF导出 * 支持PDF导出
* 支持批量操作 * 支持批量操作
* 博客自定义主题, 实现高度定制化 * 博客自定义主题, 实现高度定制化
## 2. 为什么我们要创建Leanote? ## 2. 为什么我们要创建Leanote?
我们都曾是`Evernote`的忠实粉丝, 一直以来`Evernote`都是我们日常知识管理的有效工具。于是我们决定重新创造一款工具,提供`Evernote`所能提供的功能,同时弥补`Evernote`的不足,比如: 说实话, 我们曾是evernote的忠实粉丝, 但是我们也发现evernote的不足:
* 功能更强的文本编辑器:`Evernote`的编辑器不能满足我们的需求, 不能实现文档导航、不能贴代码(格式会乱掉, 作为程序员, 代码是我们的基本需求啊), 图片不能缩放等。 * evernote的编辑器不能满足我们的需求, 不能贴代码(格式会乱掉, 作为程序员, 代码是我们的基本需求啊), 图片不能缩放.
* `Evernote` 不支持所有人都喜爱的markdown语法,于是我们为Leanote配备了一款可以实时渲染的markdown编辑器。 * 我们是markdown的爱好者, 可是evernote竟然没有.
* 如果你是一名开发者,觉得手指怀念`Vim` 或 `Emacs` 了,那么我们还提供给你`Vim` 和 `Emacs` 写作模式,配合*markdown*的格式编辑,写作的时候再也不用去碰鼠标了。 * 我们也想将知识公开, 所以我们有自己的博客, 如wordpress, 但为什么这两者不能合二为一呢?
* 知识积累和知识分享同样重要,因此大家都有自己的笔记账号和社交账号。但为什么这两者不能合二为一呢? Leanote 做到了将二者无缝衔接。
* 一套完整的、全平台覆盖的软件套装,包括了web、桌面、安卓、IOS设备,而且全部开源!
* 还有... * 还有...
## 3. 获取Leanote ## 3.安装Leanote
Leanote云笔记产品包括: Leanote Web & Server(即本仓库), 桌面客户端, IOS, android. 4端全部开源! Leanote云笔记产品包括: Leanote Web & Server(即本仓库), 桌面客户端, ios, android. 4端全部开源! 你可以下载它安装在自己的服务器上, Leanote的客户端可以连接自建的服务.
如果想试用我们的产品,欢迎在 https://leanote.com 上注册, Leanote团队为你提供稳定可靠的服务。 欢迎在 https://leanote.com 上注册, Leanote团队为你提供稳定可靠的服务.
担心服务厂商如何处理你的个人数据吗?你可以下载Leanote安装在自己的服务器上, 通过Leanote客户端连接与自建服务同步数据。
这里详细整理了Leanote二进版和Leanote开发版的安装教程, 请移步至: 这里详细整理了Leanote二进版和Leanote开发版的安装教程, 请移步至:
* Leanote二进制详细安装教程: * [Leanote二进制详细安装教程](https://github.com/leanote/leanote/wiki/leanote%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)
* [Windows](https://github.com/leanote/leanote/wiki/Leanote%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B---Windows) * [Leanote源码详细安装教程](https://github.com/leanote/leanote/wiki/leanote%E5%BC%80%E5%8F%91%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)
* [Mac, Linux](https://github.com/leanote/leanote/wiki/leanote%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)
* Leanote源码详细安装教程:
* [Windows](https://github.com/leanote/leanote/wiki/Leanote-%E6%BA%90%E7%A0%81%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B----Windows)
* [Mac, Linux](https://github.com/leanote/leanote/wiki/leanote%E5%BC%80%E5%8F%91%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)
## 4. 相关文档 ## 4. 如何对Leanote进行二次开发
更多详细的安装说明、问题处理和配置说明文档,请查看 [wiki](https://github.com/leanote/leanote/wiki)。 请查看 [How-to-develop-Leanote](https://github.com/leanote/leanote/wiki/How-to-develop-leanote-%E5%A6%82%E4%BD%95%E5%BC%80%E5%8F%91leanote)
## 5. 如何对Leanote进行二次开发 ## 5 相关文档
* [Leanote二进制版详细安装教程](https://github.com/leanote/leanote/wiki/leanote%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)
* [Leanote源码详细安装教程](https://github.com/leanote/leanote/wiki/leanote%E5%BC%80%E5%8F%91%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)
* [Leanote source Leanote源码导读](https://github.com/leanote/leanote/wiki/Leanote-source-leanote源码导读)
* [Leanote blog theme api(中文版)](https://github.com/leanote/leanote/wiki/leanote-blog-theme-api)
* [How to develop leanote 如何开发Leanote](https://github.com/leanote/leanote/wiki/How-to-develop-leanote-如何开发leanote)
如果您有兴趣基于Leanote二次开发,请查看 [How-to-develop-Leanote](https://github.com/leanote/leanote/wiki/How-to-develop-leanote-%E5%A6%82%E4%BD%95%E5%BC%80%E5%8F%91leanote)。 更多文档请查看 [wiki](https://github.com/leanote/leanote/wiki).
## 6. 贡献者 ## 6. 贡献者
在此对向Leanote贡献力量的[贡献者们](https://github.com/leanote/leanote/graphs/contributors) 表示感谢。Leanote因有你们而更完美! 谢谢 [贡献者](https://github.com/leanote/leanote/graphs/contributors) 的贡献, Leanote因有你们而更完美!
## 7. 加入我们 ## 7. 加入我们
欢迎提交[pull requests](https://github.com/leanote/leanote/pulls) 到Leanote。 欢迎提交[pull requests](https://github.com/leanote/leanote/pulls) 到Leanote.
有任何问题或建议, 请先搜索[issue](https://github.com/leanote/leanote/issues)区是否已经有解决方法。如果没有,欢迎提交新issue。 有任何问题或建议, 欢迎提交[issue](https://github.com/leanote/leanote/issues).
Leanote还有很多问题, 如果你喜欢它, 欢迎加入我们一起完善Leanote。 Leanote还有很多问题, 如果你喜欢它, 欢迎加入我们一起完善Leanote.
## 8. 捐赠 ## 8. 捐赠
支持我们, [捐赠Leanote](http://leanote.org/#donate). 感谢[捐赠者](http://leanote.leanote.com/post/leanote-donation-list), 谢谢你们的鼓励, Leanote会一直坚持!
如果您喜欢我们的产品,请考虑支持我们, [捐赠Leanote](http://leanote.org/#donate)。
感谢[这些捐赠者](http://leanote.leanote.com/post/leanote-donation-list), 谢谢你们的鼓励, Leanote会一直坚持!
## 9. 其它相关项目 ## 9. 其它相关项目
* [Leanote Desktop App](https://github.com/leanote/desktop-app), [下载地址](http://app.leanote.com) * [Leanote Desktop App](https://github.com/leanote/desktop-app), [下载地址](http://app.leanote.com)
+210
View File
@@ -166,6 +166,216 @@ func Init(url, dbname string) {
// session // session
Sessions = Session.DB(dbname).C("sessions") Sessions = Session.DB(dbname).C("sessions")
collectionNames, err := Session.DB(dbname).CollectionNames()
// 如果没有表, 则表示是第一次安装
if (err != nil || len(collectionNames) == 0) {
Log("init db index")
initIndex(dbname)
}
}
func initIndex(dbname string) {
// 索引
indexes := map[string][]mgo.Index{
"notebooks": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"notes": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
mgo.Index{
Key: []string{"IsTrash"},
Background: true,
},
mgo.Index{
Key: []string{"UrlTitle"},
Background: true,
},
mgo.Index{
Key: []string{"IsBlog"},
Background: true,
},
mgo.Index{
Key: []string{"CreatedTime"},
Background: true,
},
mgo.Index{
Key: []string{"UpdatedTime"},
Background: true,
},
mgo.Index{
Key: []string{"PublicTime"},
Background: true,
},
mgo.Index{
Key: []string{"RecommendTime"},
Background: true,
},
mgo.Index{
Key: []string{"NotebookId"},
Background: true,
},
mgo.Index{
Key: []string{"UserId", "IsBlog"},
Background: true,
},
},
"note_contents": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"note_content_histories": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"share_notes": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
mgo.Index{
Key: []string{"ToUserId"},
Background: true,
},
},
"share_notebooks": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
mgo.Index{
Key: []string{"ToUserId"},
Background: true,
},
},
"has_share_notes": []mgo.Index{
mgo.Index{
Key: []string{"UserId", "ToUserId"},
Background: true,
Unique: true,
},
},
"users": []mgo.Index{
mgo.Index{
Key: []string{"Email"},
Background: true,
},
mgo.Index{
Key: []string{"Username"},
Background: true,
},
},
"groups": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"group_users": []mgo.Index{
mgo.Index{
Key: []string{"GroupId"},
Background: true,
},
},
"tags": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"note_tags": []mgo.Index{
mgo.Index{
Key: []string{"UserId", "TagId"},
Background: true,
},
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"tag_count": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"blog_singles": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"blog_likes": []mgo.Index{
mgo.Index{
Key: []string{"NoteId"},
Background: true,
},
},
"blog_comments": []mgo.Index{
mgo.Index{
Key: []string{"NoteId"},
Background: true,
},
},
"themes": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"note_images": []mgo.Index{
mgo.Index{
Key: []string{"ImageId"},
Background: true,
},
mgo.Index{
Key: []string{"NoteId"},
Background: true,
},
},
"albums": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"files": []mgo.Index{
mgo.Index{
Key: []string{"UserId"},
Background: true,
},
},
"attachs": []mgo.Index{
mgo.Index{
Key: []string{"NoteId"},
Background: true,
},
},
"sessions": []mgo.Index{
mgo.Index{
Key: []string{"SessionId"},
Background: true,
},
},
}
for collection, ins := range indexes {
col := Session.DB(dbname).C(collection)
for _, in := range ins {
col.EnsureIndex(in)
}
}
} }
func close() { func close() {
+10 -18
View File
@@ -1,34 +1,26 @@
package lea package lea
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/revel/revel" "github.com/revel/revel"
) )
func Log(i ...interface{}) { func Log(i interface{}) {
revel.INFO.Println(i...) revel.INFO.Println(i)
}
func LogW(i ...interface{}) {
revel.WARN.Println(i...)
}
func Log1(key, i interface{}) {
revel.INFO.Println(key, i)
} }
func LogJ(i interface{}) { func LogJ(i interface{}) {
b, _ := json.MarshalIndent(i, "", " ") b, _ := json.MarshalIndent(i, "", " ")
revel.INFO.Println(string(b)) revel.INFO.Println(string(b))
} }
// 为test用 // 为test用
func L(i interface{}) { func L(i interface{}) {
fmt.Println(i) fmt.Println(i)
} }
func LJ(i interface{}) { func LJ(i interface{}) {
b, _ := json.MarshalIndent(i, "", " ") b, _ := json.MarshalIndent(i, "", " ")
fmt.Println(string(b)) fmt.Println(string(b))
} }
+1 -8
View File
@@ -7,7 +7,6 @@ import (
"os" "os"
"path" "path"
"strings" "strings"
"github.com/leanote/leanote/app/lea"
) )
// main functions shows how to TarGz a directory/file and // main functions shows how to TarGz a directory/file and
@@ -145,18 +144,12 @@ func Unzip(srcFilePath string, destDirPath string) (ok bool, msg string) {
} }
defer r.Close() defer r.Close()
for _, f := range r.File { for _, f := range r.File {
// fmt.Println("FileName : ", f.Name); // j/aaa.zip // fmt.Println("FileName : ", f.Name); // j/aaa.zip
rc, err := f.Open() rc, err := f.Open()
if err != nil { if err != nil {
panic(err) panic(err)
} }
// 包含恶意目录
if strings.Contains(f.Name, "../") {
lea.LogW("恶意文件", f.Name);
continue
}
// 把首文件夹去掉, 即j去掉, 分离出文件夹和文件名 // 把首文件夹去掉, 即j去掉, 分离出文件夹和文件名
paths := strings.Split(f.Name, "/") paths := strings.Split(f.Name, "/")
prePath := "" prePath := ""
-22
View File
@@ -264,22 +264,8 @@ func (this *ThemeService) GetDefaultThemes() (themes []info.Theme) {
return return
} }
func validateFilename(filename string) bool {
// 防止用"../../来获取其它文件"
if (strings.Contains(filename, "..")) {
return false
}
return true
}
// 得到模板内容 // 得到模板内容
func (this *ThemeService) GetTplContent(userId, themeId, filename string) string { func (this *ThemeService) GetTplContent(userId, themeId, filename string) string {
if (!validateFilename(filename)) {
return ""
}
path := this.GetThemeAbsolutePath(userId, themeId) + "/" + filename path := this.GetThemeAbsolutePath(userId, themeId) + "/" + filename
return GetFileStrContent(path) return GetFileStrContent(path)
} }
@@ -304,10 +290,6 @@ func (this *ThemeService) GetThemePath(userId, themeId string) string {
// 更新模板内容 // 更新模板内容
func (this *ThemeService) UpdateTplContent(userId, themeId, filename, content string) (ok bool, msg string) { func (this *ThemeService) UpdateTplContent(userId, themeId, filename, content string) (ok bool, msg string) {
if (!validateFilename(filename)) {
return
}
basePath := this.GetThemeAbsolutePath(userId, themeId) basePath := this.GetThemeAbsolutePath(userId, themeId)
path := basePath + "/" + filename path := basePath + "/" + filename
if strings.Contains(filename, ".html") { if strings.Contains(filename, ".html") {
@@ -344,10 +326,6 @@ func (this *ThemeService) UpdateTplContent(userId, themeId, filename, content st
} }
func (this *ThemeService) DeleteTpl(userId, themeId, filename string) (ok bool) { func (this *ThemeService) DeleteTpl(userId, themeId, filename string) (ok bool) {
if (!validateFilename(filename)) {
return
}
path := this.GetThemeAbsolutePath(userId, themeId) + "/" + filename path := this.GetThemeAbsolutePath(userId, themeId) + "/" + filename
ok = DeleteFile(path) ok = DeleteFile(path)
return return
-1
View File
@@ -37,7 +37,6 @@ function log(o) {
<div id="navbar" class="navbar-collapse collapse"> <div id="navbar" class="navbar-collapse collapse">
<div id="lang"> <div id="lang">
<a data-lang="en-us">English</a> <a data-lang="en-us">English</a>
<a data-lang="de-de">Deutsch</a>
<a data-lang="fr-fr">Français</a> <a data-lang="fr-fr">Français</a>
<a data-lang="zh-cn">简体中文</a> <a data-lang="zh-cn">简体中文</a>
<a data-lang="zh-hk">繁体中文</a> <a data-lang="zh-hk">繁体中文</a>
+3 -3
View File
@@ -1,5 +1,5 @@
#------------------------ #------------------------
# leanote config # Leanote config
#------------------------ #------------------------
http.port=9000 http.port=9000
@@ -12,13 +12,13 @@ adminUsername=admin
# mongdb # mongdb
db.host=127.0.0.1 db.host=127.0.0.1
db.port=27017 db.port=27017
db.dbname=leanote # required db.dbname=leanote2 # required
db.username= # if not exists, please leave it blank db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank db.password= # if not exists, please leave it blank
# or you can set the mongodb url for more complex needs the format is: # or you can set the mongodb url for more complex needs the format is:
# mongodb://myuser:mypass@localhost:40001,otherhost:40001/mydb # mongodb://myuser:mypass@localhost:40001,otherhost:40001/mydb
# db.url=mongodb://root:root123@localhost:27017/leanote # db.url=mongodb://root:root123@localhost:27017/leanote
# db.urlEnv=${MONGODB_URL} # set url from env. eg. mongodb://root:root123@localhost:27017/leanote db.urlEnv=${MONGODB_URL} # set url from env, for docker. eg. mongodb://root:root123@localhost:27017/leanote
# You Must Change It !! About Security!! # You Must Change It !! About Security!!
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y # app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y #
-31
View File
@@ -1,31 +0,0 @@
# album image
Images=Bilder
Upload=Upload
Image URL=Bild URL
Albums=Alben
Default=Standard
File title search=Dateinamensuche
Go to upload images=Gehe zu Bildupload
Rename=Umbenennen
Add=Hinzufügen
Add Album=Album hinzufügen
Add Image=Bild hinzufügen
Can't load this url=Diese URL kann nicht geladen werden
No Images=Keine Bilder
Click to upload images Or Drop images to here=Hier Klicken und Bilder hochzuladen oder per Drag'n'Drop Bilder hier ablegen
Cannot delete default album=Standard Album kann nicht gelöscht werden
Cannot rename default album=Standard Album kann nicht umbenannt werden
This album has images, please delete it's images at first.=Dieses Album enthält Bilder, bitte diese zuerst löschen.
Rename Album=Album umbenennen
Add Success!=Hinzufügen erfolgreich!
Rename Success!=Umbenennen erfolgreich!
Delete Success!=Löschen erfolgreich!
Are you sure to delete this image ?=Soll dieses Bild wirklich gelöscht werden ?
click to remove this image=Klicken um dieses Bild zu löschen
error=Fehler
Error=Fehler
Prev=Vorheriges
Next=Nächstes
-91
View File
@@ -1,91 +0,0 @@
# blog
blogNavs=Navigation
quickLinks=Quick Links
latestPosts=Neuste Posts
noBlog=Kein Blog
noTag=Keine Tags
blogClass=Kategorie
updatedTime=Aktualisert am
createdTime=Erstellt am
fullBlog=Vollstädiger Blog
blogNav=Blog Navigation
more=Mehr...
previous=Vorherige
next=Nächste
#
# set blog
#
blogSet=Blog Konfiguration
baseInfoSet=Grundeinstellungen
commentSet=Kommentar
themeSet=Theme
theme=Theme
blogName=Titel
blogLogo=Logo
blogDesc=Beschreibung
aboutMe=Über mich
#domain
domainSet=Domain
subDomain=Sub-Domain
domain=Eigene Domain
# theme
elegant=Elegant
navFixed=Navigation fest am linken Rand
openComment=Offen für Kommentare?
chooseComment=Kommentar System
disqusHelp=Bitte Disqus Id eingeben
needHelp=Brauche Sie Hilfe?
blogLogoTips=Bild Hochladen für den Blogtitel
saveSuccess=Speichern erfolgreich
community=Community
home=Home
none=Keine
moreShare=Mehr
sinaWeibo=Weibo
weixin=Weichat
tencentWeibo=Tencent Weibo
qqZone=QQ Zone
renren=Renren
report=Report
like=Gefällt mir
unlike=Gefällt mir nicht mehr
viewers=Betrachter
author=Autor
delete=Löschen
reply=Antworten
comment=Kommentar
comments=Kommentare
cancel=Abbrechen
confirm=Bestätigen
signIn=Anmelden
signUp=Registrieren
submitComment=Absenden
reportReason1=不友善内容
reportReason2=广告等垃圾信息
reportReason3=违法违规内容
reportReason4=不宜公开讨论的政治内容
other=Anderes
reportReason=Grund
chooseReason=请选择举报理由
reportSuccess=举报成功, 我们处理后会通知作者, 感谢您的监督
error=Error
reportComment?=举报该评论?
reportBlog?=举报该博客?
confirmDeleteComment=Sind Sie sicher?
scanQRCode=Öffnen Sie weichat und scannen den QR Code
justNow=Jetz
minutesAgo=Minuten
hoursAgo=Stunden
daysAgo=Tage
weeksAgo=Wochen
monthsAgo=Monate
a=a
-35
View File
@@ -1,35 +0,0 @@
# markdown editor
Hyperlink=Hyperlink
Please provide the link URL and an optional title=Bitte Link URL und einen optionalen Titel angeben
optional title=Optionaler Titel
Ok=Ok
Cancel=Abbrechen
Strong=Fett
strong text=Text in Fettschrift
Emphasis=Kursiv
emphasized text=Kursiver Text
Blockquote=Blockzitat
Code Sample=Code-Schnipsel
enter code here=Code hier eingeben
Image=Bild
Heading=Überschrift
Numbered List=Nummerierte Liste
Bulleted List=Aufzählungsliste
List item=Listenelement
Horizontal Rule=Horizontale Trennlinie
Markdown syntax=Markdown Syntax
Undo=Rückgängig
Redo=Wiederholen
enter image description here=Beschreibung des Bildes hier eingeben
enter link description here=Beschreibung des Links hier eingeben
Edit mode=Bearbeiten Modus
Vim mode=Vim Modus
Emacs mode=Emacs Modus
Normal mode=Normaler Modus
Normal=Normal
Light=Light
Light editor=Light Editor
Insert Image=Bild einfügen
-135
View File
@@ -1,135 +0,0 @@
####################
# Member Center
####################
memberCenter=Mitgliederbereich
userNotExists=Der Benutzer ist nicht vorhanden
hasUsers=Der Benutzer existiert bereits
Leanote Blog Theme Api=Leanote Blog Theme Schnittstelle
My Group=Meine Gruppe
# post abstract
Abstract=Zusammenfassung
Description=Beschreibungn
Once the abstract has been updated, it will not set the abstract automatically other than you cancel it.=Wenn die Zusammenfassung einmal definiert wurde, wird sie nicht automatisch aktulisiert werden, wenn Sie sie löschen.
Main Image=Haupt-Bild
Get next image as main image from content=Das Bild als Haupt-Bild von folgendem Inhalt definieren
Raw Content=Rohdaten
#memeber
welcomeToLeanote=Willkommen
accountInfo=Konto Information
accountType=Konto Typ
premiumAccountType=Premium
normalAccountType=Normal
imageSize=Bild Kapazität
attachSize=Anhang Kapazität
totalTraffic=Web Traffic
upgrade=Konto Upgraden
leanoteEvents=Leanote News
addLeanoteAccount=Neues Leanote Konto
defaultComment=Standard Leanote Kommentar System
upgradeAccountTips=Ich möchte eine eigene Domain für meinen Blog verwenden, <a class="btn btn-default" href="/service">Konto Upgrade</a>
cateIsPublicNotebook=Kategorie der veröffentlichten Notizen
dragAndSort=Ziehen zum Sortieren
permanentLink=Permanent Link
cate=Kategorie
noCates=Keine Kategorie
single=Einfache Seite
singleTips=Es können viele einzelne Seiten angelegt werden
addSingle=Neue einfache Seite
updateSingle=Einfache Seite aktualisieren
inputSingleTitle=Titel für einfache Seite erforderlich
saveSort=Reihenfolge speichern
pagingAndSort=Paging und Sortiereinstellungen
perPageSize=Anzahl Posts pro Seite
sortField=Sortierfeld
sortType=Sortiertyp
publicTime=Veröffentlicht am
createdTime=Erstellt am
updatedTime=Geändert am
desc=Absteigend
asc=Aufsteigend
postList=Veröffentlichungsliste
hasSelfDefined=ist definiert
noSelfDefined=ist nicht definiert
setAbstract=Einstellungen der Zusammenfassung
title=Titel
content=Inhalt
addTheme=Neues Theme
importTheme=Import Theme
exportTheme=Export Theme
export=Export
preview=Vorschau
edit=Bearbeiten
use=Benutzen
install=Installieren
currentTheme=Aktuelles Theme
myOtherThemes=Meine anderen Themes
leanoteThemeMarket=Leanote Theme Market
updateTheme=Theme aktualisieren
tplStyleScript=template, style, script
newFile=Neue Datei
image=Bild
currentFile=Aktuelle Datei
tpl=Template
style=Style
script=Script
header=Header
footer=Footer
index=Home
cate=Kategorie
search=Suchen
single=Einfache Seite
archive=Archiv
post=Post
tags=Tags
tag_posts=Tag's posts
share_comment=Kommentare
themeJson=Theme Einstellungen
paging=Paging
highlight=Code highlight
# member title
Leanote Member Center=Leanote Mitgliederbereich
Username=Benutzername
Email=E-Mail
Password=Passwort
Avatar=Avatar
Add Account=Konto hinzufügen
Update Post Abstract=Zusammenfassung aktualisieren
Blog Base Info=Blog Grundeinstellungen
Comment=Kommentare
Posts=Posts
Domain=Domain
Paging=Paging
Category=Kategorien
Add Single=Einfache Seite hinzufügen
Update Single=Einfache Seite aktualiseren
Single=Einfache Seiten
Theme=Theme
Upate Theme=Theme Aktualisieren
group=Gruppe
newGroup=Neue Gruppe
deleteGroup=Gruppe löschen
addMemberTips=Benutzername oder E-Mail angeben um Benutzer hinzuzufügen
deleteMember=Mitglied entfernen
forbiddenNotMyGroup=Sie haben keine Zugriffsrechte, da Sie nicht Besitzer der Gruppe sind
userExistsInGroup=Dieser Benutzer ist bereits Mitglied in der Gruppe
notMyGroup=Sie sind nicht Besitzer der Gruppe
# view js
Are you sure ?=Sind Sie sicher ?
Are you sure to install it ?=Soll das wirklich installiert werden ?
Are you sure to delete=Wirklich löschen
Success=Erfolgreich
Error=Fehler
File exists=Datei bereits vorhanden
Delete file=Datei löschen
No images=Keine Bilder
Filename=Dateiname
Group Title=Gruppenname
-286
View File
@@ -1,286 +0,0 @@
# leanote
app=Leanote
moto=Nicht nur ein Notizzettel!
moto2=Wissen teilen, Blog, Zusammenarbeit ... Alles in Leanote
moto3=Einfach, aber nicht leicht
fork github=Fork Leanote auf Github
# Anfang
openSource=leanote.org
forgetPassword = Passwort vergessen?
or=oder
try=Ausprobieren
3th=Externe Konten
usernameOrEmail=Nutzername oder E-Mail
password=Passwort
home=Home
desktopApp=App
aboutLeanote=Über Leanote
suggestions=Vorschläge
yourSuggestions=Vorschläge
leanoteBlog=Blog
knowledge=Wissen
knowledgeInfo=Nutze Leanote als Notizzettel und verwalte dein Wissen in Leanote.
share=Teilen
shareInfo=Teile dein Wissen mit Anderen in Leanote.
cooperation=Zusammenarbeit
cooperationInfo=Arbeite mit Anderen zusammen und verbessere dein Wissen.
blog=Blog
blogInfo=Veröffentliche dein Wissen, und Leanote ist dein Blog!
suggestionsInfo=Hilf uns, unseren Service zu verbessern.
yourContact=Dein Kontakt
emailOrOthers=E-Mail oder andere Kontaktmöglichkeiten
captcha=Sicherheitswort
reloadCaptcha=Sicherheitswort neu laden
captchaError=Sicherheitswort stimmt nicht überein
inputCaptcha=Sicherheitswort ist notwendig
noTag=Keine Tags
hi=Hallo
welcomeUseLeanote=Willkommen!
myNote=Meine Notizen
curUser=E-Mail
# form
submit=Übertragen
Submit=Übertragen
register=Registrieren
login=Einloggen
Password=Passwort
password2=Bestätige dein Passwort
email=E-Mail
inputUsername=Nutzername(E-Mail) ist erforderlich
inputEmail=E-Mail ist erforderlich
wrongEmail=Falsche E-Mail
wrongUsernameOrPassword=Falscher Nutzername oder Passwort
inputPassword=Passwort ist erforderlich
wrongPassword=Falsches Passwort
logining=Einloggen
loginSuccess=Einloggen erfolgreich
ing=Bearbeiten
use = Nutzen
hadAcount = Du hast schon ein Konto?
hasAcount = Du hast noch kein Konto?
signInWithThird=Mit anderem Konto anmelden
# Registrierung
registerSuccessAndRdirectToNote=Registrierung erfolgreich, Weiterleitung ...
userHasBeenRegistered=%s ist registriert
# Passwort vergessen
passwordTips=Passwortlänge mindestens 6 Zeichen
findPassword=Finde Passwort
findPasswordSendEmailOver=Wir haben dir bereits den Passwortlink geschickt, bitte überprüfe deine E-Mail.
checkEmai=Überprüfe deine E-Mail
findPasswordTimeout=Unterbrechung
reFindPassword=Suche Passwort noch mal
updatePassword=Aktualisiere Passwort
updatePasswordSuccessRedirectToLogin=Aktualisierung des Passworts war erfolgreich, Weiterleitung zur Login-Seite ...
inputPassword2=Bitte gib dein Passwort erneut ein
confirmPassword=Bitte bestätige dein Passwort
notGoodPassword=Kein sicheres Passwort, die Länge sollte zumindest 6 Zeichen betragen
# Notizen Start
myBlog=Blog
Explore=Erkunden
history=Verlauf
save=Speichern
editorTips=Tipps
editorTipsInfo=<h4>1. Kurzbefehle</h4>ctrl+shift+c Ansicht ändern<h4>2. shift+enter Den aktuellen Block verlassen</h4> eg. <img src="/images/outofcode.png" style="width: 90px"/> in dieser Situation nutze shift+enter um den derzeitigen Block zu verlassen.
newNote=Neue Notiz
newMarkdownNote=Neue Markdown Notiz
noNoteNewNoteTips=Diese Notizbuch ist leer, warum erstellst du keine neuen Notizen ...
canntNewNoteTips=Entschuldigung, du kannst hier keine neue Notiz hinzufügen, bitte wähle zuerst ein Notizbuch.
new=Neu
newMarkdown=Neue Markup Notiz
clickAddTag=Klicke hier, um Tags hinzuzufügen
notebook=Notizbücher
note=Notiz
myNotebook=Meine Notizen
addNotebook=Füge Notiz hinzu
search=Suchen
clearSearch=Lösche Suche
all=Neueste
trash=Papierkorb
delete=Löschen
unTitled=Ohne Titel
defaultShare=Standard Freigabe
leftHidden=Verstecke Seitenleiste
leftShow=Zeige Seitenleiste
nav=Notiznavigation
writingMode=Schreibmodus
normalMode=Normaler Modus
saving=Speichern
saveSuccess=Speichern erfolgreich
SearchNote=Notizen suchen
SearchNotebook=Notizbuch suchen
Choose File=Datei auswählen
Download All=Alle herunterladen
Information=Information
Toggle Modify with Readonly=Bearbeiten/Ansehen
update=Aktualisierung
create=Erzeugen
demoRegister=<a href="/register">Registrieren</a>
close=Schliessen
cancel=Abbrechen
send=Absenden
# Etikett
tag=Tags
myTag=Meine Tags
red=Rot
yellow=Gelb
blue=Blau
green=Grün
# Einrichtung
accountSetting=Konto
themeSetting=Darstellung
setAvatar=Avatar
logout=Abmelden
basicInfo=Grundlagen
basicInfoSet=Blog Grundeinstellugen
updateEmail=Aktualisiere E-Mail
usernameSetting=Aktualisiere Nutzernamen
username=Nutzername
avatar=Avatar
chooseImage=Wähle Bild
oldPassword=Altes Passwort
newPassword=Neues Passwort
admin=Admin
default=Voreinstellung
simple=Einfach
# tinymce
uploadImage=Bild hochladen
# blog
aboutMe=Über mich
blogSet=Blog Einstellungen
# index
discussion=Forum
download=Herunterladen
howToInstallLeanote=Wie installiere ich Leanote?
#
attachments = Anhang
donate = Spenden
# Kontextmenü
shareToFriends=Teile mit Anderen
publicAsBlog=Veröffentlichen als Blog
cancelPublic=Veröffentlichung zurückziehen
move=Verschieben
copy=Kopieren
rename=Umbenennen
exportPdf=Export als PDF
addChildNotebook=Erstelle Unter-Notizbuch
deleteAllShared=Lösche gemeinsame Nutzer
deleteSharedNotebook=Lösche gemeinsame Notiz
copyToMyNotebook=Kopiere zu meinen Notizen
####note-dev
emailInSending=E-Mail in Zustellung
checkEmail=Überprüfe E-Mail
setUsername=Lege Nutzernamen fest
setUsernameTips=Deine aktuelle E-Mail ist: <code>%s</code>.Du kannst einen einzigartigen Nutzernamen anlegen. <br />Nutzername' mindestens 4 Zeichen und keinen Sonderzeichen.
currentEmail=Deine aktuelle E-Mail Adresse lautet: <code>%s</code>
updateEmail=Aktualisiere E-Mail
updateEmailTips=Bitte bestätige deine E-Mail nach dem Aktualisieren. Die verifizierte E-Mail ist dein neues Konto.
sendVerifiedEmail=Schicke Bestätigungsmail
verified=Bestätigt
unVerified=Unbestätigt
verifiedNow=Bestätige jetzt
resendVerifiedEmail=Versende Bestätigungsmail noch einmal
# Teilen
defaulthhare=Voreinstellung
addShare=Füge Freund hinzu
friendEmail=E-Mail des Freundes
permission=Erlaubnis
readOnly=Nur lesen
writable=Schreibrechte
inputFriendEmail=E-Mail-Adresse deines Freundes wird benötigt
clickToChangePermission=Klicke, um Erlaubniss zu ändern
sendInviteEmailToYourFriend=Schicke deinem Freund eine E-Mail-Benachrichtigung
copySuccess=Kopieren erfolgreich
copyFailed=Fehler beim Kopieren
friendNotExits=Dein Freund besitzt kein %s's Konto, Einladungs-Benachrichtigung verschicken: %s
emailBodyRequired=E-Mail-Inhalt ist notwendig
clickToCopy=Klicke zum Kopieren
sendSuccess=Erfolgreich
inviteEmailBody=Hallo, ich bin %s, %s ist grossartig, schau es dir an!
# Verlauf
historiesNum=Wir haben deine letzten <b>10</b> Einträge gespeichert.
noHistories=Kein Verlauf
fold=Einklappen
unfold=Ausklappen
datetime=Datum und Zeit
restoreFromThisVersion=Wiederherstellen von dieser Version
confirmBackup=Bist du sicher, dass du von dieser Version wiederherstellen willst? Wir werden die aktuelle Version speichern.
createAccount=Erstelle Konto
createAccountSuccess=Konto-Erstellung erfolgreich
createAccountFailed=Fehler beim Erstellen des Kontos
thirdCreateAcountTips=Du nutzt das %(app)s Konto um dich einzuloggen, du kannst %(app)s Konto erstellen. <br /> Nachdem du das %(app)s Konto erstellt hast, kannst du dich %(app)s einloggen.
## Gültige Nachricht
inputUsername=Füge Nutzernamen ein
updateUsernameSuccess=Aktualisierung des Nutzernamens war erfolgreich
usernameIsExisted=Nutzername existiert bereits
noSpecialChars=Nutzername darf keine Sonderzeichen enthalten
minLength=Die Länge muss mindestens %s Zeichen betragen
errorEmail=Bitte füge die richtige E-Mail ein
verifiedEmaiHasSent=Die Verifizierungs-E-Mail wurde verschickt, bitte checke deine E-Mail.
emailSendFailed=E-Mail-Verifizierung fehlgeschlagen
inputPassword=Passwort ist erforderlich
inputNewPassword=Neues Passwort ist erforderlich
inputPassword2=Bitte füge dein neues Passwort ein
errorPassword=Die länge des Passwortes sollte mindestenns 6 Zeichen und so komplex wie möglich sein
oldPasswordError=Das alte Passwort stimmt nicht überein
confirmPassword=Passwort stimmt nicht überein
updatePasswordSuccess=Aktualiseren des Passwortes erfolgreich
errorDomain=Die personalisierte Webseitenaddresse stimmt nicht, z.B. www.myblog.com
domainExisted=Personalisierte Webseitenadresse existiert bereits
errorSubDomain=Bitte füge eine gültige Subdomain mit mindestens 4 Zeichen und ohne Sonderzeichen ein.
subDomainExisted=Subdomain existiert bereits
domainNotPointToLeanote=Die Benutzerdefinierte Domain zeigt nicht auf d.leanote.com
errorPerPageSize=Seitengrössenfehler
errorSortField=Suchfeldfehler
themeValidHasRoundInclude=WARNING: Layout hat unterschiedliche Verweise!
# share
tokenExpired=Token abgelaufen
Share=Teilen
hasSharedThisNote=hat diese Notiz geteilt
inputSharePwd=Bitte Passwort eingeben
shareToGroup=Mit Gruppe teilen
shareByPwd=Mit Passwort teilen
groupName=Gruppen Name
operation=Operation
groupAndMemberManage=Gruppenmitglieder verwalten
shareToGroupTips=Wenn eine Notiz mit einer Gruppe geteilt wird, bekommen alle Mitglieder ger Gruppe Zugriff
shared=geteilt
notShared=nicht geteilt
shareLink=Geteilt Link
sharePwd=Zugriffs-Passwort
cancelShare=Abbrechen
getShareLinkAndPwd=Link und Passwort kopieren
# Common
created=erstellt
updated=geändert
modify=Ändern
Search=Suchen
Save Success=erfolgreich gespeichert
Please save note firstly!=Bitte die Notiz zuerst speichen!
Please sign in firstly!=Bitte zuerst anmelden!
# Fehler
notFound=Diese Seite kann nicht gefunden werden.
-179
View File
@@ -1,179 +0,0 @@
Cut=Cut
Header 2=Header 2
Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.=Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.
Div=Div
Paste=Paste
Close=Close
Font Family=Schriftart
Pre=Pre
Align right=Align right
New document=New document
Blockquote=Blockquote
Numbered list=Numbered list
Increase indent=Increase indent
Formats=Formats
Headers=Headers
Select all=Select all
Header 3=Header 3
Blocks=Blocks
Undo=Undo
Strikethrough=Strike-through
Bullet list=Bullet list
Header 1=Header 1
Superscript=Superscript
Clear formatting=Clear formatting
Font Sizes=Font Sizes
Subscript=Subscript
Header 6=Header 6
Redo=Redo
Paragraph=Paragraph
Ok=Ok
Bold=Bold
Code=Code
Italic=Italic
Align center=Align centre
Header 5=Header 5
Decrease indent=Decrease indent
Header 4=Header 4
Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.=Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.
Underline=Underline
Cancel=Cancel
Justify=Justify
Inline=Inline
Copy=Copy
Align left=Align left
Visual aids=Visual aids
Lower Greek=Lower Greek
Square=Square
Default=Default
Lower Alpha=Lower Alpha
Circle=Circle
Disc=Disc
Upper Alpha=Upper Alpha
Upper Roman=Upper Roman
Lower Roman=Lower Roman
Name=Name
Anchor=Anchor
You have unsaved changes are you sure you want to navigate away?=You have unsaved changes are you sure you want to navigate away?
Restore last draft=Restore last draft
Special character=Special character
Source code=Source code
Right to left=Right to left
Left to right=Left to right
Emoticons=Emoticons
Robots=Robots
Document properties=Document properties
Title=Title
Keywords=Keywords
Encoding=Encoding
Description=Description
Author=Author
Language=Language
`ctrl/cmd+shift+c` toggle code=`ctrl/cmd+shift+c` toggle code
Fullscreen=Full-screen
Horizontal line=Horizontal line
Horizontal space=Horizontal space
Insert\/edit image=Insert\/edit image
General=General
Advanced=Advanced
Source=Source
Border=Border
Constrain proportions=Constrain proportions
Vertical space=Vertical space
Image description=Image description
Style=Style
Dimensions=Dimensions
Insert image=Insert image
Insert date\/time=Insert date\/time
Remove link=Remove link
Url=URL
Text to display=Text to display
Anchors=Anchors
Insert link=Insert link
New window=New window
None=None
The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?=The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?
Target=Target
The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?=The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?
Insert\/edit link=Insert\/edit link
Insert\/edit video=Insert\/edit video
Poster=Poster
Alternative source=Alternative source
Paste your embed code below:=Paste your embed code below:
Insert video=Insert video
Embed=Embed
Nonbreaking space=Non-breaking space
Page break=Page break
Paste as text=Paste as text
Preview=Preview
Print=Print
Save=Save
Could not find the specified string.=Could not find the specified string.
Replace=Replace
Next=Next
Whole words=Whole words
Find and replace=Find and replace
Replace with=Replace with
Find=Find
Replace all=Replace all
Match case=Match case
Prev=Prev
Spellcheck=Spell-check
Finish=Finish
Ignore all=Ignore all
Ignore=Ignore
Insert row before=Insert row before
Rows=Rows
Height=Height
Paste row after=Paste row after
Alignment=Alignment
Column group=Column group
Row=Row
Insert column before=Insert column before
Split cell=Split cell
Cell padding=Cell padding
Cell spacing=Cell spacing
Row type=Row type
Insert table=Insert table
Body=Body
Caption=Caption
Footer=Footer
Delete row=Delete row
Paste row before=Paste row before
Scope=Scope
Delete table=Delete table
Header cell=Header cell
Column=Column
Cell=Cell
Header=Header
Cell type=Cell type
Copy row=Copy row
Row properties=Row properties
Table properties=Table properties
Row group=Row group
Right=Right
Insert column after=Insert column after
Cols=Cols
Insert row after=Insert row after
Width=Width
Cell properties=Cell properties
Left=Left
Cut row=Cut row
Delete column=Delete column
Center=Centre
Merge cells=Merge cells
Insert template=Insert template
Templates=Templates
Background color=Background colour
Text color=Text colour
Show blocks=Show blocks
Show invisible characters=Show invisible characters
Words: {0}=Words: {0}
Insert=Insert
File=File
Edit=Edit
Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help=Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help
Tools=Tools
View=View
Table=Table
Format=Format
+8 -8
View File
@@ -67,17 +67,17 @@ confirm=Confirm
signIn=Sign In signIn=Sign In
signUp=Sign Up signUp=Sign Up
submitComment=Submit submitComment=Submit
reportReason1=Unfriendly content reportReason1=不友善内容
reportReason2=Advertising and other spam reportReason2=广告等垃圾信息
reportReason3=Illegal content reportReason3=违法违规内容
reportReason4=Public discussion of political content reportReason4=不宜公开讨论的政治内容
other=Other other=Other
reportReason=Reason reportReason=Reason
chooseReason=Select report reason chooseReason=请选择举报理由
reportSuccess=Reporting success, we will notify the author, thank you for your monitor reportSuccess=举报成功, 我们处理后会通知作者, 感谢您的监督
error=Error error=Error
reportComment?=Report this comment? reportComment?=举报该评论?
reportBlog?=Report this blog? reportBlog?=举报该博客?
confirmDeleteComment=Are you sure? confirmDeleteComment=Are you sure?
scanQRCode=Open weichat and scan the QR code scanQRCode=Open weichat and scan the QR code
justNow=Just now justNow=Just now
+1 -1
View File
@@ -91,7 +91,7 @@ editorTipsInfo=<h4>1. Short cuts</h4>ctrl+shift+c Toggle code<h4>2. shift+enter
newNote=New note newNote=New note
newMarkdownNote=New Markdown Note newMarkdownNote=New Markdown Note
noNoteNewNoteTips=The notebook is empty, why not... noNoteNewNoteTips=The notebook is empty, why not...
canntNewNoteTips=Sorry, you can't add notes here, please choose a notebook first. canntNewNoteTips=Sorry, cannot new note in here, please choose a notebook at first.
new=New new=New
newMarkdown=New markdown note newMarkdown=New markdown note
clickAddTag=Click to add Tag clickAddTag=Click to add Tag
+25 -25
View File
@@ -1,31 +1,31 @@
# album image # album image
Images=Images Images=Images
Upload=Téléverser Upload=Upload
Image URL=URL de l'image Image URL=Image URL
Albums=Albums Albums=Albums
Default=Par défaut Default=Default
File title search=Recherche par nom de fichier File title search=File title search
Go to upload images=Aller au téléversement d'images Go to upload images=Go to upload images
Rename=Renommer Rename=Rename
Add=Ajouter Add=Add
Add Album=Ajouter un album Add Album=Add Album
Add Image=Ajouter une image Add Image=Add Image
Can't load this url=Chargement de l'URL impossible Can't load this url=Can't load this url
No Images=Aucune image No Images=No Images
Click to upload images Or Drop images to here=Cliquez pour téléverser des images ou glisser des images ici Click to upload images Or Drop images to here=Click to upload images Or Drop images to here
Cannot delete default album=Album par défaut impossible à effacer Cannot delete default album=Cannot delete default album
Cannot rename default album=Album par défaut impossible à renommer Cannot rename default album=Cannot rename default album
This album has images, please delete it's images at first.=Cet album contient des images, veuillez les effacer en premier. This album has images, please delete it's images at first.=This album has images, please delete it's images at first.
Rename Album=Renommer un album Rename Album=Rename Album
Add Success!=Ajout effectué avec succès! Add Success!=Add Success!
Rename Success!=Renommage effectué avec succès! Rename Success!=Rename Success!
Delete Success!=Effaçage effectué avec succès! Delete Success!=Delete Success!
Are you sure to delete this image ?=Voulez-vous vraiment effacer cette image ? Are you sure to delete this image ?=Are you sure to delete this image ?
click to remove this image=cliquez pour supprimer cette image click to remove this image=click to remove this image
error=erreur error=error
Error=Erreur Error=Error
Prev=Préc Prev=Prev
Next=Suiv Next=Next
+28 -28
View File
@@ -1,35 +1,35 @@
# markdown editor # markdown editor
Hyperlink=Hyperlien Hyperlink=Hyperlink
Please provide the link URL and an optional title=Veuillez fournir le lien hypertexte et un titre facultatif Please provide the link URL and an optional title=Please provide the link URL and an optional title
optional title=titre facultatif optional title=optional title
Ok=Ok Ok=Ok
Cancel=Annuler Cancel=Cancel
Strong=Fort Strong=Strong
strong text=Texte fort strong text=strong text
Emphasis=Emphase Emphasis=Emphasis
emphasized text=Texte avec emphase emphasized text=emphasized text
Blockquote=Bloc de citation Blockquote=Blockquote
Code Sample=Extrait de code Code Sample=Code Sample
enter code here=entrer le code ici enter code here=enter code here
Image=Image Image=Image
Heading=Titre Heading=Heading
Numbered List=Liste ordonnée Numbered List=Numbered List
Bulleted List=Liste non ordonnée Bulleted List=Bulleted List
List item=Element de liste List item=List item
Horizontal Rule=Ligne horizontale Horizontal Rule=Horizontal Rule
Markdown syntax=Syntaxe markdown Markdown syntax=Markdown syntax
Undo=Annuler Undo=Undo
Redo=Reproduire Redo=Redo
enter image description here=entrer la description de l'image ici enter image description here=enter image description here
enter link description here=entrer la description du lien ici enter link description here=enter link description here
Edit mode=Mode édition Edit mode=Edit mode
Vim mode=Mode Vim Vim mode=Vim mode
Emacs mode=Mode Emacs Emacs mode=Emacs mode
Normal mode=Mode Normal Normal mode=Normal mode
Normal=Normal Normal=Normal
Light=Léger Light=Light
Light editor=Editeur léger Light editor=Light editor
Insert Image=Inserérer une image Insert Image=Insert Image
+35 -35
View File
@@ -7,37 +7,37 @@
memberCenter=Espace Membre memberCenter=Espace Membre
userNotExists=L'utilisateur n'existe pas userNotExists=L'utilisateur n'existe pas
hasUsers=L'utilisateur existe déjà hasUsers=L'utilisateur existe déjà
My Group=Mon Groupe My Group=My Group
# post abstract # post abstract
Abstract=Résumé Abstract=Abstract
Description=Description Description=Description
Once the abstract has been updated, it will not set the abstract automatically other than you cancel it.=Une fois que le résumé a été mis à jour, celui-ci ne sera pas automatiquement appliqué, à moins que vous ne l'annuliez. Once the abstract has been updated, it will not set the abstract automatically other than you cancel it.=Once the abstract has been updated, it will not set the abstract automatically other than you cancel it.
Main Image=Image principale Main Image=Main Image
Get next image as main image from content=Faire de cette image l'image principale depuis le contenu Get next image as main image from content=Get next image as main image from content
Raw Content=Contenu brut Raw Content=Raw Content
# member title # member title
Leanote Member Center=Centre de Membre Leanote Leanote Member Center=Leanote Member Center
Username=Nom d'utilisateur Username=Username
Email=Courriel Email=Email
Password=Mot de passe Password=Password
Avatar=Avatar Avatar=Avatar
Add Account=Ajouter compte Add Account=Add Account
Update Post Abstract=Mise à jour après résumé Update Post Abstract=Update Post Abstract
Blog Base Info=Info de base du blog Blog Base Info=Blog Base Info
Comment=Commentaire Comment=Comment
Posts=Posts Posts=Posts
Domain=Domaine Domain=Domain
Paging=Pagination Paging=Paging
Category=Catégorie Category=Category
Add Single=Ajout unique Add Single=Add Single
Update Single=Mise à jour unique Update Single=Update Single
Single=Unique Single=Single
Theme=Thème Theme=Theme
Upate Theme=Mise à jour du thème Upate Theme=Upate Theme
group=Groupe group=Groupe
@@ -45,9 +45,9 @@ newGroup=Nouveau groupe
deleteGroup=Effacer groupe deleteGroup=Effacer groupe
addMemberTips=Rentrer le nom d'utilisateur et le courriel pour ajouter un membre addMemberTips=Rentrer le nom d'utilisateur et le courriel pour ajouter un membre
deleteMember=Effacer membre deleteMember=Effacer membre
forbiddenNotMyGroup=Vous n'avez aucun droit d'accès, car vous n'êtes pas le propriétaire du groupe. forbiddenNotMyGroup=You have no authority to access, cause you are not the group owner
userExistsInGroup=Le membre existe déjà dans le groupe. userExistsInGroup=The member is already exists in this group
notMyGroup=Vous n'êtes pas le propriétaire du groupe. notMyGroup=You are not the group owner
#memeber #memeber
welcomeToLeanote=Bienvenue welcomeToLeanote=Bienvenue
@@ -126,13 +126,13 @@ highlight=Surlignage du code
# view js # view js
Are you sure ?=Êtes-vous sûr ? Are you sure ?=Are you sure ?
Are you sure to install it ?=Voulez-vous vraiment l'installer ? Are you sure to install it ?=Are you sure to install it ?
Are you sure to delete=Voulez-vous vraiment l'effacer? Are you sure to delete=Are you sure to delete
Success=Succès Success=Success
Error=Erreur Error=Error
File exists=Le fichier exite File exists=File exists
Delete file=Effacer le fichier Delete file=Delete file
No images=Pas d'images No images=No images
Filename=Nom de fichier Filename=Filename
Group Title=Titre du groupe Group Title=Group Title
+5 -5
View File
@@ -49,7 +49,7 @@ password2=Confirmer votre mot de passe
email=Adresse de courriel email=Adresse de courriel
inputUsername=Le nom d'utilisateur(adresse courriel) est requis inputUsername=Le nom d'utilisateur(adresse courriel) est requis
inputEmail=L'adresse courriel est requis inputEmail=L'adresse courriel est requis
wrongEmail=Adresse courriel incorrecte wrongEmail=Wrong email
wrongUsernameOrPassword=Mauvais nom d'utilisateur ou mot de passe wrongUsernameOrPassword=Mauvais nom d'utilisateur ou mot de passe
inputPassword=Le mot de passe est requis inputPassword=Le mot de passe est requis
wrongPassword=Mauvais mot de passe wrongPassword=Mauvais mot de passe
@@ -80,7 +80,7 @@ notGoodPassword=Le mot de passe est incorrect, il doit comporter au moins 6 cara
# note # note
myBlog=Blog myBlog=Blog
Explore=Explorer Explore=Explore
history=Historique history=Historique
save=Sauvegarder save=Sauvegarder
editorTips=Astuces editorTips=Astuces
@@ -156,7 +156,7 @@ blogSet=Réglages du blog
# index # index
discussion=Discussion discussion=Discussion
download=Téléchargement download=Téléchargement
howToInstallLeanote=Comment installer Leanote howToInstallLeanote=Comment installer leanote
# #
attachments = Pièces-jointes attachments = Pièces-jointes
@@ -195,7 +195,7 @@ friendEmail=Courriel de l'ami
permission=Autorisation permission=Autorisation
readOnly=Lecture seule readOnly=Lecture seule
writable=Editable writable=Editable
inputFriendEmail=Le courriel de votre ami est requis inputFriendEmail=Le courriel de votre ami est requis/
clickToChangePermission=Cliquez pour changer l'autorisation. clickToChangePermission=Cliquez pour changer l'autorisation.
sendInviteEmailToYourFriend=Envoyer un courriel d'invitation à votre ami. sendInviteEmailToYourFriend=Envoyer un courriel d'invitation à votre ami.
copySuccess=Copie réussie copySuccess=Copie réussie
@@ -245,7 +245,7 @@ errorSortField=Erreur dans le tri du champs
themeValidHasRoundInclude=WARNING: Les modèles ont des références circulaires! themeValidHasRoundInclude=WARNING: Les modèles ont des références circulaires!
# share # share
tokenExpired=Session expirée tokenExpired=Token Expired
Share=Partager Share=Partager
hasSharedThisNote=a partagé cette note hasSharedThisNote=a partagé cette note
inputSharePwd=Veuillez entrer le mot de passe inputSharePwd=Veuillez entrer le mot de passe
+167 -167
View File
@@ -1,179 +1,179 @@
Cut=Couper Cut=Cut
Header 2=Titre 2 Header 2=Header 2
Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.=Votre navigateur ne supporte pas l'accès direct au presse-papier. Veuillez utiliser les raccourcis Ctrl+X\/C\/V à la place. Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.=Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.
Div=Div Div=Div
Paste=Coller Paste=Paste
Close=Fermer Close=Close
Font Family=Famille de police Font Family=Font Family
Pre=Pre Pre=Pre
Align right=Aligné à droite Align right=Align right
New document=Nouveau document New document=New document
Blockquote=Bloc de citation Blockquote=Blockquote
Numbered list=Liste ordonnée Numbered list=Numbered list
Increase indent=Augmenter l'indentation Increase indent=Increase indent
Formats=Format Formats=Formats
Headers=En-tête Headers=Headers
Select all=Sélectionner tout Select all=Select all
Header 3=En-tête 3 Header 3=Header 3
Blocks=Blocs Blocks=Blocks
Undo=Annuler Undo=Undo
Strikethrough=Barrer Strikethrough=Strike-through
Bullet list=Liste à puces Bullet list=Bullet list
Header 1=En-tête 1 Header 1=Header 1
Superscript=Exposant Superscript=Superscript
Clear formatting=Nettoyer le formatage Clear formatting=Clear formatting
Font Sizes=Taille des Polices Font Sizes=Font Sizes
Subscript=Indice Subscript=Subscript
Header 6=En-tête 6 Header 6=Header 6
Redo=Reproduire Redo=Redo
Paragraph=Paragraphe Paragraph=Paragraph
Ok=Ok Ok=Ok
Bold=Gras Bold=Bold
Code=Code Code=Code
Italic=Italique Italic=Italic
Align center=Aligner au centre Align center=Align centre
Header 5=En-tête 5 Header 5=Header 5
Decrease indent=Diminuer l'indentation Decrease indent=Decrease indent
Header 4=En-tête 4 Header 4=Header 4
Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.=Coller est en mode texte clair. Les contenus seront collés désormais en clair jusqu'à ce que vous ne désactiviez cette option. Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.=Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.
Underline=Souligner Underline=Underline
Cancel=Annuler Cancel=Cancel
Justify=Justifier Justify=Justify
Inline=En ligne Inline=Inline
Copy=Copier Copy=Copy
Align left=Aligner à gauche Align left=Align left
Visual aids=Aides visuelles Visual aids=Visual aids
Lower Greek=Grec minuscule Lower Greek=Lower Greek
Square=Carré Square=Square
Default=Par défaut Default=Default
Lower Alpha=Alpha minuscule Lower Alpha=Lower Alpha
Circle=Cercle Circle=Circle
Disc=Disque Disc=Disc
Upper Alpha=Alpha majuscule Upper Alpha=Upper Alpha
Upper Roman=Roman majuscule Upper Roman=Upper Roman
Lower Roman=Roman minuscule Lower Roman=Lower Roman
Name=Nom Name=Name
Anchor=Ancre Anchor=Anchor
You have unsaved changes are you sure you want to navigate away?=Des changements n'ont pas été enregistrés, voulez-vous vraiment sortir? You have unsaved changes are you sure you want to navigate away?=You have unsaved changes are you sure you want to navigate away?
Restore last draft=Restaurer dernier brouillon Restore last draft=Restore last draft
Special character=Caractère spécial Special character=Special character
Source code=Code Source Source code=Source code
Right to left=De droite à gauche Right to left=Right to left
Left to right=De gauche à droite Left to right=Left to right
Emoticons=Emoticones Emoticons=Emoticons
Robots=Robots Robots=Robots
Document properties=Propriétés du document Document properties=Document properties
Title=Titre Title=Title
Keywords=Mots-clés Keywords=Keywords
Encoding=Encodage Encoding=Encoding
Description=Description Description=Description
Author=Auteur Author=Author
Language=Langue Language=Language
`ctrl/cmd+shift+c` toggle code=inverser le code `ctrl/cmd+shift+c` `ctrl/cmd+shift+c` toggle code=`ctrl/cmd+shift+c` toggle code
Fullscreen=Plein écran Fullscreen=Full-screen
Horizontal line=Ligne horizontal Horizontal line=Horizontal line
Horizontal space=Espace horizontal Horizontal space=Horizontal space
Insert\/edit image=Insérer\/éditer image Insert\/edit image=Insert\/edit image
General=Général General=General
Advanced=Avancé Advanced=Advanced
Source=Source Source=Source
Border=Bordure Border=Border
Constrain proportions=Conserver proportions Constrain proportions=Constrain proportions
Vertical space=Espace vertical Vertical space=Vertical space
Image description=Description de l'image Image description=Image description
Style=Style Style=Style
Dimensions=Dimensions Dimensions=Dimensions
Insert image=Insérer image Insert image=Insert image
Insert date\/time=Insérer date\/heure Insert date\/time=Insert date\/time
Remove link=Enlever le lien Remove link=Remove link
Url=URL Url=URL
Text to display=Texte à afficher Text to display=Text to display
Anchors=Ancres Anchors=Anchors
Insert link=Insérer liens Insert link=Insert link
New window=Nouvelle fenêtre New window=New window
None=Aucune None=None
The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?=L'URL que vous avez entré semble être un lien externe. Voulez-vous ajouter le préfixe http:\/\/ requis? The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?=The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?
Target=Cible Target=Target
The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?=L'URL que vous avez entré semble être une adresse de courriel. Voulez-vous ajouter le préfixe mailto: requis? The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?=The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?
Insert\/edit link=Insérer\/éditer le lien Insert\/edit link=Insert\/edit link
Insert\/edit video=Insérer\/éditer la vidéo Insert\/edit video=Insert\/edit video
Poster=Poster Poster=Poster
Alternative source=Source alternative Alternative source=Alternative source
Paste your embed code below:=Coller le code intégré ci-dessous: Paste your embed code below:=Paste your embed code below:
Insert video=Insérer video Insert video=Insert video
Embed=Intégrer Embed=Embed
Nonbreaking space=Espaces insécables Nonbreaking space=Non-breaking space
Page break=Saut de page Page break=Page break
Paste as text=Coller en tant que texte Paste as text=Paste as text
Preview=Aperçu Preview=Preview
Print=Imprimer Print=Print
Save=Enregistrer Save=Save
Could not find the specified string.=Impossible de trouver la chaîne spécifiée. Could not find the specified string.=Could not find the specified string.
Replace=Remplacer Replace=Replace
Next=Suivant Next=Next
Whole words=Mots entiers Whole words=Whole words
Find and replace=Trouver et remplacer Find and replace=Find and replace
Replace with=Remplacer par Replace with=Replace with
Find=Trouver Find=Find
Replace all=Tout remplacer Replace all=Replace all
Match case=Correspondance de la casse Match case=Match case
Prev=Précédent Prev=Prev
Spellcheck=Correcteur d'orthographe Spellcheck=Spell-check
Finish=Terminer Finish=Finish
Ignore all=Ignorer tout Ignore all=Ignore all
Ignore=Ignorer Ignore=Ignore
Insert row before=Insérer une ligne avant Insert row before=Insert row before
Rows=Lignes Rows=Rows
Height=Hauteur Height=Height
Paste row after=Coller une ligne après Paste row after=Paste row after
Alignment=Alignement Alignment=Alignment
Column group=Groupe de colonnes Column group=Column group
Row=Ligne Row=Row
Insert column before=Insérer une colonne avant Insert column before=Insert column before
Split cell=Diviser la cellule Split cell=Split cell
Cell padding=Marge intérieure de cellule Cell padding=Cell padding
Cell spacing=Marge extérieure de cellule Cell spacing=Cell spacing
Row type=Type de ligne Row type=Row type
Insert table=Insérer tableau Insert table=Insert table
Body=Corps Body=Body
Caption=Légende Caption=Caption
Footer=Pied de page Footer=Footer
Delete row=Effacer la ligne Delete row=Delete row
Paste row before=Coller une ligne avant Paste row before=Paste row before
Scope=Cadre Scope=Scope
Delete table=Effacer le tableau Delete table=Delete table
Header cell=En-tête de cellule Header cell=Header cell
Column=Colonne Column=Column
Cell=Cellule Cell=Cell
Header=En-tête Header=Header
Cell type=Type de cellule Cell type=Cell type
Copy row=Copier la ligne Copy row=Copy row
Row properties=Propriétés de la ligne Row properties=Row properties
Table properties=Propriétés du tableau Table properties=Table properties
Row group=Groupe de ligne Row group=Row group
Right=Droit Right=Right
Insert column after=Insérer une colonne après Insert column after=Insert column after
Cols=Colonnes Cols=Cols
Insert row after=Insérer une ligne après Insert row after=Insert row after
Width=Largeur Width=Width
Cell properties=Propriétés de la cellule Cell properties=Cell properties
Left=Gauche Left=Left
Cut row=Couper la ligne Cut row=Cut row
Delete column=Effacer la colonne Delete column=Delete column
Center=Centrer Center=Centre
Merge cells=Fusionner les cellules Merge cells=Merge cells
Insert template=Insérer un modèle Insert template=Insert template
Templates=Modèles Templates=Templates
Background color=Couleur de fond Background color=Background colour
Text color=Couleur de texte Text color=Text colour
Show blocks=Montrer les blocs Show blocks=Show blocks
Show invisible characters=Montrer les caractères invisibles Show invisible characters=Show invisible characters
Words: {0}=Mots: {0} Words: {0}=Words: {0}
Insert=Insérer Insert=Insert
File=Fichier File=File
Edit=Editer Edit=Edit
Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help=Zone de texte riche. Appuyer sur ALT-F9 pour afficher le menu. Sur ALT-F10 pour la barre d'outils. Sur ALT-0 for l'aide. Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help=Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help
Tools=Outils Tools=Tools
View=Vue View=View
Table=Tableau Table=Table
Format=Format Format=Format
-1
View File
@@ -1 +0,0 @@
var MSG={"noTag":"Keine Tags","saveSuccess":"Speichern erfolgreich","none":"Keine","like":"Gefällt mir","unlike":"Gefällt mir nicht mehr","delete":"Löschen","cancel":"Abbrechen","confirm":"Bestätigen","chooseReason":"Grund angeben","reportSuccess":"Erfolg","error":"Fehler","reportComment?":"Kommentar?","reportBlog?":"Blog?","confirmDeleteComment":"Wirklich löschen?","scanQRCode":"weichat öffnen und QR Code scannen","justNow":"Jetzt","minutesAgo":"Minuten","hoursAgo":"Stunden","daysAgo":"Tage","weeksAgo":"Wochen","monthsAgo":"Monate"};function getMsg(key, data) {var msg = MSG[key];if(msg) {if(data) {if(!isArray(data)) {data = [data];}for(var i = 0; i < data.length; ++i) {msg = msg.replace("%s", data[i]);}}return msg;}return key;}
-1
View File
@@ -1 +0,0 @@
var MSG={"app":"Leanote","share":"Teilen","noTag":"Keine Tags","inputUsername":"Benutzernamen eingeben","inputEmail":"E-Mail ist erforderlich","inputPassword":"Passwort ist erforderlich","inputPassword2":"Bitte Passwort erneut eingeben","confirmPassword":"Bitte Passwort bestätigen","history":"Verlauf","editorTips":"Tips","editorTipsInfo":"<h4>1. Kurzbefehle</h4>ctrl+shift+c Ansicht ändern<h4>2. shift+enter Den aktuellen Block verlassen</h4> Beispiel: <img src=\"/images/outofcode.png\" style=\"width: 90px\"/> in dieser Situation nutze shift+enter um den derzeitigen Block zu verlassen.","all":"Neuste","trash":"Papierkorb","delete":"Löschen","unTitled":"Ohne Titel","defaultShare":"Standard Freigabe","writingMode":"Schreibmodus","normalMode":"Normaler Modus","saving":"Speichern","saveSuccess":"Speichern erfolgreich","update":"Aktualisieren","close":"Schliessen","cancel":"Abbrechen","send":"Senden","shareToFriends":"Mit Anderen teilen","publicAsBlog":"Blog veröffentlichen","cancelPublic":"Blog zurückziehen","move":"Verschieben","copy":"Kopieren","rename":"Umbenennen","exportPdf":"Export als PDF","addChildNotebook":"Neue Unter-Notizbuch","deleteAllShared":"Lösche gemeinsame Nutzer","deleteSharedNotebook":"Entfernen des freigegebenen Notizbuchs","copyToMyNotebook":"Zu meinen Notizbüchern kopieren","checkEmail":"E-Mail abrufen","sendVerifiedEmail":"Schicke Bestätigungsmail","defaulthhare":"Voreinstellung","friendEmail":"Friend E-Mail","readOnly":"Nur-Lesen","writable":"Schreibrechte","inputFriendEmail":"Bitte geben Sie Ihre Freunde E-Mail ein","clickToChangePermission":"Klicken Sie auf Berechtigungen ändern","sendInviteEmailToYourFriend":"Senden Sie die Einladung per E-Mail an Freunde","friendNotExits":"Der Benutzer hat %s's nicht registriert, Einladungs-Link:%s","emailBodyRequired":"E-Mail kann nicht leer sein","sendSuccess":"erfolgreich","inviteEmailBody":"Hallo, ich bin %s, %s ist grossartig, schau es dir an!","historiesNum":"Wir haben deine letzten <b>10</b> Einträge gespeichert.","noHistories":"Kein Verlauf","datetime":"Datum und Zeit","restoreFromThisVersion":"Wiederherstellen von dieser Version","confirmBackup":"Sind Sie sicher das die ausgewählte Version wiederhergestellt werden soll? Die aktuelle Notiz wird zuvor gesichert.","createAccountSuccess":"Konto-Erstellung erfolgreich","createAccountFailed":"Fehler beim Erstellen des Kontos","updateUsernameSuccess":"Aktualisierung des Nutzernamens war erfolgreich","usernameIsExisted":"Nutzername existiert bereits","noSpecialChars":"Nutzername darf keine Sonderzeichen enthalten","minLength":"Die Länge muss mindestens %s Zeichen betragen","errorEmail":"Bitte füge die richtige E-Mail ein","verifiedEmaiHasSent":"Die Verifizierungs-E-Mail wurde verschickt, bitte checke deine E-Mail.","emailSendFailed":"E-Mail-Verifizierung fehlgeschlagen","inputNewPassword":"Neues Passwort ist erforderlich","errorPassword":"Die länge des Passwortes sollte mindestenns 6 Zeichen und so komplex wie möglich sein","updatePasswordSuccess":"Aktualiseren des Passwortes erfolgreich","Please save note firstly!":"Bitte die Notiz zuerst speichen!","Please sign in firstly!":"Bitte zuerst anmelden!","Are you sure ?":"Sind Sie sicher ?","Are you sure to install it ?":"Wollen Sie das wirklich installieren ?","Are you sure to delete":"Wirklich Löschen","Success":"Erfolgreich","Error":"Fehler","File exists":"Datei existiert bereits","Delete file":"Datei löschen","No images":"Keine Bilder","Filename":"Dateiname","Group Title":"Gruppenname","Hyperlink":"Hyperlink","Please provide the link URL and an optional title":"Bitte URL und einen optionalen Titel angeben","optional title":"Optionaler Titel","Cancel":"Abbrechen","Strong":"Fett","strong text":"Text in Fettschrift","Emphasis":"Kursiv","emphasized text":"Kursiver Text","Blockquote":"Blockzitat","Code Sample":"Code Schnipsel","enter code here":"Code hier eingeben","Image":"Bild","Heading":"Überschrift","Numbered List":"Nummerierte Liste","Bulleted List":"Aufzählungsliste","List item":"Listenelement","Horizontal Rule":"Horizontaler Trennstrich","Markdown syntax":"Markdown Syntax","Undo":"Rückgängig","Redo":"Wiederholen","enter image description here":"Bildbeschreibung hier eingeben","enter link description here":"Link Beschreibung hier eingeben","Edit mode":"Bearbeiten Modus","Vim mode":"Vim Modus","Emacs mode":"Emacs Modus","Normal mode":"Normaler Modus","Normal":"Normal","Light":"Light","Light editor":"Light Editor","Add Album":"Album hinzufügen","Cannot delete default album":"Das Standard Album kann nicht gelöscht werden","Cannot rename default album":"Das Standard Album kann nicht umbenannt werden","Rename Album":"Album umbenennen","Add Success!":"Hinzufügen erfolgreich!","Rename Success!":"Umbenennen erfolgreich!","Delete Success!":"Löschen erfolgreich!","Are you sure to delete this image ?":"Soll dieses Bild wirklich gelöscht werden ?","click to remove this image":"Klicken um dieses Bild zu löschen","error":"Fehler","PrevLine truncated
-20
View File
@@ -1,20 +0,0 @@
(function(){function s(r){var i=function(e,t){return n("",e,t)},s=e;r&&(e[r]||(e[r]={}),s=e[r]);if(!s.define||!s.define.packaged)t.original=s.define,s.define=t,s.define.packaged=!0;if(!s.require||!s.require.packaged)n.original=s.require,s.require=i,s.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules||(t.modules={},t.payloads={}),t.payloads[e]=r,t.modules[e]=null},n=function(e,t,r){if(Object.prototype.toString.call(t)==="[object Array]"){var s=[];for(var o=0,u=t.length;o<u;++o){var a=i(e,t[o]);if(!a&&n.original)return n.original.apply(window,arguments);s.push(a)}r&&r.apply(null,s)}else{if(typeof t=="string"){var f=i(e,t);return!f&&n.original?n.original.apply(window,arguments):(r&&r(),f)}if(n.original)return n.original.apply(window,arguments)}},r=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return r(e,n[0])+"!"+r(e,n[1])}if(t.charAt(0)=="."){var i=e.split("/").slice(0,-1).join("/");t=i+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},i=function(e,i){i=r(e,i);var s=t.modules[i];if(!s){s=t.payloads[i];if(typeof s=="function"){var o={},u={id:i,uri:"",exports:o,packaged:!0},a=function(e,t){return n(i,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[i]=o,delete t.payloads[i]}s=t.modules[i]=o||s}return s};s(ACE_NAMESPACE)})(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===voiLine truncated
if(r) {
return i.showInvisibles ?
"<span class='ace_invisible ace_invisible_space ace_invalid'>"+i.SPACE_CHAR+"</span>"
: s.stringRepeat("\u00a0", e.length);
// return
}
else return (t+=1,"<span class='ace_cjk' style='width:"+i.config.characterWidth*2+"px'>"+e+"</span>");
},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("<span class='",f,"'",l,">",a,"</span>")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]==" "?(e.push(s.stringRepeat(this.$tabStrings[" "],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,s=0,o=n[0],u=0;for(var a=0;a<t.length;a++){var f=t[a],l=f.value;if(a==0&&this.displayIndentGuides){i=l.length,l=this.renderIndentGuide(e,l,o);if(!l)continue;i-=l.length}if(i+l.length<o)u=this.$renderToken(e,u,f,l),i+=l.length;else{while(i+l.length>=o)u=this.$renderToken(e,u,f,l.substring(0,o-i)),l=l.substring(o-i),i=o,r||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),s++,u=0,o=n[s]||Number.MAX_VALUE;l.length!=0&&(i+=l.length,u=this.$renderToken(e,u,f,l))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||e.push("</div>")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i="opacity"in this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateVisibility.bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=(e?this.$updateOpacity:this.$updateVisibility).bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(Line truncated
(function() {
ace.require(["ace/ace"], function(a) {
a && a.config.init(true);
if (!window.ace)
window.ace = a;
for (var key in a) if (a.hasOwnProperty(key))
window.ace[key] = a[key];
});
})();
// 以下非ace.js文件里的, 只是markdown编辑器要用, mode-ace_mode.js
ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-blocLine truncated
+9 -1
View File
@@ -1,4 +1,12 @@
(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(thisLine truncated (function(){function s(r){var i=function(e,t){return n("",e,t)},s=e;r&&(e[r]||(e[r]={}),s=e[r]);if(!s.define||!s.define.packaged)t.original=s.define,s.define=t,s.define.packaged=!0;if(!s.require||!s.require.packaged)n.original=s.require,s.require=i,s.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules||(t.modules={},t.payloads={}),t.payloads[e]=r,t.modules[e]=null},n=function(e,t,r){if(Object.prototype.toString.call(t)==="[object Array]"){var s=[];for(var o=0,u=t.length;o<u;++o){var a=i(e,t[o]);if(!a&&n.original)return n.original.apply(window,arguments);s.push(a)}r&&r.apply(null,s)}else{if(typeof t=="string"){var f=i(e,t);return!f&&n.original?n.original.apply(window,arguments):(r&&r(),f)}if(n.original)return n.original.apply(window,arguments)}},r=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return r(e,n[0])+"!"+r(e,n[1])}if(t.charAt(0)=="."){var i=e.split("/").slice(0,-1).join("/");t=i+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},i=function(e,i){i=r(e,i);var s=t.modules[i];if(!s){s=t.payloads[i];if(typeof s=="function"){var o={},u={id:i,uri:"",exports:o,packaged:!0},a=function(e,t){return n(i,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[i]=o,delete t.payloads[i]}s=t.modules[i]=o||s}return s};s(ACE_NAMESPACE)})(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===voiLine truncated
if(r) {
return i.showInvisibles ?
"<span class='ace_invisible ace_invisible_space ace_invalid'>"+i.SPACE_CHAR+"</span>"
: s.stringRepeat("\u00a0", e.length);
// return
}
else return (t+=1,"<span class='ace_cjk' style='width:"+i.config.characterWidth*2+"px'>"+e+"</span>");
},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("<span class='",f,"'",l,">",a,"</span>")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]==" "?(e.push(s.stringRepeat(this.$tabStrings[" "],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,s=0,o=n[0],u=0;for(var a=0;a<t.length;a++){var f=t[a],l=f.value;if(a==0&&this.displayIndentGuides){i=l.length,l=this.renderIndentGuide(e,l,o);if(!l)continue;i-=l.length}if(i+l.length<o)u=this.$renderToken(e,u,f,l),i+=l.length;else{while(i+l.length>=o)u=this.$renderToken(e,u,f,l.substring(0,o-i)),l=l.substring(o-i),i=o,r||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),s++,u=0,o=n[s]||Number.MAX_VALUE;l.length!=0&&(i+=l.length,u=this.$renderToken(e,u,f,l))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||e.push("</div>")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i="opacity"in this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateVisibility.bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=(e?this.$updateOpacity:this.$updateVisibility).bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(Line truncated
(function() { (function() {
ace.require(["ace/ace"], function(a) { ace.require(["ace/ace"], function(a) {
a && a.config.init(true); a && a.config.init(true);
+1 -2
View File
@@ -291,8 +291,7 @@ listStr=addAnchors(listStr);listStr=listStr.replace(/\n{2,}(?=\\x03)/,"\n");list
styles: "safe", styles: "safe",
fontsize: "all" fontsize: "all"
} }
}, }
equationNumbers: { autoNumber: "AMS" }
}, },
messageStyle: "none" messageStyle: "none"
}); });
-1
View File
@@ -1 +0,0 @@
tinymce.addI18n("de",{Cut:"Ausschneiden","Heading 5":"Überschrift 5","Header 2":"Überschrift 2","Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.":"Ihr Browser unterstützt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Strg + X / C / V Tastenkombinationen.","Heading 4":"Überschrift 4",Div:"Textblock","Heading 2":"Überschrift 2",Paste:"Einfügen",Close:"Schließen","Font Family":"Schriftart",Pre:"Vorformatierter Text","Align right":"Rechtsbündig ausrichten","New document":"Neues Dokument",Blockquote:"Zitat","Numbered list":"Nummerierte Liste","Heading 1":"Überschrift 1",Headings:"Überschriften","Increase indent":"Einzug vergrößern",Formats:"Formate",Headers:"Überschriften","Select all":"Alles auswählen","Header 3":"Überschrift 3",Blocks:"Absatzformate",Undo:"Rückgängig",Strikethrough:"Durchgestrichen","Bullet list":"Aufzählung","Header 1":"Überschrift 1",Superscript:"Hochgestellt","Clear formatting":"Formatierung entfernen","Font Sizes":"Schriftgröße",Subscript:"Tiefgestellt","Header 6":"Überschrift 6",Redo:"Wiederholen",Paragraph:"Absatz",Ok:"Ok",Bold:"Fett",Code:"Quelltext",Italic:"Kursiv","Align center":"Zentriert ausrichten","Header 5":"Überschrift 5","Heading 6":"Überschrift 6","Heading 3":"Überschrift 3","Decrease indent":"Einzug verkleinern","Header 4":"Überschrift 4","Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.":"Einfügen ist nun im einfachen Textmodus. Inhalte werden ab jetzt als unformatierter Text eingefügt, bis Sie diese Einstellung wieder ausschalten!",Underline:"Unterstrichen",Cancel:"Abbrechen",Justify:"Blocksatz",Inline:"Zeichenformate",Copy:"Kopieren","Align left":"Linksbündig ausrichten","Visual aids":"Visuelle Hilfen","Lower Greek":"Griechische Kleinbuchstaben",Square:"Quadrat",Default:"Standard","Lower Alpha":"Kleinbuchstaben",Circle:"Kreis",Disc:"Punkt","Upper Alpha":"Großbuchstaben","Upper Roman":"Römische Zahlen (Großbuchstaben)","Lower Roman":"Römische Zahlen (Kleinbuchstaben)",Name:"Name",Anchor:"Textmarke","You have unsaved changes are you sure you want to navigate away?":"Die Änderungen wurden noch nicht gespeichert, sind Sie sicher, dass Sie diese Seite verlassen wollen?","Restore last draft":"Letzten Entwurf wiederherstellen","Special character":"Sonderzeichen","Source code":"Quelltext",B:"B",R:"R",G:"G",Color:"Farbe","Right to left":"Von rechts nach links","Left to right":"Von links nach rechts",Emoticons:"Emoticons",Robots:"Robots","Document properties":"Dokumenteigenschaften",Title:"Titel",Keywords:"Schüsselwörter",Encoding:"Zeichenkodierung",Description:"Beschreibung",Author:"Verfasser",Fullscreen:"Vollbild","Horizontal line":"Horizontale Linie","Horizontal space":"Horizontaler Abstand","Insert/edit image":"Bild einfügen/bearbeiten",General:"Allgemein",Advanced:"Erweitert",Source:"Quelle",Border:"Rahmen","Constrain proportions":"Seitenverhältnis beibehalten","Vertical space":"Vertikaler Abstand","Image description":"Bildbeschreibung",Style:"Stil",Dimensions:"Abmessungen","Insert image":"Bild einfügen","Zoom in":"Ansicht vergrößern",Contrast:"Kontrast",Back:"Zurück",Gamma:"Gamma","Flip horizontally":"Horizontal spiegeln",Resize:"Skalieren",Sharpen:"Schärfen","Zoom out":"Ansicht verkleinern","Image options":"Bildeigenschaften",Apply:"Anwenden",Brightness:"Helligkeit","Rotate clockwise":"Im Uhrzeigersinn drehen","Rotate counterclockwise":"Gegen den Uhrzeigersinn drehen","Edit image":"Bild bearbeiten","Color levels":"Farbwerte",Crop:"Bescheiden",Orientation:"Ausrichtung","Flip vertically":"Vertikal spiegeln",Invert:"Invertieren","Insert date/time":"Datum/Uhrzeit einfügen ","Remove link":"Link entfernen",Url:"URL","Text to display":"Anzuzeigender Text",Anchors:"Textmarken","Insert link":"Link einfügen","New window":"Neues Fenster",None:"Keine","The URL you entered seems to be an external link. Do you want to add the required http:// prefix?":'Diese Adresse scheint ein externer Link zu sein. Möchten Sie das dazu benötigte "http://" voranstellen?',Target:"Ziel","The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?":'Diese Adresse scheint eine E-Mail-Adresse zu sein. Möchten Sie das dazu benötigte "mailto:" voranstellen?',"Insert/edit link":"Link einfügen/bearbeiten","Insert/edit video":"Video einfügen/bearbeiten",Poster:"Poster","Alternative source":"Alternative Quelle","Paste your embed code below:":"Fügen Sie Ihren Einbettungscode hier ein:","Insert video":"Video einfügen",Embed:"Einbetten","Nonbreaking space":"Geschütztes Leerzeichen","Page break":"Seitenumbruch","Paste as text":"Als Text einfügen",Preview:"Vorschau",Print:"Drucken",Save:"Speichern","Could not find the specified string.":"Die Zeichenfolge wurde nicht gefunden.",Replace:"Ersetzen",Next:"Weiter","Whole words":"Nur ganze Wörter","Find and replace":"Suchen undLine truncated