support 中文繁体

This commit is contained in:
lealife
2016-03-19 14:05:09 +08:00
parent f5538218bd
commit 2aa3f5a654
51 changed files with 1684 additions and 311 deletions

View File

@ -268,15 +268,17 @@ gulp.task('i18n', function() {
// 必须要的
// keys.push();
genI18nJsFile('blog.zh', [], keys);
genI18nJsFile('blog.en', [], keys);
genI18nJsFile('blog.fr', [], keys);
genI18nJsFile('blog.pt', [], keys);
genI18nJsFile('blog.zh-cn', [], keys);
genI18nJsFile('blog.zh-hk', [], keys);
genI18nJsFile('blog.en-us', [], keys);
genI18nJsFile('blog.fr-fr', [], keys);
genI18nJsFile('blog.pt-pt', [], keys);
genI18nJsFile('msg.fr', ['member.fr', 'markdown.fr', 'album.fr'], keys);
genI18nJsFile('msg.zh', ['member.zh', 'markdown.zh', 'album.zh'], keys);
genI18nJsFile('msg.en', ['member.en', 'markdown.en', 'album.en'], keys);
genI18nJsFile('msg.pt', ['member.pt', 'markdown.pt', 'album.pt'], keys);
genI18nJsFile('msg.fr-fr', ['member.fr-fr', 'markdown.fr-fr', 'album.fr-fr'], keys);
genI18nJsFile('msg.zh-cn', ['member.zh-cn', 'markdown.zh-cn', 'album.zh-cn'], keys);
genI18nJsFile('msg.zh-hk', ['member.zh-hk', 'markdown.zh-hk', 'album.zh-hk'], keys);
genI18nJsFile('msg.en-us', ['member.en-us', 'markdown.en-us', 'album.en-us'], keys);
genI18nJsFile('msg.pt-pt', ['member.pt-pt', 'markdown.pt-pt', 'album.pt-pt'], keys);
});
// 合并album需要的js

View File

