support 中文繁体
This commit is contained in:
18
Gulpfile.js
18
Gulpfile.js
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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")
|
||||
}
|
24
app/init.go
24
app/init.go
@ -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
208
app/lea/i18n/i18n.go
Normal 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, ""
|
||||
}
|
@ -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ês</a>
|
||||
<a data-lang="zh-hk">繁体中文</a>
|
||||
<a data-lang="pt-pt">Português</a>
|
||||
</div>
|
||||
|
||||
<ul class="nav navbar-nav navbar-left">
|
||||
|
@ -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
73
conf/app.conf-default
Normal 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
31
messages/album.zh-hk
Normal 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
97
messages/blog.zh-hk
Normal 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
35
messages/markdown.zh-hk
Normal 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
137
messages/member.zh-hk
Normal 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
317
messages/msg.zh-hk
Normal 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]
|
@ -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",
|
||||
|
1
public/js/i18n/blog.zh-hk.js
Normal file
1
public/js/i18n/blog.zh-hk.js
Normal 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;}
|
1
public/js/i18n/msg.zh-hk.js
Normal file
1
public/js/i18n/msg.zh-hk.js
Normal 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;}
|
@ -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.",
|
182
public/tinymce/langs/fr-fr.js
Normal file
182
public/tinymce/langs/fr-fr.js
Normal 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"
|
||||
});
|
182
public/tinymce/langs/pt-pt.js
Normal file
182
public/tinymce/langs/pt-pt.js
Normal 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"
|
||||
});
|
@ -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/
|
188
public/tinymce/langs/zh-cn.js
Normal file
188
public/tinymce/langs/zh-cn.js
Normal 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": "格式"
|
||||
});
|
189
public/tinymce/langs/zh-hk.js
Normal file
189
public/tinymce/langs/zh-hk.js
Normal 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": "格式"
|
||||
});
|
@ -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"
|
||||
});
|
Reference in New Issue
Block a user