@ -3,6 +3,7 @@ package controllers
import (
"encoding/json"
"github.com/leanote/leanote/app/info"
"github.com/leanote/leanote/app/lea/i18n"
"github.com/revel/revel"
"gopkg.in/mgo.v2/bson"
// . "github.com/leanote/leanote/app/lea"
@ -181,13 +182,17 @@ func (c BaseController) E404() revel.Result {
// 设置本地
func (c BaseController) SetLocale() string {
locale := string(c.Request.Locale) // zh-CN
// lang := locale
// if strings.Contains(locale, "-") {
// pos := strings.Index(locale, "-")
// lang = locale[0:pos]
// }
// if lang != "zh" && lang != "en" {
// lang = "en"
// }
lang := locale
if strings.Contains(locale, "-") {
pos := strings.Index(locale, "-")
lang = locale[0:pos]
}
if lang != "zh" && lang != "en" && lang != "fr" && lang != "pt" {
lang = "en"
if !i18n.HasLang(locale) {
lang = i18n.GetDefaultLang()
}
c.RenderArgs["locale"] = lang
c.RenderArgs["siteUrl"] = configService.GetSiteUrl()

View File

@ -1,94 +0,0 @@
package main
import (
"bufio"
"encoding/json"
"fmt"
"os"
"strings"
)
// convert revel msg to js msg
var msgBasePath = "/Users/life/Documents/Go/package2/src/github.com/leanote/leanote/messages/"
var targetBasePath = "/Users/life/Documents/Go/package2/src/github.com/leanote/leanote/public/js/i18n/"
func parse(filename string) {
file, err := os.Open(msgBasePath + filename)
reader := bufio.NewReader(file)
msg := map[string]string{}
if err != nil {
fmt.Println(err)
return
}
for true {
line, _, err := reader.ReadLine()
if err != nil {
break
}
if len(line) == 0 {
continue
}
// 对每一行进行处理
if line[0] == '#' || line[1] == '#' {
continue
}
lineStr := string(line)
// 找到第一个=位置
pos := strings.Index(lineStr, "=")
if pos < 0 {
continue
}
key := string(line[0:pos])
value := string(line[pos+1:])
// fmt.Println(lineStr)
// fmt.Println(value)
msg[key] = value
}
// JSON
b, _ := json.Marshal(msg)
str := string(b)
fmt.Println(str)
targetName := targetBasePath + filename + ".js"
file2, err2 := os.OpenFile(targetName, os.O_RDWR|os.O_CREATE, 0644)
if err2 != nil {
file2, err2 = os.Create(targetName)
}
file2.WriteString("var MSG = " + str + ";" + `
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;
}`)
}
// 生成js的i18n文件
func main() {
parse("msg.en")
parse("msg.zh")
parse("msg.fr")
parse("msg.pt")
parse("blog.zh")
parse("blog.en")
parse("blog.fr")
parse("blog.pt")
}

View File

@ -10,6 +10,7 @@ import (
"github.com/leanote/leanote/app/db"
. "github.com/leanote/leanote/app/lea"
_ "github.com/leanote/leanote/app/lea/binder"
"github.com/leanote/leanote/app/lea/i18n"
"github.com/leanote/leanote/app/lea/route"
"github.com/leanote/leanote/app/service"
"github.com/revel/revel"
@ -38,9 +39,10 @@ func init() {
// session.SessionFilter, // leanote session
// session.MSessionFilter, // leanote memcache session
revel.FlashFilter, // Restore and write the flash cookie.
revel.ValidationFilter, // Restore kept validation errors and save new ones from cookie.
revel.I18nFilter, // Resolve the requested language
revel.FlashFilter, // Restore and write the flash cookie.
revel.ValidationFilter, // Restore kept validation errors and save new ones from cookie.
// revel.I18nFilter, // Resolve the requested language
i18n.I18nFilter, // Resolve the requested language by leanote
revel.InterceptorFilter, // Run interceptors around the action.
revel.CompressFilter, // Compress the result.
revel.ActionInvoker, // Invoke the action.
@ -180,10 +182,18 @@ func init() {
return template.HTML(tagStr)
}
revel.TemplateFuncs["msg"] = func(renderArgs map[string]interface{}, message string, args ...interface{}) template.HTML {
str, ok := renderArgs[revel.CurrentLocaleRenderArg].(string)
if !ok {
return ""
}
return template.HTML(i18n.Message(str, message, args...))
}
// 不用revel的msg
revel.TemplateFuncs["leaMsg"] = func(renderArgs map[string]interface{}, key string) template.HTML {
locale, _ := renderArgs[revel.CurrentLocaleRenderArg].(string)
str := revel.Message(locale, key)
str := i18n.Message(locale, key)
if strings.HasPrefix(str, "???") {
str = key
}
@ -392,9 +402,9 @@ func init() {
*/
/*
{{range $i := N 1 10}}
<div>{{$i}}</div>
{{end}}
{{range $i := N 1 10}}
<div>{{$i}}</div>
{{end}}
*/
revel.TemplateFuncs["N"] = func(start, end int) (stream chan int) {
stream = make(chan int)

208
app/lea/i18n/i18n.go Normal file
View File

@ -0,0 +1,208 @@
package i18n
import (
"fmt"
"github.com/revel/revel"
"github.com/robfig/config"
"os"
"path/filepath"
"regexp"
"strings"
)
const (
CurrentLocaleRenderArg = "currentLocale" // The key for the current locale render arg value
messageFilesDirectory = "messages"
messageFilePattern = `^\w+\.[a-zA-Z]{2}\-[a-zA-Z]{2}$`
unknownValueFormat = "??? %s ???"
defaultLanguageOption = "i18n.default_language"
localeCookieConfigKey = "i18n.cookie"
)
var (
// All currently loaded message configs.
// en-us, zh-cn, zh-hk ->
messages map[string]*config.Config
)
func GetAllLangMessages() map[string]*config.Config {
return messages
}
func HasLang(lang string) bool {
_, ok := messages[lang]
return ok
}
func GetDefaultLang() string {
lang, _ := revel.Config.String(defaultLanguageOption)
return lang
}
// Return all currently loaded message languages.
func MessageLanguages() []string {
languages := make([]string, len(messages))
i := 0
for language, _ := range messages {
languages[i] = language
i++
}
return languages
}
// Perform a message look-up for the given locale and message using the given arguments.
//
// When either an unknown locale or message is detected, a specially formatted string is returned.
func Message(locale, message string, args ...interface{}) string {
language, region := parseLocale(locale)
langAndRegion := language + "-" + region
// revel.TRACE.Println(langAndRegion + " 怎么回事")
messageConfig, knownLanguage := messages[langAndRegion]
if !knownLanguage {
// revel.TRACE.Printf("Unsupported language for locale '%s' and message '%s', trying default language", locale, message)
if defaultLanguage, found := revel.Config.String(defaultLanguageOption); found {
// revel.TRACE.Printf("Using default language '%s'", defaultLanguage)
messageConfig, knownLanguage = messages[defaultLanguage]
if !knownLanguage {
// WARN.Printf("Unsupported default language for locale '%s' and message '%s'", defaultLanguage, message)
return fmt.Sprintf(unknownValueFormat, message)
}
} else {
// WARN.Printf("Unable to find default language option (%s); messages for unsupported locales will never be translated", defaultLanguageOption)
return fmt.Sprintf(unknownValueFormat, message)
}
}
// This works because unlike the goconfig documentation suggests it will actually
// try to resolve message in DEFAULT if it did not find it in the given section.
value, error := messageConfig.String(region, message)
if error != nil {
// WARN.Printf("Unknown message '%s' for locale '%s'", message, locale)
return fmt.Sprintf(unknownValueFormat, message)
}
if len(args) > 0 {
// revel.TRACE.Printf("Arguments detected, formatting '%s' with %v", value, args)
value = fmt.Sprintf(value, args...)
}
return value
}
func parseLocale(locale string) (language, region string) {
if strings.Contains(locale, "-") {
languageAndRegion := strings.Split(locale, "-")
return languageAndRegion[0], languageAndRegion[1]
}
return locale, ""
}
// Recursively read and cache all available messages from all message files on the given path.
func loadMessages(path string) {
messages = make(map[string]*config.Config)
if error := filepath.Walk(path, loadMessageFile); error != nil && !os.IsNotExist(error) {
// ERROR.Println("Error reading messages files:", error)
}
}
// Load a single message file
func loadMessageFile(path string, info os.FileInfo, osError error) error {
if osError != nil {
return osError
}
if info.IsDir() {
return nil
}
if matched, _ := regexp.MatchString(messageFilePattern, info.Name()); matched {
if config, error := parseMessagesFile(path); error != nil {
return error
} else {
locale := parseLocaleFromFileName(info.Name())
// revel.TRACE.Print(locale + "----locale")
// If we have already parsed a message file for this locale, merge both
if _, exists := messages[locale]; exists {
messages[locale].Merge(config)
revel.TRACE.Printf("Successfully merged messages for locale '%s'", locale)
} else {
messages[locale] = config
}
revel.TRACE.Println("Successfully loaded messages from file", info.Name())
}
} else {
revel.TRACE.Printf("Ignoring file %s because it did not have a valid extension", info.Name())
}
return nil
}
func parseMessagesFile(path string) (messageConfig *config.Config, error error) {
messageConfig, error = config.ReadDefault(path)
return
}
func parseLocaleFromFileName(file string) string {
extension := filepath.Ext(file)[1:]
return strings.ToLower(extension)
}
func init() {
revel.OnAppStart(func() {
loadMessages(filepath.Join(revel.BasePath, messageFilesDirectory))
})
}
func I18nFilter(c *revel.Controller, fc []revel.Filter) {
if foundCookie, cookieValue := hasLocaleCookie(c.Request); foundCookie {
revel.TRACE.Printf("Found locale cookie value: %s", cookieValue)
setCurrentLocaleControllerArguments(c, cookieValue)
} else if foundHeader, headerValue := hasAcceptLanguageHeader(c.Request); foundHeader {
revel.TRACE.Printf("Found Accept-Language header value: %s", headerValue)
setCurrentLocaleControllerArguments(c, headerValue)
} else {
revel.TRACE.Println("Unable to find locale in cookie or header, using empty string")
setCurrentLocaleControllerArguments(c, "")
}
fc[0](c, fc[1:])
}
// Set the current locale controller argument (CurrentLocaleControllerArg) with the given locale.
func setCurrentLocaleControllerArguments(c *revel.Controller, locale string) {
c.Request.Locale = locale
c.RenderArgs[CurrentLocaleRenderArg] = locale
}
// Determine whether the given request has valid Accept-Language value.
//
// Assumes that the accept languages stored in the request are sorted according to quality, with top
// quality first in the slice.
func hasAcceptLanguageHeader(request *revel.Request) (bool, string) {
if request.AcceptLanguages != nil && len(request.AcceptLanguages) > 0 {
return true, request.AcceptLanguages[0].Language
}
return false, ""
}
// Determine whether the given request has a valid language cookie value.
func hasLocaleCookie(request *revel.Request) (bool, string) {
if request != nil && request.Cookies() != nil {
name := revel.Config.StringDefault(localeCookieConfigKey, revel.CookiePrefix+"_LANG")
if cookie, error := request.Cookie(name); error == nil {
return true, cookie.Value
} else {
revel.TRACE.Printf("Unable to read locale cookie with name '%s': %s", name, error.Error())
}
}
return false, ""
}

View File

@ -41,7 +41,8 @@ function log(o) {
<a data-lang="en-us">English</a>
<a data-lang="fr-fr">Français</a>
<a data-lang="zh-cn">简体中文</a>
<a data-lang="pt-br">Portugu&ecirc;s</a>
<a data-lang="zh-hk">繁体中文</a>
<a data-lang="pt-pt">Portugu&ecirc;s</a>
</div>
<ul class="nav navbar-nav navbar-left">

View File

@ -44,7 +44,7 @@ log.warn.prefix = "WARN "
log.error.prefix = "ERROR "
# The default language of this application.
i18n.default_language=en
i18n.default_language=en-us
module.static=github.com/revel/modules/static

73
conf/app.conf-default Normal file
View File

@ -0,0 +1,73 @@
#------------------------
# leanote config
#------------------------
http.port=9000
site.url=http://localhost:9000 # or http://x.com:8080, http://www.xx.com:9000
# admin username
adminUsername=admin
# mongdb
db.host=127.0.0.1
db.port=27017
db.dbname=leanote # required
db.username= # 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:
# mongodb://myuser:mypass@localhost:40001,otherhost:40001/mydb
# db.url=mongodb://root:root123@localhost:27017/leanote
# db.urlEnv=${MONGODB_URL} # set url from env. eg. mongodb://root:root123@localhost:27017/leanote
# You Must Change It !! About Security!!
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y
#--------------------------------
# revel config
# for dev
#--------------------------------
app.name=leanote
http.addr=
http.ssl=false
cookie.httponly=false
cookie.prefix=LEANOTE
cookie.domain= # for share cookie with sub-domain
cookie.secure=false
format.date=2006-01-02
format.datetime=2006-01-02 15:04:05 # 必须这样配置
results.chunked=false
log.trace.prefix = "TRACE "
log.info.prefix = "INFO "
log.warn.prefix = "WARN "
log.error.prefix = "ERROR "
# The default language of this application.
i18n.default_language=en-us
module.static=github.com/revel/modules/static
[dev]
mode.dev=true
results.pretty=true
watch=true
module.testrunner = # github.com/revel/modules/testrunner
log.trace.output = stderr
log.info.output = stderr
log.warn.output = stderr
log.error.output = stderr
[prod]
mode.dev=false
results.pretty=false
watch=false
module.testrunner =
log.trace.output = off
log.info.output = off
log.warn.output = %(app.name)s.log
log.error.output = %(app.name)s.log

31
messages/album.zh-hk Normal file
View File

@ -0,0 +1,31 @@
# album image
Images=圖片
Upload=上傳
Image URL=圖片地址
Albums=相冊
Default=默認
File title search=通過標題搜索
Go to upload images=去上傳圖片
Rename=重命名
Add=添加
Add Album=添加相冊
Add Image=添加圖片
Can't load this url=不能載入該圖片
No Images=無圖片
Click to upload images Or Drop images to here=點擊上傳圖片或將圖片拖至此
Cannot delete default album=不能刪除默認相冊
Cannot rename default album=不能重命名默認相冊
This album has images, please delete it's images at first.=相冊內有圖片, 不能刪除
Rename Album=重命名
Add Success!=添加成功!
Rename Success!=重命名成功!
Delete Success!=刪除成功
Are you sure to delete this image ?=確定刪除該圖片?
click to remove this image=刪除圖片
error=錯誤
Error=錯誤
Prev=上壹頁
Next=下壹頁

97
messages/blog.zh-hk Normal file
View File

@ -0,0 +1,97 @@
# blog
blog=博客
aboutMe=關於我
blogSet=博客設置
blogNavs=導航
quickLinks=快速鏈接
latestPosts=最近發表
noBlog=無博客
noTag=無
blogClass=分類
updatedTime=更新
createdTime=創建
fullBlog=全文
blogNav=導航
more=更多...
previous=上壹頁
next=下壹頁
#
# set blog
#
blogSet=博客設置
baseInfoSet=基本設置
commentSet=評論設置
themeSet=主題設置
theme=主題
blogName=博客標題
blogLogo=博客Logo
blogDesc=博客描述
aboutMe=關於我
#domain
domainSet=域名設置
subDomain=博客子域名
domain=自定義域名
# theme
elegant=大氣
navFixed=導航左側固定
openComment=開啟評論?
chooseComment=選擇評論系統
disqusHelp=請填寫您申請的Disqus唯壹url前綴. 建議您申請Disqus帳號, 這樣可以自己管理評論. 或使用leanote的默認Disqus Id.
needHelp=需要幫助?
blogLogoTips=上傳logo將顯示logo(替代博客標題)
saveSuccess=保存成功
community=社區
home=主頁
none=無
moreShare=更多分享
sinaWeibo=新浪微博
weixin=微信
tencentWeibo=騰訊微博
qqZone=QQ空間
renren=人人網
report=舉報
like=贊
unlike=取消贊
viewers=人讀過
author=作者
delete=刪除
reply=回復
comment=評論
comments=條評論
cancel=取消
confirm=確認
signIn=登錄
signUp=註冊
submitComment=發表評論
reportReason1=不友善內容
reportReason2=廣告等垃圾信息
reportReason3=違法違規內容
reportReason4=不宜公開討論的政治內容
other=其它
reportReason=舉報理由
chooseReason=請選擇舉報理由
reportSuccess=舉報成功, 我們處理後會通知作者, 感謝您的監督
error=錯誤
reportComment?=舉報該評論?
reportBlog?=舉報該博客?
confirmDeleteComment=確定刪除該評論?
scanQRCode=打開微信掃壹掃二維碼
justNow=剛剛
minutesAgo=分鐘前
hoursAgo=個小時前
daysAgo=天前
weeksAgo=周前
monthsAgo=個月前
a=a

35
messages/markdown.zh-hk Normal file
View File

@ -0,0 +1,35 @@
# markdown editor
Hyperlink=超鏈接
Please provide the link URL and an optional title=請填寫鏈接和壹個可選的標題
optional title=可選標題
Ok=確認
Cancel=取消
Strong=粗體
strong text=粗體
Emphasis=斜體
emphasized text=斜體
Blockquote=引用
Code Sample=代碼
enter code here=代碼
Image=圖片
Heading=標題
Numbered List=有序列表
Bulleted List=無序列表
List item=項目
Horizontal Rule=水平線
Markdown syntax=Markdown 語法
Undo=撤銷
Redo=重做
enter image description here=圖片標題
enter link description here=鏈接標題
Edit mode=編輯模式
Vim mode=Vim模式
Emacs mode=Emacs模式
Normal mode=普通模式
Normal=普通
Light=輕量
Light editor=輕量編輯器
Insert Image=插入

137
messages/member.zh-hk Normal file
View File

@ -0,0 +1,137 @@
####################
# 個人中心
####################
memberCenter=個人中心
userNotExists=該成員沿未註冊
hasUsers=已存在該成員
Leanote Blog Theme Api=Leanote博客主題API
My Group=我的分組
group=用戶組
newGroup=新建組
deleteGroup=刪除組
addMemberTips=輸入用戶名或郵箱添加成員
deleteMember=刪除成員
forbiddenNotMyGroup=無權限操作, 非該組的所有者
userExistsInGroup=已存在該成員
notMyGroup=非該組的所有者
# 博客列表
# 博客摘要設置
Abstract=摘要
Description=描述
Once the abstract has been updated, it will not set the abstract automatically other than you cancel it.=以下內容設置後, 以後修改筆記時將不自動獲取. 若將該文章取消為博客後, 以下內容會自動獲取.
Main Image=主圖
Get next image as main image from content=從筆記中自動獲取下壹張
Raw Content=原文
# member title
Leanote Member Center=Leanote 個人中心
Username=用戶名
Email=Email
Password=密碼
Avatar=頭像
Add Account=添加Leanote帳戶
Update Post Abstract=更新博文摘要
Blog Base Info=博客基本設置
Comment=評論設置
Posts=博文管理
Domain=域名
Paging=分頁
Category=分類管理
Add Single=添加單頁
Update Single=修改單頁
Single=單頁管理
Theme=主題
Update Theme=修改主題
#memeber
welcomeToLeanote=歡迎來到leanote
accountInfo=帳戶信息
accountType=帳戶類型
premiumAccountType=旗艦套餐
normalAccountType=共享套餐
imageSize=圖片空間
attachSize=附件空間
totalTraffic=流量
upgrade=升級套餐
leanoteEvents=Leanote動態
addLeanoteAccount=新建Leanote帳戶
defaultComment=默認leanote評論系統
upgradeAccountTips=Leanote支持綁定自己的域名到博客上, 請 <a class="btn btn-default" href="/service">升級您的帳戶</a>
cateIsPublicNotebook=分類是公開為博客的筆記本
dragAndSort=拖動可排序
permanentLink=固定鏈接
cate=分類
noCates=無分類
single=單頁面
singleTips=您可以添加多個單頁面
addSingle=添加單頁面
updateSingle=修改單頁面
inputSingleTitle=請輸入單頁面標題
saveSort=保存排序
pagingAndSort=分頁與排序設置
perPageSize=每頁記錄數
sortField=排序字段
sortType=排序類型
publicTime=發表時間
createdTime=創建時間
updatedTime=更新時間
desc=降序
asc=升序
postList=文章列表
hasSelfDefined=已設置
noSelfDefined=未設置
setAbstract=摘要設置
title=標題
content=內容
addTheme=添加主題
importTheme=導入主題
exportTheme=導出主題
export=導出
preview=預覽
edit=編輯
use=使用
install=安裝
currentTheme=當前主題
myOtherThemes=我的其它主題
leanoteThemeMarket=Leanote主題市場
updateTheme=編輯主題
tplStyleScript=模板, 樣式, 腳本
newFile=新建文件
image=圖片
currentFile=當前文件
tpl=模板
style=樣式
script=腳本
header=頭部
footer=底部
index=首頁
cate=分類
search=搜索頁
single=單頁
archive=歸檔頁
post=文章頁
tags=標簽頁
tag_posts=標簽文章頁
share_comment=分享評論
themeJson=主題配置
paging=分頁
highlight=高亮
# view js
Are you sure ?=妳確定執行該操作?
Are you sure to install it ?=妳確定安裝該主題?
Are you sure to delete=妳確定刪除
Success=成功
Error=錯誤
File exists=文件已存在
Delete file=刪除文件
No images=無圖片
Filename=文件名
Group Title=分組名

317
messages/msg.zh-hk Normal file
View File

@ -0,0 +1,317 @@
# leanote
app=Leanote
moto=不只是筆記!
moto2=知識管理, 博客, 分享, 協作... 盡在Leanote
moto3=簡約而不簡單
fork github=Github 源碼
# 首頁
openSource=開源
Desktop App=桌面客戶端
forgetPassword = 忘記密碼?
or=或
try=體驗壹下
3th=第三方登錄
usernameOrEmail=用戶名或Email
password=密碼
home=主頁
desktopApp=客戶端
aboutLeanote=關於Leanote
suggestions=建議
yourSuggestions=幫助完善Leanote
leanoteBlog=官方博客
knowledge=知識
knowledgeInfo=leanote是壹個筆記, 妳可以用它來管理自己的知識.
share=分享
shareInfo=妳也可以將知識分享給妳的好友.
cooperation=協作
cooperationInfo=分享給好友的同時也可以讓妳的好友和妳壹起來完善它.
blog=博客
blogInfo=將筆記公開, 讓知識傳播的更遠!
suggestionsInfo=幫助我們完善leanote
yourContact=您的聯系方式
emailOrOthers=Email或其它聯系方式
captcha=驗證碼
reloadCaptcha=刷新驗證碼
captchaError=驗證碼錯誤
inputCaptcha=請輸入驗證碼
noTag=無標簽
hi=Hi
welcomeUseLeanote=Welcome!
myNote=My note
curUser=Email
# form
submit=提交
Submit=提交
register=註冊
login=登錄
Password=密碼
password2=請確認密碼
email=Email
inputUsername=請輸入用戶名或Email
inputEmail=請輸入Email
wrongEmail=Email錯誤
wrongUsernameOrPassword=用戶名或密碼錯誤
inputPassword=請輸入密碼
inputLoginPasswordTips=請輸入登錄密碼
wrongPassword=密碼錯誤
logining=登錄
loginSuccess=登錄成功
hi=Hi
welcomeUseLeanote=歡迎使用leanote
myNote=我的筆記
curUser=當前登錄帳戶
# form
submit=提交
login=登錄
register=註冊
password2=確認密碼
email=Email
inputUsername=請輸入用戶名或Email
inputEmail=請輸入Email
wrongEmail=Email格式有誤
wrongUsernameOrPassword=用戶名或密碼有誤
inputPassword=請輸入密碼
wrongPassword=密碼有誤
logining=正在登錄
loginSuccess=登錄成功, 正在跳轉
ing=正在處理
use = 使用
hadAcount = 已有帳戶?
hasAcount = 還無帳戶?
signInWithThird=使用第三方帳號登錄
# 註冊
registerSuccessAndRdirectToNote=註冊成功, 正在跳轉...
userHasBeenRegistered=%s已被註冊
# 找回密碼
passwordTips=密碼至少6位
findPassword=找回密碼
findPasswordSendEmailOver=已經將修改密碼的鏈接發送到您的郵箱, 請查收郵件.
checkEmai=查收郵箱
updatePassword=修改密碼
findPasswordTimeout=鏈接已過期
reFindPassword=重新找回密碼
updatePassword=修改密碼
updatePasswordSuccessRedirectToLogin=修改成功, 正在跳轉到登錄頁
inputPassword2=請再次輸入密碼
confirmPassword=兩次密碼輸入不壹致
notGoodPassword=密碼至少6位
# 筆記主頁
myBlog=我的博客
history=歷史記錄
save=保存
editorTips=幫助
editorTipsInfo=<h4>1. 快捷鍵</h4>ctrl+shift+c 代碼塊切換 <h4>2. shift+enter 跳出當前區域</h4>比如在代碼塊中<img src="/images/outofcode.png" style="width: 90px"/>按shift+enter可跳出當前代碼塊.
newNote=新建普通筆記
newMarkdownNote=新建Markdown筆記
noNoteNewNoteTips=該筆記本下空空如也...何不
canntNewNoteTips=Sorry, 這裏不能添加筆記的. 妳需要先選擇壹個筆記本.
new=新建
newMarkdown=新建Markdown筆記
clickAddTag=點擊添加標簽
notebook=筆記本
note=筆記
myNotebook=我的筆記本
addNotebook=添加筆記本
search=搜索
clearSearch=清除搜索
all=最新
trash=廢紙簍
delete=刪除
unTitled=無標題
defaultShare=默認分享
leftHidden=隱藏左側
leftShow=展開左側
nav=文檔導航
writingMode=寫作模式
normalMode=普通模式
saving=正在保存
saveSuccess=保存成功
SearchNote=搜索筆記
SearchNotebook=搜索筆記本
Choose File=選擇文件
Download All=下載全部
Information=信息
Are you sure to delete it ?=確認刪除?
Insert link into content=將附件鏈接插入到內容中
Download=下載
Delete=刪除
Drop images to here=將圖片拖動至此
Toggle Modify with Readonly=編輯與只讀切換
update=更新
create=創建
Update Time=更新時間
Create Time=創建時間
Post Url=博文鏈接
demoRegister=<a href="/register">立即註冊</a>
close=關閉
cancel=取消
send=發送
# 標簽
tag=標簽
myTag=我的標簽
red=紅色
yellow=黃色
blue=藍色
green=綠色
# 設置
accountSetting=帳戶設置
logout=退出
basicInfo=基本信息
basicInfoSet=博客基本設置
updateEmail=修改Email
usernameSetting=用戶名設置
chooseImage=選擇圖片
oldPassword=舊密碼
newPassword=新密碼
admin=後臺管理
default=默認
simple=簡約
# tinymce
uploadImage=上傳圖片
# blog
aboutMe=關於我
blogSet=博客設置
# error
notFound=該頁面不存在
# index
discussion=社區討論
download=下載
howToInstallLeanote=leanote安裝步驟
#
attachments = 附件
donate = 捐贈
# contextmenu
shareToFriends=分享給好友
publicAsBlog=公開為博客
cancelPublic=取消公開為博客
move=移動
copy=復制
rename=重命名
exportPdf=導出PDF
addChildNotebook=添加子筆記本
deleteAllShared=刪除所有共享
deleteSharedNotebook=刪除共享筆記本
copyToMyNotebook=復制到我的筆記本
####note-dev
emailInSending=正在發送郵件到
checkEmail=查看郵件
setUsername=用戶名設置
setUsernameTips=妳的郵箱是 <code>%s</code>, 可以再設置壹個唯壹的用戶名.<br />用戶名至少4位, 不可含特殊字符.
currentEmail=當前郵箱為: <code>%s</code>
updateEmail=修改郵箱
updateEmailTips=郵箱修改後, 驗證之後才有效, 驗證之後新的郵箱地址將會作為登錄帳號使用.
sendVerifiedEmail=發送驗證郵箱
sendSuccess=發送成功
sendFailed=發送失敗
verified=已驗證
unVerified=未驗證
verifiedNow=現在去驗證
resendVerifiedEmail=重新發送驗證郵件
# 分享
defaultShare=默認分享
addShare=添加分享
friendEmail=好友郵箱
permission=權限
readOnly=只讀
writable=可寫
inputFriendEmail=請輸入好友郵箱
clickToChangePermission=點擊改變權限
sendInviteEmailToYourFriend=發送邀請email給Ta
copySuccess=復制成功
copyFailed=對不起, 復制失敗, 請自行復制
friendNotExits=該用戶還沒有註冊%s, 復制邀請鏈接發送給Ta, 邀請鏈接: %s
emailBodyRequired=郵件內容不能為空
clickToCopy=點擊復制
sendSuccess=發送成功
inviteEmailBody=Hi, 妳好, 我是%s, %s非常好用, 快來註冊吧!
<span></span> notes selected=當前選中了 <span></span> 篇筆記
# 歷史記錄
historiesNum=leanote會保存筆記的最近<b>10</b>份歷史記錄
noHistories=無歷史記錄
datetime=日期
restoreFromThisVersion=從該版本還原
confirmBackup=確定要從該版還原? 還原前leanote會備份當前版本到歷史記錄中.
createAccount=創建帳號
createAccountSuccess=帳號創建成功
createAccountFailed=帳號創建失敗
thirdCreateAcountTips=您現在使用的是第三方帳號登錄%(app)s, 您也可以註冊%(app)s帳號登錄, 趕緊註冊壹個吧. <br />註冊成功後仍可以使用第三方帳號登錄leanote並管理您現有的筆記.
## valid msg
cannotUpdateDemo=抱歉, Demo用戶不允許修改
inputUsername=請輸入用戶名
updateUsernameSuccess=用戶名修改成功
usernameIsExisted=用戶名已存在
noSpecialChars=不能包含特殊字符
minLength=長度至少為%s
errorEmail=請輸入正確的email
verifiedEmaiHasSent=驗證郵件已發送, 請及時查閱郵件並驗證.
emailSendFailed=郵件發送失敗
inputPassword=請輸入密碼
inputNewPassword=請輸入新密碼
inputPassword2=請輸入確認密碼
errorPassword=請輸入長度不少於6位的密碼, 盡量復雜
oldPasswordError=舊密碼錯誤
confirmPassword=兩次密碼輸入不正確
updatePasswordSuccess=修改密碼成功
errorDomain=請輸入正確的域名, 如www.myblog.com
domainExisted=域名已存在
errorSubDomain=請輸入正確的博客子域名, 長度至少為4, 不能包含特殊字符
subDomainExisted=博客子域名已存在
domainNotPointToLeanote=該域名還未指向 d.leanote.com, 請稍後再試
errorPerPageSize=每頁記錄數至少為1
errorSortField=排序類型錯誤
themeValidHasRoundInclude=警告: 模板存在循環引用問題!
#share
tokenExpired = 會話已過期
Share=分享
hasSharedThisNote=分享了筆記
inputSharePwd=您需要輸入分享密碼才能查看
shareToGroup=分享給項目組
shareByPwd=通過密碼分享
groupName=分組名
operation=操作
groupAndMemberManage=項目組/成員管理
shareToGroupTips=將筆記/筆記本分享給項目組後, 該組下的用戶便擁有了該筆記/筆記本
shared=已分享
notShared=未分享
shareLink=分享鏈接
sharePwd=查看密碼
cancelShare=取消分享
getShareLinkAndPwd=生成該筆記的分享鏈接和密碼
#############
# 通用
#############
created=創建
updated=更新
modify=修改
Search=搜索
Save Success=保存成功
Please save note firstly!=請先保存筆記!
Please sign in firstly!=妳還沒有登錄, 請先登錄!
# 必須要加這個, 奇怪
[CN]

View File

@ -532,8 +532,7 @@ function initEditor() {
// content_css 不再需要
// content_css : [LEA.sPath + "/css/editor/editor.css"], // .concat(em.getWritingCss()),
skin : "custom",
// tinymce just support en & zh lang currently
language: LEA.locale != 'en' && LEA.locale != 'zh' ? 'en' : LEA.locale,
language: LEA.locale, // 语言
plugins : [
"autolink link leaui_image lists hr", "paste",
"searchreplace leanote_nav leanote_code tabfocus",

View File

@ -0,0 +1 @@
var MSG={"noTag":"無","saveSuccess":"保存成功","none":"無","like":"贊","unlike":"取消贊","delete":"刪除","cancel":"取消","confirm":"確認","chooseReason":"請選擇舉報理由","reportSuccess":"舉報成功, 我們處理後會通知作者, 感謝您的監督","error":"錯誤","reportComment?":"舉報該評論?","reportBlog?":"舉報該博客?","confirmDeleteComment":"確定刪除該評論?","scanQRCode":"打開微信掃壹掃二維碼","justNow":"剛剛","minutesAgo":"分鐘前","hoursAgo":"個小時前","daysAgo":"天前","weeksAgo":"周前","monthsAgo":"個月前"};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;}

View File

@ -0,0 +1 @@
var MSG={"app":"Leanote","share":"分享","noTag":"無標簽","inputUsername":"請輸入用戶名","inputEmail":"請輸入Email","inputPassword":"請輸入密碼","inputPassword2":"請輸入確認密碼","confirmPassword":"兩次密碼輸入不正確","history":"歷史記錄","editorTips":"幫助","editorTipsInfo":"<h4>1. 快捷鍵</h4>ctrl+shift+c 代碼塊切換 <h4>2. shift+enter 跳出當前區域</h4>比如在代碼塊中<img src=\"/images/outofcode.png\" style=\"width: 90px\"/>按shift+enter可跳出當前代碼塊.","all":"最新","trash":"廢紙簍","delete":"刪除","unTitled":"無標題","defaultShare":"默認分享","writingMode":"寫作模式","normalMode":"普通模式","saving":"正在保存","saveSuccess":"保存成功","Are you sure to delete it ?":"確認刪除?","Insert link into content":"將附件鏈接插入到內容中","Download":"下載","Delete":"刪除","update":"更新","Update Time":"更新時間","Create Time":"創建時間","Post Url":"博文鏈接","close":"關閉","cancel":"取消","send":"發送","shareToFriends":"分享給好友","publicAsBlog":"公開為博客","cancelPublic":"取消公開為博客","move":"移動","copy":"復制","rename":"重命名","exportPdf":"導出PDF","addChildNotebook":"添加子筆記本","deleteAllShared":"刪除所有共享","deleteSharedNotebook":"刪除共享筆記本","copyToMyNotebook":"復制到我的筆記本","checkEmail":"查看郵件","sendVerifiedEmail":"發送驗證郵箱","sendSuccess":"發送成功","sendFailed":"發送失敗","friendEmail":"好友郵箱","readOnly":"只讀","writable":"可寫","inputFriendEmail":"請輸入好友郵箱","clickToChangePermission":"點擊改變權限","sendInviteEmailToYourFriend":"發送邀請email給Ta","friendNotExits":"該用戶還沒有註冊%s, 復制邀請鏈接發送給Ta, 邀請鏈接: %s","emailBodyRequired":"郵件內容不能為空","inviteEmailBody":"Hi, 妳好, 我是%s, %s非常好用, 快來註冊吧!","historiesNum":"leanote會保存筆記的最近<b>10</b>份歷史記錄","noHistories":"無歷史記錄","datetime":"日期","restoreFromThisVersion":"從該版本還原","confirmBackup":"確定要從該版還原? 還原前leanote會備份當前版本到歷史記錄中.","createAccountSuccess":"帳號創建成功","createAccountFailed":"帳號創建失敗","updateUsernameSuccess":"用戶名修改成功","usernameIsExisted":"用戶名已存在","noSpecialChars":"不能包含特殊字符","minLength":"長度至少為%s","errorEmail":"請輸入正確的email","verifiedEmaiHasSent":"驗證郵件已發送, 請及時查閱郵件並驗證.","emailSendFailed":"郵件發送失敗","inputNewPassword":"請輸入新密碼","errorPassword":"請輸入長度不少於6位的密碼, 盡量復雜","updatePasswordSuccess":"修改密碼成功","Please save note firstly!":"請先保存筆記!","Please sign in firstly!":"妳還沒有登錄, 請先登錄!","Are you sure ?":"妳確定執行該操作?","Are you sure to install it ?":"妳確定安裝該主題?","Are you sure to delete":"妳確定刪除","Success":"成功","Error":"錯誤","File exists":"文件已存在","Delete file":"刪除文件","No images":"無圖片","Filename":"文件名","Group Title":"分組名","Hyperlink":"超鏈接","Please provide the link URL and an optional title":"請填寫鏈接和壹個可選的標題","optional title":"可選標題","Cancel":"取消","Strong":"粗體","strong text":"粗體","Emphasis":"斜體","emphasized text":"斜體","Blockquote":"引用","Code Sample":"代碼","enter code here":"代碼","Image":"圖片","Heading":"標題","Numbered List":"有序列表","Bulleted List":"無序列表","List item":"項目","Horizontal Rule":"水平線","Markdown syntax":"Markdown 語法","Undo":"撤銷","Redo":"重做","enter image description here":"圖片標題","enter link description here":"鏈接標題","Edit mode":"編輯模式","Vim mode":"Vim模式","Emacs mode":"Emacs模式","Normal mode":"普通模式","Normal":"普通","Light":"輕量","Light editor":"輕量編輯器","Add Album":"添加相冊","Cannot delete default album":"不能刪除默認相冊","Cannot rename default album":"不能重命名默認相冊","Rename Album":"重命名","Add Success!":"添加成功!","Rename Success!":"重命名成功!","Delete Success!":"刪除成功","Are you sure to delete this image ?":"確定刪除該圖片?","click to remove this image":"刪除圖片","error":"錯誤","Prev":"上壹頁","Next":"下壹頁"};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;}

View File

@ -1,4 +1,4 @@
tinymce.addI18n('en',{
tinymce.addI18n('en-us',{
"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.",

View File

@ -0,0 +1,182 @@
// TODO
tinymce.addI18n('fr-fr',{
"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": "Font Family",
"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"
});

View File

@ -0,0 +1,182 @@
// TODO
tinymce.addI18n('pt-pt',{
"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": "Font Family",
"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"
});

View File

@ -1,3 +0,0 @@
This is where language files should be placed.
Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/

View File

@ -0,0 +1,188 @@
tinymce.addI18n('zh-cn',{
"Cut": "剪切",
"Header 2": "标题2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "你的浏览器不支持对剪贴板的访问请使用Ctrl+X\/C\/V键进行复制粘贴。",
"Div": "Div区块",
"Paste": "粘贴",
"Close": "关闭",
"Font Family": "字体",
"Pre": "预格式文本",
"Align right": "右对齐",
"New document": "新文档",
"Blockquote": "引用",
"Numbered list": "编号列表",
"Increase indent": "增加缩进",
"Formats": "格式",
"Headers": "标题",
"Select all": "全选",
"Header 3": "标题3",
"Blocks": "区块",
"Undo": "撤消",
"Strikethrough": "删除线",
"Bullet list": "项目符号",
"Header 1": "标题1",
"Superscript": "上标",
"Clear formatting": "清除格式",
"Font Sizes": "字号",
"Subscript": "下标",
"Header 6": "标题6",
"Redo": "重复",
"Paragraph": "段落",
"Ok": "确定",
"Bold": "粗体",
"Code": "代码",
"Italic": "斜体",
"Align center": "居中",
"Header 5": "标题5",
"Decrease indent": "减少缩进",
"Header 4": "标题4",
"Convert Code": "转换成文本",
"toggleCode": "ctrl+shift+c 切换代码",
"Language": "代码语言",
"`ctrl/cmd+shift+c` toggle code": "`ctrl/cmd+shift+c` 切换代码",
"Toggle ace with raw html": "Ace代码与普通Pre代码切换",
"Inline Code": "<code>",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "当前为纯文本粘贴模式,再次点击可以回到普通粘贴模式。",
"Underline": "下划线",
"Cancel": "取消",
"Justify": "两端对齐",
"Inline": "文本",
"Copy": "复制",
"Align left": "左对齐",
"Visual aids": "网格线",
"Lower Greek": "小写希腊字母",
"Square": "方块",
"Default": "默认",
"Lower Alpha": "小写英文字母",
"Circle": "空心圆",
"Disc": "实心圆",
"Upper Alpha": "大写英文字母",
"Upper Roman": "大写罗马字母",
"Lower Roman": "小写罗马字母",
"Name": "名称",
"Anchor": "锚点",
"You have unsaved changes are you sure you want to navigate away?": "你还有文档尚未保存,确定要离开?",
"Restore last draft": "恢复上次的草稿",
"Special character": "特殊符号",
"Source code": "源代码",
"Right to left": "从右到左",
"Left to right": "从左到右",
"Emoticons": "表情",
"Robots": "机器人",
"Document properties": "文档属性",
"Title": "标题",
"Keywords": "关键词",
"Encoding": "编码",
"Description": "描述",
"Author": "作者",
"Fullscreen": "全屏",
"Horizontal line": "水平分割线",
"Horizontal space": "水平边距",
"Insert\/edit image": "上传/插入图片",
"Insert\/edit mind map": "新建/编辑思维导图",
"Insert Mind Map": "插入思维导图",
"Mind Map": "思维导图",
"Image": "图片",
"Insert Image": "插入",
"General": "普通",
"Advanced": "高级",
"Source": "地址",
"Border": "边框",
"Constrain proportions": "保持纵横比",
"Vertical space": "垂直边距",
"Image description": "图片描述",
"Style": "样式",
"Dimensions": "大小",
"Insert image": "插入图片",
"Insert date\/time": "插入日期\/时间",
"Remove link": "删除链接",
"Url": "地址",
"Text to display": "显示文字",
"Anchors": "锚点",
"Insert link": "插入链接",
"New window": "在新窗口打开",
"None": "无",
"Target": "打开方式",
"Insert\/edit link": "插入\/编辑链接",
"Insert\/edit video": "插入\/编辑视频",
"Poster": "封面",
"Alternative source": "镜像",
"Paste your embed code below:": "将内嵌代码粘贴在下面:",
"Insert video": "插入视频",
"Embed": "内嵌",
"Nonbreaking space": "不间断空格",
"Page break": "分页符",
"Paste as text": "粘贴为文本",
"Preview": "预览",
"Print": "打印",
"Save": "保存",
"Could not find the specified string.": "未找到搜索内容.",
"Replace": "替换",
"Next": "下一个",
"Whole words": "全字匹配",
"Find and replace": "查找和替换",
"Replace with": "替换为",
"Find": "查找",
"Replace all": "全部替换",
"Match case": "区分大小写",
"Prev": "上一个",
"Spellcheck": "拼写检查",
"Finish": "完成",
"Ignore all": "全部忽略",
"Ignore": "忽略",
"Insert row before": "在上方插入",
"Rows": "行",
"Height": "高",
"Paste row after": "粘贴到下方",
"Alignment": "对齐方式",
"Column group": "列组",
"Row": "行",
"Insert column before": "在左侧插入",
"Split cell": "拆分单元格",
"Cell padding": "单元格内边距",
"Cell spacing": "单元格外间距",
"Row type": "行类型",
"Insert table": "插入表格",
"Body": "表体",
"Caption": "标题",
"Footer": "表尾",
"Delete row": "删除行",
"Paste row before": "粘贴到上方",
"Scope": "范围",
"Delete table": "删除表格",
"Header cell": "表头单元格",
"Column": "列",
"Cell": "单元格",
"Header": "表头",
"Cell type": "单元格类型",
"Copy row": "复制行",
"Row properties": "行属性",
"Table properties": "表格属性",
"Row group": "行组",
"Right": "右对齐",
"Insert column after": "在右侧插入",
"Cols": "列",
"Insert row after": "在下方插入",
"Width": "宽",
"Cell properties": "单元格属性",
"Left": "左对齐",
"Cut row": "剪切行",
"Delete column": "删除列",
"Center": "居中",
"Merge cells": "合并单元格",
"Insert template": "插入模板",
"Templates": "模板",
"Background color": "背景色",
"Text color": "文字颜色",
"Show blocks": "显示区块边框",
"Show invisible characters": "显示不可见字符",
"Words: {0}": "字数:{0}",
"Insert": "插入",
"File": "文件",
"Edit": "编辑",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "在编辑区按ALT-F9打开菜单按ALT-F10打开工具栏按ALT-0查看帮助",
"Tools": "工具",
"View": "视图",
"Table": "表格",
"Format": "格式"
});

View File

@ -0,0 +1,189 @@
// http://www.atool.org/chinese2unicode.php
tinymce.addI18n('zh-hk',{
"Cut": "剪切",
"Header 2": "標題2",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "妳的瀏覽器不支持對剪貼板的訪問請使用Ctrl+X\/C\/V鍵進行復制粘貼。",
"Div": "Div區塊",
"Paste": "粘貼",
"Close": "關閉",
"Font Family": "字體",
"Pre": "預格式文本",
"Align right": "右對齊",
"New document": "新文檔",
"Blockquote": "引用",
"Numbered list": "編號列表",
"Increase indent": "增加縮進",
"Formats": "格式",
"Headers": "標題",
"Select all": "全選",
"Header 3": "標題3",
"Blocks": "區塊",
"Undo": "撤消",
"Strikethrough": "刪除線",
"Bullet list": "項目符號",
"Header 1": "標題1",
"Superscript": "上標",
"Clear formatting": "清除格式",
"Font Sizes": "字號",
"Subscript": "下標",
"Header 6": "標題6",
"Redo": "重復",
"Paragraph": "段落",
"Ok": "確定",
"Bold": "粗體",
"Code": "代碼",
"Italic": "斜體",
"Align center": "居中",
"Header 5": "標題5",
"Decrease indent": "減少縮進",
"Header 4": "標題4",
"Convert Code": "轉換成文本",
"toggleCode": "ctrl+shift+c 切換代碼",
"Language": "代碼語言",
"`ctrl/cmd+shift+c` toggle code": "`ctrl/cmd+shift+c` 切換代碼",
"Toggle ace with raw html": "Ace代碼與普通Pre代碼切換",
"Inline Code": "<code>",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "當前為純文本粘貼模式,再次點擊可以回到普通粘貼模式。",
"Underline": "下劃線",
"Cancel": "取消",
"Justify": "兩端對齊",
"Inline": "文本",
"Copy": "復制",
"Align left": "左對齊",
"Visual aids": "網格線",
"Lower Greek": "小寫希臘字母",
"Square": "方塊",
"Default": "默認",
"Lower Alpha": "小寫英文字母",
"Circle": "空心圓",
"Disc": "實心圓",
"Upper Alpha": "大寫英文字母",
"Upper Roman": "大寫羅馬字母",
"Lower Roman": "小寫羅馬字母",
"Name": "名稱",
"Anchor": "錨點",
"You have unsaved changes are you sure you want to navigate away?": "妳還有文檔尚未保存,確定要離開?",
"Restore last draft": "恢復上次的草稿",
"Special character": "特殊符號",
"Source code": "源代碼",
"Right to left": "從右到左",
"Left to right": "從左到右",
"Emoticons": "表情",
"Robots": "機器人",
"Document properties": "文檔屬性",
"Title": "標題",
"Keywords": "關鍵詞",
"Encoding": "編碼",
"Description": "描述",
"Author": "作者",
"Fullscreen": "全屏",
"Horizontal line": "水平分割線",
"Horizontal space": "水平邊距",
"Insert\/edit image": "上傳/插入圖片",
"Insert\/edit mind map": "新建/編輯思維導圖",
"Insert Mind Map": "插入思維導圖",
"Mind Map": "思維導圖",
"Image": "圖片",
"Insert Image": "插入",
"General": "普通",
"Advanced": "高級",
"Source": "地址",
"Border": "邊框",
"Constrain proportions": "保持縱橫比",
"Vertical space": "垂直邊距",
"Image description": "圖片描述",
"Style": "樣式",
"Dimensions": "大小",
"Insert image": "插入圖片",
"Insert date\/time": "插入日期\/時間",
"Remove link": "刪除鏈接",
"Url": "地址",
"Text to display": "顯示文字",
"Anchors": "錨點",
"Insert link": "插入鏈接",
"New window": "在新窗口打開",
"None": "無",
"Target": "打開方式",
"Insert\/edit link": "插入\/編輯鏈接",
"Insert\/edit video": "插入\/編輯視頻",
"Poster": "封面",
"Alternative source": "鏡像",
"Paste your embed code below:": "將內嵌代碼粘貼在下面:",
"Insert video": "插入視頻",
"Embed": "內嵌",
"Nonbreaking space": "不間斷空格",
"Page break": "分頁符",
"Paste as text": "粘貼為文本",
"Preview": "預覽",
"Print": "打印",
"Save": "保存",
"Could not find the specified string.": "未找到搜索內容.",
"Replace": "替換",
"Next": "下壹個",
"Whole words": "全字匹配",
"Find and replace": "查找和替換",
"Replace with": "替換為",
"Find": "查找",
"Replace all": "全部替換",
"Match case": "區分大小寫",
"Prev": "上壹個",
"Spellcheck": "拼寫檢查",
"Finish": "完成",
"Ignore all": "全部忽略",
"Ignore": "忽略",
"Insert row before": "在上方插入",
"Rows": "行",
"Height": "高",
"Paste row after": "粘貼到下方",
"Alignment": "對齊方式",
"Column group": "列組",
"Row": "行",
"Insert column before": "在左側插入",
"Split cell": "拆分單元格",
"Cell padding": "單元格內邊距",
"Cell spacing": "單元格外間距",
"Row type": "行類型",
"Insert table": "插入表格",
"Body": "表體",
"Caption": "標題",
"Footer": "表尾",
"Delete row": "刪除行",
"Paste row before": "粘貼到上方",
"Scope": "範圍",
"Delete table": "刪除表格",
"Header cell": "表頭單元格",
"Column": "列",
"Cell": "單元格",
"Header": "表頭",
"Cell type": "單元格類型",
"Copy row": "復制行",
"Row properties": "行屬性",
"Table properties": "表格屬性",
"Row group": "行組",
"Right": "右對齊",
"Insert column after": "在右側插入",
"Cols": "列",
"Insert row after": "在下方插入",
"Width": "寬",
"Cell properties": "單元格屬性",
"Left": "左對齊",
"Cut row": "剪切行",
"Delete column": "刪除列",
"Center": "居中",
"Merge cells": "合並單元格",
"Insert template": "插入模板",
"Templates": "模板",
"Background color": "背景色",
"Text color": "文字顏色",
"Show blocks": "顯示區塊邊框",
"Show invisible characters": "顯示不可見字符",
"Words: {0}": "字數:{0}",
"Insert": "插入",
"File": "文件",
"Edit": "編輯",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "在編輯區按ALT-F9打開菜單按ALT-F10打開工具欄按ALT-0查看幫助",
"Tools": "工具",
"View": "視圖",
"Table": "表格",
"Format": "格式"
});

View File

@ -1,188 +0,0 @@
tinymce.addI18n('zh',{
"Cut": "\u526a\u5207",
"Header 2": "\u6807\u98982",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002",
"Div": "Div\u533a\u5757",
"Paste": "\u7c98\u8d34",
"Close": "\u5173\u95ed",
"Font Family": "\u5b57\u4f53",
"Pre": "\u9884\u683c\u5f0f\u6587\u672c",
"Align right": "\u53f3\u5bf9\u9f50",
"New document": "\u65b0\u6587\u6863",
"Blockquote": "\u5f15\u7528",
"Numbered list": "\u7f16\u53f7\u5217\u8868",
"Increase indent": "\u589e\u52a0\u7f29\u8fdb",
"Formats": "\u683c\u5f0f",
"Headers": "\u6807\u9898",
"Select all": "\u5168\u9009",
"Header 3": "\u6807\u98983",
"Blocks": "\u533a\u5757",
"Undo": "\u64a4\u6d88",
"Strikethrough": "\u5220\u9664\u7ebf",
"Bullet list": "\u9879\u76ee\u7b26\u53f7",
"Header 1": "\u6807\u98981",
"Superscript": "\u4e0a\u6807",
"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
"Font Sizes": "\u5b57\u53f7",
"Subscript": "\u4e0b\u6807",
"Header 6": "\u6807\u98986",
"Redo": "\u91cd\u590d",
"Paragraph": "\u6bb5\u843d",
"Ok": "\u786e\u5b9a",
"Bold": "\u7c97\u4f53",
"Code": "\u4ee3\u7801",
"Italic": "\u659c\u4f53",
"Align center": "\u5c45\u4e2d",
"Header 5": "\u6807\u98985",
"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb",
"Header 4": "\u6807\u98984",
"Convert Code": "转换成文本",
"toggleCode": "ctrl+shift+c 切换代码",
"Language": "代码语言",
"`ctrl/cmd+shift+c` toggle code": "`ctrl/cmd+shift+c` 切换代码",
"Toggle ace with raw html": "Ace代码与普通Pre代码切换",
"Inline Code": "<code>",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002",
"Underline": "\u4e0b\u5212\u7ebf",
"Cancel": "\u53d6\u6d88",
"Justify": "\u4e24\u7aef\u5bf9\u9f50",
"Inline": "\u6587\u672c",
"Copy": "\u590d\u5236",
"Align left": "\u5de6\u5bf9\u9f50",
"Visual aids": "\u7f51\u683c\u7ebf",
"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd",
"Square": "\u65b9\u5757",
"Default": "\u9ed8\u8ba4",
"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd",
"Circle": "\u7a7a\u5fc3\u5706",
"Disc": "\u5b9e\u5fc3\u5706",
"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd",
"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd",
"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd",
"Name": "\u540d\u79f0",
"Anchor": "\u951a\u70b9",
"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f",
"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f",
"Special character": "\u7279\u6b8a\u7b26\u53f7",
"Source code": "\u6e90\u4ee3\u7801",
"Right to left": "\u4ece\u53f3\u5230\u5de6",
"Left to right": "\u4ece\u5de6\u5230\u53f3",
"Emoticons": "\u8868\u60c5",
"Robots": "\u673a\u5668\u4eba",
"Document properties": "\u6587\u6863\u5c5e\u6027",
"Title": "\u6807\u9898",
"Keywords": "\u5173\u952e\u8bcd",
"Encoding": "\u7f16\u7801",
"Description": "\u63cf\u8ff0",
"Author": "\u4f5c\u8005",
"Fullscreen": "\u5168\u5c4f",
"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf",
"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd",
"Insert\/edit image": "上传/插入图片",
"Insert\/edit mind map": "新建/编辑思维导图",
"Insert Mind Map": "插入思维导图",
"Mind Map": "思维导图",
"Image": "图片",
"Insert Image": "插入",
"General": "\u666e\u901a",
"Advanced": "\u9ad8\u7ea7",
"Source": "\u5730\u5740",
"Border": "\u8fb9\u6846",
"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4",
"Vertical space": "\u5782\u76f4\u8fb9\u8ddd",
"Image description": "\u56fe\u7247\u63cf\u8ff0",
"Style": "\u6837\u5f0f",
"Dimensions": "\u5927\u5c0f",
"Insert image": "\u63d2\u5165\u56fe\u7247",
"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4",
"Remove link": "\u5220\u9664\u94fe\u63a5",
"Url": "\u5730\u5740",
"Text to display": "\u663e\u793a\u6587\u5b57",
"Anchors": "\u951a\u70b9",
"Insert link": "\u63d2\u5165\u94fe\u63a5",
"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
"None": "\u65e0",
"Target": "\u6253\u5f00\u65b9\u5f0f",
"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891",
"Poster": "\u5c01\u9762",
"Alternative source": "\u955c\u50cf",
"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:",
"Insert video": "\u63d2\u5165\u89c6\u9891",
"Embed": "\u5185\u5d4c",
"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c",
"Page break": "\u5206\u9875\u7b26",
"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c",
"Preview": "\u9884\u89c8",
"Print": "\u6253\u5370",
"Save": "\u4fdd\u5b58",
"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.",
"Replace": "\u66ff\u6362",
"Next": "\u4e0b\u4e00\u4e2a",
"Whole words": "\u5168\u5b57\u5339\u914d",
"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362",
"Replace with": "\u66ff\u6362\u4e3a",
"Find": "\u67e5\u627e",
"Replace all": "\u5168\u90e8\u66ff\u6362",
"Match case": "\u533a\u5206\u5927\u5c0f\u5199",
"Prev": "\u4e0a\u4e00\u4e2a",
"Spellcheck": "\u62fc\u5199\u68c0\u67e5",
"Finish": "\u5b8c\u6210",
"Ignore all": "\u5168\u90e8\u5ffd\u7565",
"Ignore": "\u5ffd\u7565",
"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165",
"Rows": "\u884c",
"Height": "\u9ad8",
"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9",
"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
"Column group": "\u5217\u7ec4",
"Row": "\u884c",
"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
"Split cell": "\u62c6\u5206\u5355\u5143\u683c",
"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd",
"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd",
"Row type": "\u884c\u7c7b\u578b",
"Insert table": "\u63d2\u5165\u8868\u683c",
"Body": "\u8868\u4f53",
"Caption": "\u6807\u9898",
"Footer": "\u8868\u5c3e",
"Delete row": "\u5220\u9664\u884c",
"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9",
"Scope": "\u8303\u56f4",
"Delete table": "\u5220\u9664\u8868\u683c",
"Header cell": "\u8868\u5934\u5355\u5143\u683c",
"Column": "\u5217",
"Cell": "\u5355\u5143\u683c",
"Header": "\u8868\u5934",
"Cell type": "\u5355\u5143\u683c\u7c7b\u578b",
"Copy row": "\u590d\u5236\u884c",
"Row properties": "\u884c\u5c5e\u6027",
"Table properties": "\u8868\u683c\u5c5e\u6027",
"Row group": "\u884c\u7ec4",
"Right": "\u53f3\u5bf9\u9f50",
"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
"Cols": "\u5217",
"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165",
"Width": "\u5bbd",
"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027",
"Left": "\u5de6\u5bf9\u9f50",
"Cut row": "\u526a\u5207\u884c",
"Delete column": "\u5220\u9664\u5217",
"Center": "\u5c45\u4e2d",
"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
"Insert template": "\u63d2\u5165\u6a21\u677f",
"Templates": "\u6a21\u677f",
"Background color": "\u80cc\u666f\u8272",
"Text color": "\u6587\u5b57\u989c\u8272",
"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846",
"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26",
"Words: {0}": "\u5b57\u6570\uff1a{0}",
"Insert": "\u63d2\u5165",
"File": "\u6587\u4ef6",
"Edit": "\u7f16\u8f91",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9",
"Tools": "\u5de5\u5177",
"View": "\u89c6\u56fe",
"Table": "\u8868\u683c",
"Format": "\u683c\u5f0f"
});