diff --git a/Dockerfile b/Dockerfile index c6d3f8d..acf1940 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,6 +21,7 @@ RUN mkdir /stage && \ /go/src/github.com/writefreely/writefreely/pages \ /go/src/github.com/writefreely/writefreely/keys \ /go/src/github.com/writefreely/writefreely/cmd \ + ./locales \ /stage # Final image diff --git a/app.go b/app.go index c2989cb..b03c824 100644 --- a/app.go +++ b/app.go @@ -25,6 +25,7 @@ import ( "strings" "syscall" "time" + "encoding/json" "github.com/gorilla/mux" "github.com/gorilla/schema" @@ -41,6 +42,7 @@ import ( "github.com/writefreely/writefreely/migrations" "github.com/writefreely/writefreely/page" "golang.org/x/crypto/acme/autocert" + "github.com/leonelquinteros/gotext" ) const ( @@ -73,6 +75,8 @@ type App struct { sessionStore sessions.Store formDecoder *schema.Decoder updates *updatesCache + locales string + tr func (str string, ParamsToTranslate ...interface{}) interface{} timeline *localTimeline } @@ -130,11 +134,15 @@ type Apper interface { LoadKeys() error + LoadLocales() error + ReqLog(r *http.Request, status int, timeSince time.Duration) string } // App returns the App func (app *App) App() *App { + //softwareVer = "0.13.1" + //softwareVer = os.Getenv("VERSION") return app } @@ -156,6 +164,126 @@ func (app *App) SaveConfig(c *config.Config) error { return config.Save(c, app.cfgFile) } +// LoadLocales reads "json" locales file created from "po" locales. +func (app *App) LoadLocales() error { + var err error + log.Info("Reading %s locales...", app.cfg.App.Lang) + + //var setLang = localize(app.cfg.App.Lang) +// ###############################################################################3 +type translator interface {} + +app.tr = func(str string, ParamsToTranslate ...interface{}) interface{} { + //var str string + n := 1 + md := false + var res translator + var output []interface{} + var iString []interface{} + + setLang := gotext.NewLocale("./locales", app.cfg.App.Lang); + setLang.AddDomain("base"); + + for _, item := range ParamsToTranslate { + switch item.(type) { + case int: // n > 1 for plural + n = item.(int) + case bool: // true for apply markdown + md = item.(bool) + case []interface{}: // variables passed for combined translations + var s string + var arr []string + plural := false // true if passed variable needs to be pluralized + for _, vars := range item.([]interface{}) { + switch vars.(type) { + case bool: // true if passed variable needs to be pluralized + plural = vars.(bool) + case int: + iString = append(iString, vars.(int)) + case int64: + iString = append(iString, int(vars.(int64))) + case string: + s = vars.(string) + if(strings.Contains(s, ";")){ // links inside translation + var link [] string + for j:= 0; j<=strings.Count(s,";"); j++ { + link = append(link, strings.Split(s, ";")[j]) + } + if(plural == true){ + link[0] = setLang.GetN(link[0], link[0], 2) + }else{ + link[0] = setLang.Get(link[0]) + } + iString = append(iString, "[" + link[0] + "](" + link[1] + ")") + }else{ // simple string + if(plural == true){ + fmt.Println("PLURAL") + if(len(iString) == 0){ + iString = append(iString, setLang.GetN(s, s, 2)) + }else{ + iString = append(iString, setLang.GetN(s, s, 2)) + } + }else{ + if(len(iString) == 0){ + iString = append(iString, setLang.Get(s)) + }else{ + iString = append(iString, setLang.Get(s)) + } + } + } + case []string: // not used, templates don't support [] string type as function arguments + arr = vars.([]string) + iString = append(iString, "[" + arr[0] + "](" + arr[1] + ")") + } + output = iString + } + + default: + fmt.Println("invalid parameters") + } + } + + if(output != nil){ // if output for combined translations is not null + if(md == true){ + res = template.HTML(applyBasicMarkdown([]byte(setLang.Get(str, output...)))) + }else{ + res = setLang.Get(str, output...) + } + return res + } + if(md == true){ + res = template.HTML(applyBasicMarkdown([]byte(setLang.Get(str)))) + }else if(n > 1){ + res = setLang.GetN(str, str, n) + }else{ + res = setLang.Get(str) + } + + return res + +} + + //inputFile:= "eu_ES.json" + inputFile := "./static/js/"+app.cfg.App.Lang+".json" + file, err := ioutil.ReadFile(inputFile) + if err != nil { + log.Error(err.Error()) + os.Exit(1) + } + + var mfile map[string]interface{} + err = json.Unmarshal(file, &mfile) + + var res []byte + res, err = json.Marshal(mfile[app.cfg.App.Lang]) + if err != nil { + log.Error(err.Error()) + os.Exit(1) + } + app.locales = string(res) + return nil +} + // LoadKeys reads all needed keys from disk into the App. In order to use the // configured `Server.KeysParentDir`, you must call initKeyPaths(App) before // this. @@ -308,8 +436,10 @@ func handleTemplatedPage(app *App, w http.ResponseWriter, r *http.Request, t *te page.StaticPage ContentTitle string Content template.HTML + ExtraContent template.HTML PlainContent string Updated string + //BlogStats template.HTML AboutStats *InstanceStats }{ @@ -335,6 +465,8 @@ func handleTemplatedPage(app *App, w http.ResponseWriter, r *http.Request, t *te } p.ContentTitle = c.Title.String p.Content = template.HTML(applyMarkdown([]byte(c.Content), "", app.cfg)) + //p.ExtraContent = template.HTML(applyMarkdown([]byte(c.ExtraContent), "", app.cfg)) + //p.BlogStats = template.HTML(applyMarkdown([]byte(c.BlogStats), "", app.cfg)) p.PlainContent = shortPostDescription(stripmd.Strip(c.Content)) if !c.Updated.IsZero() { p.Updated = c.Updated.Format("January 2, 2006") @@ -354,6 +486,7 @@ func pageForReq(app *App, r *http.Request) page.StaticPage { AppCfg: app.cfg.App, Path: r.URL.Path, Version: "v" + softwareVer, + Tr: app.tr, } // Use custom style, if file exists @@ -383,6 +516,8 @@ func pageForReq(app *App, r *http.Request) page.StaticPage { } p.CanViewReader = !app.cfg.App.Private || u != nil + p.Locales = app.locales + return p } @@ -395,6 +530,10 @@ func Initialize(apper Apper, debug bool) (*App, error) { apper.LoadConfig() + // Generate JSON format locales + apper.App().GenJsonFiles() + apper.LoadLocales() + // Load templates err := InitTemplates(apper.App().Config()) if err != nil { diff --git a/config/config.go b/config/config.go index 2065ddf..833de4c 100644 --- a/config/config.go +++ b/config/config.go @@ -124,6 +124,7 @@ type ( SiteName string `ini:"site_name"` SiteDesc string `ini:"site_description"` Host string `ini:"host"` + Lang string `ini:"language"` // Site appearance Theme string `ini:"theme"` diff --git a/less/core.less b/less/core.less index 709ba1e..792cdec 100644 --- a/less/core.less +++ b/less/core.less @@ -355,6 +355,7 @@ body { a { display: inline-block; margin-top: 0.8em; + text-transform: lowercase; .transition-duration(0.1s); text-decoration: none; + a { diff --git a/locales.go b/locales.go new file mode 100644 index 0000000..bf153bb --- /dev/null +++ b/locales.go @@ -0,0 +1,44 @@ +package writefreely + +import ( + //"fmt" + "io/ioutil" + "os" + //"encoding/json" + + "github.com/writeas/web-core/log" + "git.lainoa.eus/aitzol/po2json" +) + +func (app *App) GenJsonFiles(){ + + lang := app.cfg.App.Lang + log.Info("Generating json %s locales...", lang) + //fmt.Println(lang) + locales := []string {} + domain := "base" + localedir := "./locales" + files,_ := ioutil.ReadDir(localedir) + for _, f := range files { + if f.IsDir() { + //fmt.Println(f.Name()) + locales = append(locales, f.Name(),) + + if (lang == f.Name()){ //only creates json file for locale set in config.ini + //file, _ := json.MarshalIndent(po2json.PO2JSON([]string{f.Name(),}, domain, localedir), "", " ") + file := po2json.PO2JSON([]string{f.Name(),}, domain, localedir) + + //err := os.WriteFile(f.Name()+".json",[]byte(file), 0666) + err := ioutil.WriteFile("static/js/"+f.Name()+".json",[]byte(file), 0666) + if err != nil { + log.Error(err.Error()) + os.Exit(1) + } + } + + } + } + + //fmt.Println(po2json.PO2JSON(locales, domain, localedir)) + +} \ No newline at end of file diff --git a/locales/base.pot b/locales/base.pot new file mode 100644 index 0000000..e34afb3 --- /dev/null +++ b/locales/base.pot @@ -0,0 +1,1581 @@ +msgid "" +msgstr "" +"Project-Id-Version: GOtext\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Aitzol Berasategi \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en\n" +"X-Generator: Poedit 2.4.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +# base.tmpl 40 +# header.tmpl 49 +# pages.tmpl 21 +msgid "Home" +msgstr "Home" + +# base.tmpl 42 +# header.tmpl 51 +# footer.tmpl 8,26 +# user/include/footer.tmpl 11 +msgid "About" +msgstr "About" + +# base.tmpl 49 +# header.tmpl 58,65 +# footer.tmpl 9,27 +# user/include/footer.tmpl 12 +# app-settings.tmpl 108 +# pages.tmpl 24 +msgid "Reader" +msgstr "Reader" + +# login.tmpl 21 +# password-collection.tmpl 33 +# base.tmpl 51 +# header.tmpl 60 +msgid "Log in" +msgstr "Log in" + +# classic.tmpl 48 +# collection.tmpl 63,74 +# pad.tmpl 43 +# base.tmpl 33,51 +# header.tmpl 14,41,60 +msgid "Log out" +msgstr "Log out" + +# base.tmpl 45 +# export.tmpl 19 +# collections.tmpl 13 +# user/collection.tmpl 105 +# admin.tmpl 59 +# nav.tmpl 2 +# header.tmpl 54,63 +# view-user 106 +msgid "Blog" +msgid_plural "Blogs" +msgstr[0] "Blog" +msgstr[1] "Blogs" + +# bare.tmpl 33 +# export.tmpl 19 +# admin.tmpl 60 +# view-user 132 +msgid "Post" +msgid_plural "Posts" +msgstr[0] "Post" +msgstr[1] "Posts" + +# bare.tmpl 26 +# header.tmpl 55 +msgid "My Posts" +msgstr "My Posts" + +# classic.tmpl 38 +# edit-meta.tmpl 43 +# pad.tmpl 26,27,33 +# post.tmpl 47 +# base.tmpl 47 +# bare.tmpl 26 +# stats.tmpl 55 +# import.tmpl 41 +# articles.tmpl 25 +# header.tmpl 21,56,64 +# posts.tmpl 23,30,50,57 +msgid "Draft" +msgid_plural "Drafts" +msgstr[0] "Draft" +msgstr[1] "Drafts" + +# login.tmpl 27 +# base.tmpl 50 +# header.tmpl 59 +msgid "Sign up" +msgstr "Sign up" + +# classic.tmpl 5 +# collection.tmpl 53 +# pad.tmpl 5 +# base.tmpl 55 +# nav.tmpl 9 +# header.tmpl 25,71 +msgid "New Post" +msgstr "New Post" + +# header.tmpl 29 +msgid "Return to editor" +msgstr "Return to editor" + +# footer.tmpl 10,14,34 +# user/include/footer.tmpl 13 +msgid "writer's guide" +msgstr "writer's guide" + +# footer.tmpl 15,35 +msgid "developers" +msgstr "developers" + +# footer.tmpl 11,28 +# user/include/footer.tmpl 14 +msgid "privacy" +msgstr "privacy" + +# footer.tmpl 16,36 +msgid "source code" +msgstr "source code" + +# base.tmpl 28 +# header.tmpl 9,35 +msgid "Admin dashboard" +msgstr "Admin dashboard" + +# base.tmpl 29 +# header.tmpl 10,36 +msgid "Account settings" +msgstr "Account settings" + +# import.tmpl 17 +# header.tmpl 11,37 +msgid "Import posts" +msgstr "Import posts" + +# base.tmpl 30 +# export.tmpl 5,10 +# header.tmpl 12,38 +msgid "Export" +msgstr "Export" + +# header.tmpl 103 +msgid "Dashboard" +msgstr "Dashboard" + +# header.tmpl 104 +msgid "Settings" +msgstr "Settings" + +# export.tmpl 19 +# admin.tmpl 58 +# header.tmpl 106 +# view-user.tmpl 59 +# users.tmpl 15,21,30 +msgid "User" +msgid_plural "Users" +msgstr[0] "User" +msgstr[1] "Users" + +# header.tmpl 107 +# pages.tmpl 13, 17 +msgid "Page" +msgid_plural "Pages" +msgstr[0] "Page" +msgstr[1] "Pages" + +# post.tmpl 41 +# posts.tmpl 11,43,64,66 +# view-user 128 +msgid "View" +msgid_plural "Views" +msgstr[0] "View" +msgstr[1] "Views" + +# posts.tmpl 11,43,64,66 +# view-user 128 +# edit-meta.tmpl 49,55 +# pad.tmpl 63 +msgid "View post" +msgid_plural "View posts" +msgstr[0] "View post" +msgstr[1] "View posts" + +# classic.tmpl 41,45 +# collection.tmpl 57 +# header.tmpl 7 +# edit-meta.tmpl 41 +# pad.tmpl 24,36,40 +# nav.tmpl 12 +msgid "View Blog" +msgid_plural "View Blogs" +msgstr[0] "View Blog" +msgstr[1] "View Blogs" + +# classic.tmpl 62 +# pad.tmpl 124 +msgid "word" +msgid_plural "words" +msgstr[0] "word" +msgstr[1] "words" + +# pad.tmpl 64 +msgid "Publish" +msgstr "Publish" + +# pad.tmpl 20 +# bare.tmpl 20 +msgid "This post has been updated elsewhere since you last published!" +msgstr "This post has been updated elsewhere since you last published!" + +# pad.tmpl 20 +# bare.tmpl 20 +msgid "Delete draft and reload" +msgstr "Delete draft and reload" + +msgid "Updates" +msgstr "Updates" + +# classic.tmpl 42 +# pad.tmpl 37 +# user/collection.tmpl 32 +# collection.tmpl 54 +# nav.tmpl 10 +# header.tmpl 19 +msgid "Customize" +msgstr "Customize" + +# classic.tmpl 43 +# collection.tmpl 55 +# pad.tmpl 38 +# stats.tmpl 26 +# nav.tmpl 11 +# header.tmpl 20 +msgid "Stats" +msgstr "Stats" + +# classic.tmpl 47 +# collection.tmpl 58 +# pad.tmpl 42 +msgid "View Draft" +msgid_plural "View Drafts" +msgstr[0] "View Draft" +msgstr[1] "View Drafts" + +# header.tmpl 111 +msgid "Monitor" +msgstr "Monitor" + +# read.tmpl 108,110 +msgid "Read more..." +msgstr "Read more..." + +# silenced.tmpl 3 +msgid "Your account has been silenced." +msgstr "Your account has been silenced." + +# silenced.tmpl 3 +msgid "You can still access all of your posts and blogs, but no one else can currently see them." +msgstr "You can still access all of your posts and blogs, but no one else can currently see them." + +# articles.tmpl 28 +msgid "These are your draft posts. You can share them individually (without a blog) or move them to your blog when you're ready." +msgstr "These are your draft posts. You can share them individually (without a blog) or move them to your blog when you're ready." + +# articles.tmpl 57 +msgid "Your anonymous and draft posts will show up here once you've published some. You'll be able to share them individually (without a blog) or move them to a blog when you're ready." +msgstr "Your anonymous and draft posts will show up here once you've published some. You'll be able to share them individually (without a blog) or move them to a blog when you're ready." + +# articles.tmpl 58 +msgid "Alternatively, see your blogs and their posts on your %s page." +msgstr "Alternatively, see your blogs and their posts on your %s page." + +# articles.tmpl 60 +msgid "Start writing" +msgstr "Start writing" + +# articles.tmpl 64 +# static/js/postactions.jsmsgid "unsynced posts" +msgstr "unsynced posts" + +# articles.tmpl 64 +# collection.tmpl 43 +# view-page.tmpl 51 +# view-user 116 +msgid "Title" +msgstr "Title" + +# user/collection.tmpl 44 +# view-user 120 +msgid "Description" +msgstr "Description" + +# user/collection.tmpl 50 +msgid "This blog uses your username in its URL." +msgstr "This blog uses your username in its URL." + +# user/collection.tmpl 50 +msgid "This blog uses your username in its URL and fediverse handle." +msgstr "This blog uses your username in its URL and fediverse handle." + +# user/collection.tmpl 50 +msgid "You can change it in your %s." +msgstr "You can change it in your %s." + +# user/collection.tmpl 63 +msgid "Publicity" +msgstr "Publicity" + +# user/collection.tmpl 68 +# app-settings.tmpl 120 +msgid "Unlisted" +msgstr "Unlisted" + +# user/collection.tmpl 87 +# app-settings.tmpl 121 +msgid "Public" +msgstr "Public" + +# user/collection.tmpl 74 +# app-settings.tmpl 122 +msgid "Private" +msgstr "Private" + +# user/collection.tmpl 70 +msgid "This blog is visible to any registered user on this instance." +msgstr "This blog is visible to any registered user on this instance." + +# user/collection.tmpl 70 +msgid "This blog is visible to anyone with its link." +msgstr "This blog is visible to anyone with its link." + +# user/collection.tmpl 76 +msgid "Only you may read this blog (while you're logged in)." +msgstr "Only you may read this blog (while you're logged in)." + +# user/collection.tmpl 80 +msgid "Password-protected:" +msgstr "Password-protected:" + +# user/collection.tmpl 80 +msgid "a memorable password" +msgstr "a memorable password" + +# user/collection.tmpl 82 +msgid "A password is required to read this blog." +msgstr "A password is required to read this blog." + +# user/collection.tmpl 89 +msgid "This blog is displayed on the public %s, and is visible to anyone with its link." +msgstr "This blog is displayed on the public %s, and is visible to anyone with its link." + +# user/collection.tmpl 89 +msgid "This blog is displayed on the public %s, and is visible to any registered user on this instance." +msgstr "This blog is displayed on the public %s, and is visible to any registered user on this instance." + +# user/collection.tmpl 90 +msgid "The public reader is currently turned off for this community." +msgstr "The public reader is currently turned off for this community." + +# user/collection.tmpl 98 +msgid "Display Format" +msgstr "Display Format" + +# user/collection.tmpl 100 +msgid "Customize how your posts display on your page." +msgstr "Customize how your posts display on your page." + +# user/collection.tmpl 107 +msgid "Dates are shown. Latest posts listed first." +msgstr "Dates are shown. Latest posts listed first." + +# user/collection.tmpl 113 +msgid "No dates shown. Oldest posts first." +msgstr "No dates shown. Oldest posts first." + +# user/collection.tmpl 119 +msgid "No dates shown. Latest posts first." +msgstr "No dates shown. Latest posts first." + +# user/collection.tmpl 126 +msgid "Text Rendering" +msgstr "Text Rendering" + +# user/collection.tmpl 128 +msgid "Customize how plain text renders on your blog." +msgstr "Customize how plain text renders on your blog." + +# user/collection.tmpl 145 +msgid "Custom CSS" +msgstr "Custom CSS" + +# user/collection.tmpl 148 +msgid "customization" +msgstr "customization" + +# user/collection.tmpl 148 +msgid "See our guide on %s." +msgstr "See our guide on %s." + +# user/collection.tmpl 153 +msgid "Post Signature" +msgstr "Post Signature" + +# user/collection.tmpl 155 +msgid "This content will be added to the end of every post on this blog, as if it were part of the post itself. Markdown, HTML, and shortcodes are allowed." +msgstr "This content will be added to the end of every post on this blog, as if it were part of the post itself. Markdown, HTML, and shortcodes are allowed." + +# user/collection.tmpl 162 +msgid "Web Monetization" +msgstr "Web Monetization" + +# user/collection.tmpl 164 +msgid "Web Monetization enables you to receive micropayments from readers that have a %s. Add your payment pointer to enable Web Monetization on your blog." +msgstr "Web Monetization enables you to receive micropayments from readers that have a %s. Add your payment pointer to enable Web Monetization on your blog." + +# user/collection.tmpl 164 +msgid "Coil membership" +msgstr "Coil membership" + +# edit-meta.tmpl 263 +# settings.tmpl 81 +# user/collection.tmpl 171 +msgid "Save changes" +msgstr "Save changes" + +# user/collection.tmpl 173 +msgid "Delete Blog..." +msgstr "Delete Blog..." + +# user/collection.tmpl 190,220 +# articles.tmpl 36 +# posts.tmpl 19,46 +msgid "Delete" +msgstr "Delete" + +# settings.tmpl 187 +# user/collection.tmpl 189 +# view-user 173 +msgid "Cancel" +msgstr "Cancel" + +# user/collection.tmpl 180 +msgid "Are you sure you want to delete this blog?" +msgstr "Are you sure you want to delete this blog?" + +# posts.js 46,147 +# collection.tmpl 148 +# collection-tags.tmpl 96 +# chorus-collection.tmpl 132 +msgid "Are you sure you want to delete this post?" +msgstr "Are you sure you want to delete this post?" + +# posts.js 302 +# collection.tmpl 175,226 +# collection-tags.tmpl 123,174 +# chorus-collection.tmpl 159,210 +msgid "Post is synced to another account. Delete the post from that account instead." +msgstr "Post is synced to another account. Delete the post from that account instead." + +# posts.js 308 +# collection.tmpl 181 +# collection-tags.tmpl 129 +# chorus-collection.tmpl 165 +msgid "Failed to delete." +msgstr "Failed to delete." + +# posts.js 308 +# collection.tmpl 181 +# collection-tags.tmpl 129 +# chorus-collection.tmpl 165 +msgid "Please try again." +msgstr "Please try again." + +# user/collection.tmpl 182 +msgid "This will permanently erase **%s** (%s/%s) from the internet. Any posts on this blog will be saved and made into drafts (found on your %s page)." +msgstr "This will permanently erase **%s** (%s/%s) from the internet. Any posts on this blog will be saved and made into drafts (found on your %s page)." + +# user/collection.tmpl 183 +msgid "If you're sure you want to delete this blog, enter its name in the box below and press **%s**." +msgstr "If you're sure you want to delete this blog, enter its name in the box below and press **%s**." + +# user/collection.tmpl 202 +msgid "Enter **%s** in the box below." +msgstr "Enter **%s** in the box below." + +# user/collection.tmpl 238 +msgid "Saving changes..." +msgstr "Saving changes..." + +# collections.tmpl 72,75,84 +msgid "This name is taken." +msgstr "This name is taken." + +# pad.tmpl 61 +msgid "Edit post metadata" +msgstr "Edit post metadata" + +# edit-meta.tmpl 5,55 +msgid "Edit metadata" +msgstr "Edit metadata" + +# edit-meta.tmpl 260 +msgid "now" +msgstr "now" + +# edit-meta.tmpl 63 +msgid "Slug" +msgstr "Slug" + +# edit-meta.tmpl 66 +msgid "Language" +msgstr "Language" + +# edit-meta.tmpl 256 +msgid "Direction" +msgstr "Direction" + +# edit-meta.tmpl 258 +msgid "Created" +msgstr "Created" + +# edit-meta.tmpl 257 +msgid "right-to-left" +msgstr "right-to-left" + +# edit-meta.tmpl 47 +msgid "Edit post" +msgstr "Edit post" + +# edit-meta.tmpl 48 +# pad.tmpl 62 +msgid "Toggle theme" +msgstr "Toggle theme" + +# collection-post.tmpl 66 +# posts.tmpl 8 +msgid "Scheduled" +msgstr "Scheduled" + +# collection-post.tmpl 57 +# post.tmpl 45,91 +# articles.tmpl 35 +# posts.tmpl 17,44 +msgid "Edit" +msgstr "Edit" + +# posts.tmpl 18,45 +msgid "Pin" +msgstr "Pin" + +# collection-post.tmpl 58 +msgid "Unpin" +msgstr "Unpin" + +# posts.tmpl 21,48 +msgid "Move this post to another blog" +msgstr "Move this post to another blog" + +# posts.tmpl 30,57 +msgid "Change to a draft" +msgstr "Change to a draft" + +# posts.tmpl 30,57 +msgid "change to _%s_" +msgstr "change to _%s_" + +# articles.tmpl 43,78 +# posts.tmpl 26,53 +msgid "move to..." +msgstr "move to..." + +# articles.tmpl 47,83 +msgid "move to %s" +msgstr "move to %s" + +# post.tmpl 42 +msgid "View raw" +msgstr "View raw" + +# articles.tmpl 47,83 +msgid "Publish this post to your blog %s" +msgstr "Publish this post to your blog %s" + +# articles.tmpl 39,74 +msgid "Move this post to one of your blogs" +msgstr "Move this post to one of your blogs" + +# articles.tmpl 55 +msgid "Load more..." +msgstr "Load more..." + +# stats.tmpl 32 +msgid "Stats for all time." +msgstr "Stats for all time." + +# stats.tmpl 35 +msgid "Fediverse stats" +msgstr "Fediverse stats" + +# stats.tmpl 38 +msgid "Followers" +msgstr "Followers" + +# stats.tmpl 46 +msgid "Top %d post" +msgid_plural "Top %d posts" +msgstr[0] "Top %d post" +msgstr[1] "Top %d posts" + +# stats.tmpl 51 +msgid "Total Views" +msgstr "Total Views" + +# settings.tmpl 27 +msgid "Before you go..." +msgstr "Before you go..." + +# settings.tmpl 27 +msgid "Account Settings" +msgstr "Account Settings" + +# settings.tmpl 38 +msgid "Change your account settings here." +msgstr "Change your account settings here." + +# signup.tmpl 80 +# signup-oauth.tmpl 85,87 +# login.tmpl 21 +# landing.tmpl 92 +# settings.tmpl 43 +# view-user.tmpl 62 +msgid "Username" +msgstr "Username" + +# settings.tmpl 46 +msgid "Update" +msgstr "Update" + +# settings.tmpl 56 +msgid "Passphrase" +msgstr "Passphrase" + +# settings.tmpl 58 +msgid "Add a passphrase to easily log in to your account." +msgstr "Add a passphrase to easily log in to your account." + +# settings.tmpl 59,60 +msgid "Current passphrase" +msgstr "Current passphrase" + +# settings.tmpl 61,64 +msgid "New passphrase" +msgstr "New passphrase" + +# settings.tmpl 60,64 +msgid "Show" +msgstr "Show" + +msgid "Account updated." +msgstr "Account updated." + +# signup.tmpl 91 +# signup-oauth.tmpl 92,94 +# landing.tmpl 103 +# settings.tmpl 69 +msgid "Email" +msgstr "Email" + +# settings.tmpl 76 +msgid "Email address" +msgstr "Email address" + +# settings.tmpl 71 +msgid "Add your email to get:" +msgstr "Add your email to get:" + +# settings.tmpl 34 +msgid "Please add an **%s** and/or **%s** so you can log in again later." +msgstr "Please add an **%s** and/or **%s** so you can log in again later." + +# settings.tmpl 73 +msgid "No-passphrase login" +msgstr "No-passphrase login" + +# settings.tmpl 74 +msgid "Account recovery if you forget your passphrase" +msgstr "Account recovery if you forget your passphrase" + +# settings.tmpl 89 +msgid "Linked Accounts" +msgstr "Linked Accounts" + +# settings.tmpl 90 +msgid "These are your linked external accounts." +msgstr "These are your linked external accounts." + +# settings.tmpl 114 +msgid "Link External Accounts" +msgstr "Link External Accounts" + +msgid "Connect additional accounts to enable logging in with those providers, instead of using your username and password." +msgstr "Connect additional accounts to enable logging in with those providers, instead of using your username and password." + +# settings.tmpl 162 +# view-user 149 +msgid "Incinerator" +msgstr "Incinerator" + +# settings.tmpl 166,169,188 +msgid "Delete your account" +msgstr "Delete your account" + +# settings.tmpl 167 +msgid "Permanently erase all your data, with no way to recover it." +msgstr "Permanently erase all your data, with no way to recover it." + +# settings.tmpl 176 +# view-user 163 +msgid "Are you sure?" +msgstr "Are you sure?" + +# settings.tmpl 178 +msgid "export your data" +msgstr "export your data" + +# settings.tmpl 178 +msgid "This action **cannot** be undone. It will immediately and permanently erase your account, including your blogs and posts. Before continuing, you might want to %s." +msgstr "This action **cannot** be undone. It will immediately and permanently erase your account, including your blogs and posts. Before continuing, you might want to %s." + +# settings.tmpl 179 +msgid "If you're sure, please type **%s** to confirm." +msgstr "If you're sure, please type **%s** to confirm." + +# invite-help.tmpl 13 +msgid "Invite to %s" +msgstr "Invite to %s" + +# invite-help.tmpl 15 +msgid "This invite link is expired." +msgstr "This invite link is expired." + +# invite-help.tmpl 21 +msgid "Only **one** user" +msgstr "Only **one** user" + +# invite-help.tmpl 21 +msgid "Up to **%d** users" +msgstr "Up to **%d** users" + +# invite-help.tmpl 21 +msgid "can sign up with this link." +msgstr "can sign up with this link." + +# invite-help.tmpl 23 +msgid "It expires on **%s**." +msgstr "It expires on **%s**." + +# invite-help.tmpl 25 +msgid "It can be used as many times as you like" +msgstr "It can be used as many times as you like" + +# invite-help 25 +msgid "before **%s**, when it expires" +msgstr "before **%s**, when it expires" + +msgid "person has" +msgid_plural "person have" +msgstr[0] "person has" +msgstr[1] "person have" + +# invite-help.tmpl 21 +msgid "So far, **%d** %s used it." +msgstr "So far, **%d** %s used it." + +# invite-help.tmpl 17 +msgid "Copy the link below and send it to anyone that you want to join *%s*. You could paste it into an email, instant message, text message, or write it down on paper. Anyone who navigates to this special page will be able to create an account." +msgstr "Copy the link below and send it to anyone that you want to join *%s*. You could paste it into an email, instant message, text message, or write it down on paper. Anyone who navigates to this special page will be able to create an account." + +# IMPORT PAGE +# import.tmpl 28 +msgid "Publish plain text or Markdown files to your account by uploading them below." +msgstr "Publish plain text or Markdown files to your account by uploading them below." + +# import.tmpl 31 +msgid "Select some files to import:" +msgstr "Select some files to import:" + +# import.tmpl 36 +msgid "Import these posts to:" +msgstr "Import these posts to:" + +# import.tmpl 59 +msgid "Import" +msgstr "Import" + +msgid "Import complete, %d post imported." +msgid_plural "Import complete, %d posts imported." +msgstr[0] "Import complete, %d post imported." +msgstr[1] "Import complete, %d posts imported." + +msgid "%d of %d posts imported, see details below." +msgid_plural "%d of %d posts imported, see details below." +msgstr[0] "%d of %d posts imported, see details below." +msgstr[1] "%d of %d posts imported, see details below." + +msgid "%s is not a supported post file" +msgstr "%s is not a supported post file" + +# export.tmpl 6 +msgid "Your data on %s is always free. Download and back-up your work any time." +msgstr "Your data on %s is always free. Download and back-up your work any time." + +# export.tmpl 11 +msgid "Format" +msgstr "Format" + +# header.tmpl 101 +msgid "Admin" +msgstr "Admin" + +# app-settings.tmpl 37 +msgid "Site Title" +msgstr "Site Title" + +# app-settings.tmpl 38 +msgid "Your public site name." +msgstr "Your public site name." + +# app-settings.tmpl 44 +msgid "Site Description" +msgstr "Site Description" + +# app-settings.tmpl 45 +msgid "Describe your site — this shows in your site's metadata." +msgstr "Describe your site — this shows in your site's metadata." + +# app-settings.tmpl 51 +msgid "Host" +msgstr "Host" + +# app-settings.tmpl 52 +msgid "The public address where users will access your site, starting with `http://` or `https://`." +msgstr "The public address where users will access your site, starting with `http://` or `https://`." + +# app-settings.tmpl 58 +msgid "Community Mode" +msgstr "Community Mode" + +# app-settings.tmpl 59 +msgid "Whether your site is made for one person or many." +msgstr "Whether your site is made for one person or many." + +# app-settings.tmpl 61 +msgid "Single user" +msgstr "Single user" + +# app-settings.tmpl 61 +msgid "Multiple users" +msgstr "Multiple users" + +# app-settings.tmpl 65 +msgid "Landing Page" +msgstr "Landing Page" + +# app-settings.tmpl 66 +msgid "The page that logged-out visitors will see first. This should be an absolute path like: `/read`." +msgstr "The page that logged-out visitors will see first. This should be an absolute path like: `/read`." + +# app-settings.tmpl 72 +msgid "Open Registrations" +msgstr "Open Registrations" + +# app-settings.tmpl 73 +msgid "Allow anyone who visits the site to create an account." +msgstr "Allow anyone who visits the site to create an account." + +# app-settings.tmpl 80 +msgid "Allow account deletion" +msgstr "Allow account deletion" + +# app-settings.tmpl 81 +msgid "Allow all users to delete their account. Admins can always delete users." +msgstr "Allow all users to delete their account. Admins can always delete users." + +# app-settings.tmpl 88 +msgid "Allow invitations from..." +msgstr "Allow invitations from..." + +# app-settings.tmpl 89 +msgid "Choose who is allowed to invite new people." +msgstr "Choose who is allowed to invite new people." + +# app-settings.tmpl 93 +msgid "No one" +msgstr "No one" + +# app-settings.tmpl 94 +msgid "Only Admins" +msgstr "Only Admins" + +# app-settings.tmpl 95 +msgid "All Users" +msgstr "All Users" + +# app-settings.tmpl 101 +msgid "Private Instance" +msgstr "Private Instance" + +# app-settings.tmpl 102 +msgid "Limit site access to people with an account." +msgstr "Limit site access to people with an account." + +# app-settings.tmpl 109 +msgid "Show a feed of user posts for anyone who chooses to share there." +msgstr "Show a feed of user posts for anyone who chooses to share there." + +# app-settings.tmpl 115 +msgid "Default blog visibility" +msgstr "Default blog visibility" + +# app-settings.tmpl 116 +msgid "The default setting for new accounts and blogs." +msgstr "The default setting for new accounts and blogs." + +# app-settings.tmpl 128 +msgid "Maximum Blogs per User" +msgstr "Maximum Blogs per User" + +# app-settings.tmpl 129 +msgid "Keep things simple by setting this to **1**, unlimited by setting to **0**, or pick another amount." +msgstr "Keep things simple by setting this to **1**, unlimited by setting to **0**, or pick another amount." + +# app-settings.tmpl 135 +msgid "Federation" +msgstr "Federation" + +# app-settings.tmpl 136 +msgid "Enable accounts on this site to propagate their posts via the ActivityPub protocol." +msgstr "Enable accounts on this site to propagate their posts via the ActivityPub protocol." + +# app-settings.tmpl 142 +msgid "Public Stats" +msgstr "Public Stats" + +# app-settings.tmpl 143 +msgid "Publicly display the number of users and posts on your **%s** page." +msgstr "Publicly display the number of users and posts on your **%s** page." + +# app-settings.tmpl 149 +msgid "Monetization" +msgstr "Monetization" + +# app-settings.tmpl 150 +msgid "Enable blogs on this site to receive micropayments from readers via %s." +msgstr "Enable blogs on this site to receive micropayments from readers via %s." + +# app-settings.tmpl 156 +msgid "Minimum Username Length" +msgstr "Minimum Username Length" + +# app-settings.tmpl 157 +msgid "The minimum number of characters allowed in a username. (Recommended: 2 or more.)" +msgstr "The minimum number of characters allowed in a username. (Recommended: 2 or more.)" + +# app-settings.tmpl 162 +msgid "Save Settings" +msgstr "Save Settings" + +# app-settings.tmpl 166 +msgid "configuration docs" +msgstr "configuration docs" + +# app-settings.tmpl 166 +msgid "Still have questions? Read more details in the %s." +msgstr "Still have questions? Read more details in the %s." + +msgid "Configuration saved." +msgstr "Configuration saved." + +# view-user.tmpl 66 +# users.tmpl 22 +msgid "joined" +msgstr "joined" + +# users.tmpl 23 +msgid "type" +msgstr "type" + +# users.tmpl 24 +# view-user.tmpl 79 +msgid "status" +msgstr "status" + +# base.tmpl 31 +# header.tmpl 39 +# invite.tmpl 26 +# users.tmpl 16 +msgid "Invite people" +msgstr "Invite people" + +# invite.tmpl 27 +msgid "Invite others to join *%s* by generating and sharing invite links below." +msgstr "Invite others to join *%s* by generating and sharing invite links below." + +# invite.tmpl 31 +msgid "Maximum number of uses:" +msgstr "Maximum number of uses:" + +# invite.tmpl 33 +msgid "No limit" +msgstr "No limit" + +# invite.tmpl 34,35,36,37,38,39,64 +msgid "use" +msgid_plural "uses" +msgstr[0] "use" +msgstr[1] "uses" + +# invite.tmpl 43 +msgid "Expire after:" +msgstr "Expire after:" + +# invite.tmpl 46 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minute" +msgstr[1] "minutes" + +# invite.tmpl 47,48,49 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hour" +msgstr[1] "hours" + +# invite.tmpl 50,51 +msgid "day" +msgid_plural "days" +msgstr[0] "day" +msgstr[1] "days" + +# invite.tmpl 52 +msgid "week" +msgid_plural "weeks" +msgstr[0] "week" +msgstr[1] "weeks" + +# invite.tmpl 57 +msgid "You cannot generate invites while your account is silenced." +msgstr "You cannot generate invites while your account is silenced." + +# invite.tmpl 57 +msgid "Generate" +msgstr "Generate" + +# invite.tmpl 63 +msgid "Link" +msgstr "Link" + +# invite.tmpl 121,129,137,145,152 +msgid "ToLink" +msgstr "Link" + +# invite.tmpl 65 +msgid "Expires" +msgstr "Expires" + +# invite.tmpl 71 +msgid "Expired" +msgstr "Expired" + +# invite.tmpl 75 +msgid "No invites generated yet." +msgstr "No invites generated yet." + +# pages.tmpl 18 +msgid "last modified" +msgstr "last modified" + +# view-user.tmpl 85 +# users.tmpl 31 +msgid "Active" +msgstr "Active" + +# view-user.tmpl 82 +# users.tmpl 31 +msgid "Silenced" +msgstr "Silenced" + +# view-user.tmpl 83 +msgid "Unsilence" +msgstr "Unsilence" + +# view-user 86 +msgid "disabled" +msgstr "disabled" + +# view-user 86 +msgid "Silence" +msgstr "Silence" + +# view-user.tmpl 54 +msgid "No." +msgstr "No." + +# view-user.tmpl 70 +msgid "total posts" +msgstr "total posts" + +# view-user.tmpl 74,136 +msgid "last post" +msgstr "last post" + +# signup.tmpl 87 +# login.tmpl 22 +# landing.tmpl 99 +# view-user 92 +msgid "password" +msgstr "password" + +msgid "Change your password" +msgstr "Change your password" + +# view-user 100 +msgid "Go to reset password page" +msgstr "Go to reset password page" + +# view-user 141 +msgid "Fediverse followers" +msgstr "Fediverse followers" + +# view-user 124 +msgid "Visibility" +msgstr "Visibility" + +# view-user 112 +msgid "Alias" +msgstr "Alias" + +# view-user.tmpl 75,137 +msgid "Never" +msgstr "Never" + +# view-user 97 +msgid "Reset" +msgstr "Reset" + +# view-user 153,156,174 +msgid "Delete this user" +msgstr "Delete this user" + +# view-user 154 +msgid "Permanently erase all user data, with no way to recover it." +msgstr "Permanently erase all user data, with no way to recover it." + +# view-user 165 +msgid "This action **cannot**be undone. It will permanently erase all traces of this user, **%s**, including their account information, blogs, and posts." +msgstr "This action **cannot**be undone. It will permanently erase all traces of this user, **%s**, including their account information, blogs, and posts." + +# view-user 166 +msgid "Please type **%s** to confirm." +msgstr "Please type **%s** to confirm." + +# view-user 202 +msgid "Silence this user? They'll still be able to log in and access their posts, but no one else will be able to see them anymore. You can reverse this decision at any time." +msgstr "Silence this user? They'll still be able to log in and access their posts, but no one else will be able to see them anymore. You can reverse this decision at any time." + +# view-user 208 +msgid "Reset this user's password? This will generate a new temporary password that you'll need to share with them, and invalidate their old one." +msgstr "Reset this user's password? This will generate a new temporary password that you'll need to share with them, and invalidate their old one." + +# settings.tmpl 225 +# user/collection.tmpl 207 +# view-user.tmpl 198 +msgid "Deleting..." +msgstr "Deleting..." + +# view-user.tmpl 46 +msgid "This user's password has been reset to:" +msgstr "This user's password has been reset to:" + +# view-user.tmpl 48 +msgid "They can use this new password to log in to their account. **This will only be shown once**, so be sure to copy it and send it to them now." +msgstr "They can use this new password to log in to their account. **This will only be shown once**, so be sure to copy it and send it to them now." + +# view-user.tmpl 49 +msgid "Their email address is:" +msgstr "Their email address is:" + +# app-updates.tmlp 19 +msgid "Automated update check failed." +msgstr "Automated update check failed." + +# app-updates.tmlp 20, 24, 41 +msgid "Installed version: %s (%s)." +msgstr "Installed version: %s (%s)." + +# app-updates.tmlp 21, 42 +msgid "Learn about latest releases on the %s or %s." +msgstr "Learn about latest releases on the %s or %s." + +# app-updates.tmlp 23 +msgid "WriteFreely is **up to date**." +msgstr "WriteFreely is **up to date**." + +# app-updates.tmlp 27 +msgid "Get" +msgstr "Get" + +# app-updates.tmlp 27 +msgid "A new version of WriteFreely is available! **%s %s**" +msgstr "A new version of WriteFreely is available! **%s %s**" + +# app-updates.tmlp 28 +msgid "release notes" +msgstr "release notes" + +# app-updates.tmlp 29 +msgid "Read the %s for details on features, bug fixes, and notes on upgrading from your current version, **%s**." +msgstr "Read the %s for details on features, bug fixes, and notes on upgrading from your current version, **%s**." + +# app-updates.tmlp 31 +msgid "Check now" +msgstr "Check now" + +# app-updates.tmlp 31 +msgid "Last checked" +msgstr "Last checked" + +# app-updates.tmlp 40 +msgid "Automated update checks are disabled." +msgstr "Automated update checks are disabled." + +# ADMIN PAGES +# view-page.tmpl 45 +msgid "Banner" +msgstr "Banner" + +# view-page.tmpl 56 +msgid "Body" +msgstr "Body" + +# view-page.tmpl 33 +msgid "Outline your %s." +msgstr "Outline your %s." + +# view-page.tmpl 35,37 +msgid "Customize your %s page." +msgstr "Customize your %s page." + +# view-page.tmpl 31 +msgid "Describe what your instance is %s." +msgstr "Describe what your instance is %s." + +msgid "Accepts Markdown and HTML." +msgstr "Accepts Markdown and HTML." + +# view-page.tmpl 56 +msgid "Content" +msgstr "Content" + +# view-page.tmpl 63 +msgid "Save" +msgstr "Save" + +# view-page.tmpl 71 +msgid "Saving..." +msgstr "Saving..." + +# view-page.tmpl 48 +msgid "We suggest a header (e.g. `# Welcome`), optionally followed by a small bit of text. Accepts Markdown and HTML." +msgstr "We suggest a header (e.g. `# Welcome`), optionally followed by a small bit of text. Accepts Markdown and HTML." + +# login.tmpl 11 +msgid "Log in to %s" +msgstr "Log in to %s" + +# login.tmpl 32 +msgid "Logging in..." +msgstr "Logging in..." + +# login.tmpl 27 +msgid "_No account yet?_ %s to start a blog." +msgstr "_No account yet?_ %s to start a blog." + +msgid "Incorrect password." +msgstr "Incorrect password." + +msgid "This user never set a password. Perhaps try logging in via OAuth?" +msgstr "This user never set a password. Perhaps try logging in via OAuth?" + +msgid "This user never added a password or email address. Please contact us for help." +msgstr "This user never added a password or email address. Please contact us for help." + +msgid "You're doing that too much." +msgstr "You're doing that too much." + +msgid "Parameter `alias` required." +msgstr "Parameter `alias` required." + +msgid "A username is required." +msgstr "A username is required." + +msgid "Parameter `pass` required." +msgstr "Parameter `pass` required." + +msgid "A password is required." +msgstr "A password is required." + +msgid "Need a collection `alias` to read." +msgstr "Need a collection `alias` to read." + +msgid "Please supply a password." +msgstr "Please supply a password." + +msgid "Something went very wrong. The humans have been alerted." +msgstr "Something went very wrong. The humans have been alerted." + +msgid "Logging out failed. Try clearing cookies for this site, instead." +msgstr "Logging out failed. Try clearing cookies for this site, instead." + +# signup-oauth.tmpl 88 +# landing.tmpl 95,197 +msgid "your-username" +msgstr "your-username" + +# signup.tmpl 91 +# landing.tmpl 103 +msgid "optional" +msgstr "optional" + +# signup.tmpl 95 +# landing.tmpl 107 +msgid "Create blog" +msgstr "Create blog" + +# signup-oauth.tmpl 59 +msgid "Finish creating account" +msgstr "Finish creating account" + +# signup-oauth.tmpl 79 +msgid "Display Name" +msgstr "Display Name" + +# oauth.tmpl 26 +msgid "or" +msgstr "or" + +# oauth.tmpl 9,13,17,20 +msgid "Sign in with **%s**" +msgstr "Sign in with **%s**" + +# landing.tmpl 77 +msgid "Learn more..." +msgstr "Learn more..." + +# landing.tmpl 114 +msgid "Registration is currently closed." +msgstr "Registration is currently closed." + +# landing.tmpl 115 +msgid "another instance" +msgstr "another instance" + +# landing.tmpl 115 +msgid "You can always sign up on %s." +msgstr "You can always sign up on %s." + +msgid "# Start your blog" +msgstr "# Start your blog" + +msgid "# Start your blog in the fediverse" +msgstr "# Start your blog in the fediverse" + +msgid "" +"## Write More Socially\n" +"\n" +"WriteFreely can communicate with other federated platforms like _Mastodon_, so people can follow your blogs, bookmark their favorite posts, and boost them to their followers. Sign up above to create a blog and join the fediverse." +msgstr "" +"## Write More Socially\n" +"\n" +"WriteFreely can communicate with other federated platforms like _Mastodon_, so people can follow your blogs, bookmark their favorite posts, and boost them to their followers. Sign up above to create a blog and join the fediverse." + +msgid "About %s" +msgstr "About %s" + +msgid "_%s_ is a place for you to write and publish, powered by %s." +msgstr "_%s_ is a place for you to write and publish, powered by %s." + +msgid "_%s_ is an interconnected place for you to write and publish, powered by %s." +msgstr "_%s_ is an interconnected place for you to write and publish, powered by %s." + +msgid "_%s_ is home to %d articles across %d blogs." +msgstr "_%s_ is home to %d articles across %d blogs." + +msgid "" +"## About WriteFreely\n" +"\n" +"%s is a self-hosted, decentralized blogging platform for publishing beautiful, simple blogs.\n" +"\n" +"It lets you publish a single blog, or host a community of writers who can create multiple blogs under one account. You can also enable federation, which allows people in the fediverse to follow your blog, bookmark your posts, and share them with others." +msgstr "" +"## About WriteFreely\n" +"\n" +"%s is a self-hosted, decentralized blogging platform for publishing beautiful, simple blogs.\n" +"\n" +"It lets you publish a single blog, or host a community of writers who can create multiple blogs under one account. You can also enable federation, which allows people in the fediverse to follow your blog, bookmark your posts, and share them with others." + +msgid "Start an instance" +msgstr "Start an instance" + +msgid "Privacy Policy" +msgstr "Privacy Policy" + +# privacy.tmpl 6 +msgid "Last updated" +msgstr "Last updated" + +msgid "Read the latest posts form %s." +msgstr "Read the latest posts form %s." + +# : pages.go:98 +msgid "" +"%s, the software that powers this site, is built to enforce your right to privacy by default.\n" +"\n" +"It retains as little data about you as possible, not even requiring an email address to sign up. However, if you _do_ give us your email address, it is stored encrypted in our database.\n" +"\n" +"We salt and hash your account's password.We store log files, or data about what happens on our servers. We also use cookies to keep you logged in to your account.\n" +"\n" +"Beyond this, it's important that you trust whoever runs %s. Software can only do so much to protect you -- your level of privacy protections will ultimately fall on the humans that run this particular service." +msgstr "" +"%s, the software that powers this site, is built to enforce your right to privacy by default.\n" +"\n" +"It retains as little data about you as possible, not even requiring an email address to sign up. However, if you _do_ give us your email address, it is stored encrypted in our database.\n" +"\n" +"We salt and hash your account's password.We store log files, or data about what happens on our servers. We also use cookies to keep you logged in to your account.\n" +"\n" +"Beyond this, it's important that you trust whoever runs %s. Software can only do so much to protect you -- your level of privacy protections will ultimately fall on the humans that run this particular service." + +# static/js/postactions.js +msgid "Unpublished post" +msgstr "Unpublished post" + +msgid "Moved to %s" +msgstr "Moved to %s" + +msgid "move to" +msgstr "move to" + +msgid "moving to %s..." +msgstr "moving to %s..." + +msgid "unable to move" +msgstr "unable to move" + +msgid "View on %s" +msgstr "View on %s" + +# classic.tmpl 64 +# pad.tmpl 59 +# bare.tmpl 30 +msgid "NOTE" +msgstr "NOTE" + +# classic.tmpl 64 +# pad.tmpl 59 +# bare.tmpl 30 +msgid "for now, you'll need Javascript enabled to post." +msgstr "for now, you'll need Javascript enabled to post." + +# classic.tmpl 158 +# pad.tmpl 174 +msgid "Your account is silenced, so you can't publish or update posts." +msgstr "Your account is silenced, so you can't publish or update posts." + +# classic.tmpl 257 +# pad.tmpl 278 +msgid "Failed to post. Please try again." +msgstr "Failed to post. Please try again." + +# classic.tmpl 163 +# pad.tmpl 179 +# bare.tmpl 99 +msgid "You don't have permission to update this post." +msgstr "You don't have permission to update this post." + +# pad.tmpl 16 +msgid "Write..." +msgstr "Write..." + +# classic.tmpl 34 +# pad.tmpl 29 +msgid "Publish to..." +msgstr "Publish to..." + +# classic.tmpl 55 +# pad.tmpl 50 +msgid "Font" +msgstr "Font" + +# read.tmpl 105 +msgid "from" +msgstr "from" + +# read.tmpl 105 +msgid "Anonymous" +msgstr "Anonymous" + +# read.tmpl 120 +msgid "Older" +msgstr "Older" + +# read.tmpl 121 +msgid "Newer" +msgstr "Newer" + +# password-collection.tmpl 31 +msgid "Menu" +msgstr "Menu" + +# password-collection.tmpl 51 +msgid "This blog requires a password." +msgstr "This blog requires a password." + +# 404-general.tmpl 1 +msgid "Page not found" +msgstr "Page not found" + +# 404-general.tmpl 4 +msgid "This page is missing." +msgstr "This page is missing." + +# 404-general.tmpl 5 +msgid "Are you sure it was ever here?" +msgstr "Are you sure it was ever here?" + +#404.tmpl 1,4 +msgid "Post not found" +msgstr "Post not found" + +#404.tmpl +msgid "Why not share a thought of your own?" +msgstr "Why not share a thought of your own?" + +# 404.tmpl +msgid "Start a blog" +msgstr "Start a blog" + +#404.tmpl +msgid "%s and spread your ideas on **%s**, %s." +msgstr "%s and spread your ideas on **%s**, %s." + +# 404.tmpl +msgid "a simple blogging community" +msgstr "a simple blogging community" + +# 404.tmpl +msgid "a simple, federated blogging community" +msgstr "a simple, federated blogging community" + +# 410.tmpl 1 +msgid "Unpublished" +msgst "Unpublished" + +# 410.tmpl 4 +msgid "Post was unpublished by the author." +msgstr "Post was unpublished by the author." + +# 410.tmpl 5 +msgid "It might be back some day." +msgstr "It might be back some day." diff --git a/locales/en_UK/LC_MESSAGES/base.mo b/locales/en_UK/LC_MESSAGES/base.mo new file mode 100644 index 0000000..45475d0 Binary files /dev/null and b/locales/en_UK/LC_MESSAGES/base.mo differ diff --git a/locales/en_UK/LC_MESSAGES/base.po b/locales/en_UK/LC_MESSAGES/base.po new file mode 100644 index 0000000..e34afb3 --- /dev/null +++ b/locales/en_UK/LC_MESSAGES/base.po @@ -0,0 +1,1581 @@ +msgid "" +msgstr "" +"Project-Id-Version: GOtext\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Aitzol Berasategi \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en\n" +"X-Generator: Poedit 2.4.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +# base.tmpl 40 +# header.tmpl 49 +# pages.tmpl 21 +msgid "Home" +msgstr "Home" + +# base.tmpl 42 +# header.tmpl 51 +# footer.tmpl 8,26 +# user/include/footer.tmpl 11 +msgid "About" +msgstr "About" + +# base.tmpl 49 +# header.tmpl 58,65 +# footer.tmpl 9,27 +# user/include/footer.tmpl 12 +# app-settings.tmpl 108 +# pages.tmpl 24 +msgid "Reader" +msgstr "Reader" + +# login.tmpl 21 +# password-collection.tmpl 33 +# base.tmpl 51 +# header.tmpl 60 +msgid "Log in" +msgstr "Log in" + +# classic.tmpl 48 +# collection.tmpl 63,74 +# pad.tmpl 43 +# base.tmpl 33,51 +# header.tmpl 14,41,60 +msgid "Log out" +msgstr "Log out" + +# base.tmpl 45 +# export.tmpl 19 +# collections.tmpl 13 +# user/collection.tmpl 105 +# admin.tmpl 59 +# nav.tmpl 2 +# header.tmpl 54,63 +# view-user 106 +msgid "Blog" +msgid_plural "Blogs" +msgstr[0] "Blog" +msgstr[1] "Blogs" + +# bare.tmpl 33 +# export.tmpl 19 +# admin.tmpl 60 +# view-user 132 +msgid "Post" +msgid_plural "Posts" +msgstr[0] "Post" +msgstr[1] "Posts" + +# bare.tmpl 26 +# header.tmpl 55 +msgid "My Posts" +msgstr "My Posts" + +# classic.tmpl 38 +# edit-meta.tmpl 43 +# pad.tmpl 26,27,33 +# post.tmpl 47 +# base.tmpl 47 +# bare.tmpl 26 +# stats.tmpl 55 +# import.tmpl 41 +# articles.tmpl 25 +# header.tmpl 21,56,64 +# posts.tmpl 23,30,50,57 +msgid "Draft" +msgid_plural "Drafts" +msgstr[0] "Draft" +msgstr[1] "Drafts" + +# login.tmpl 27 +# base.tmpl 50 +# header.tmpl 59 +msgid "Sign up" +msgstr "Sign up" + +# classic.tmpl 5 +# collection.tmpl 53 +# pad.tmpl 5 +# base.tmpl 55 +# nav.tmpl 9 +# header.tmpl 25,71 +msgid "New Post" +msgstr "New Post" + +# header.tmpl 29 +msgid "Return to editor" +msgstr "Return to editor" + +# footer.tmpl 10,14,34 +# user/include/footer.tmpl 13 +msgid "writer's guide" +msgstr "writer's guide" + +# footer.tmpl 15,35 +msgid "developers" +msgstr "developers" + +# footer.tmpl 11,28 +# user/include/footer.tmpl 14 +msgid "privacy" +msgstr "privacy" + +# footer.tmpl 16,36 +msgid "source code" +msgstr "source code" + +# base.tmpl 28 +# header.tmpl 9,35 +msgid "Admin dashboard" +msgstr "Admin dashboard" + +# base.tmpl 29 +# header.tmpl 10,36 +msgid "Account settings" +msgstr "Account settings" + +# import.tmpl 17 +# header.tmpl 11,37 +msgid "Import posts" +msgstr "Import posts" + +# base.tmpl 30 +# export.tmpl 5,10 +# header.tmpl 12,38 +msgid "Export" +msgstr "Export" + +# header.tmpl 103 +msgid "Dashboard" +msgstr "Dashboard" + +# header.tmpl 104 +msgid "Settings" +msgstr "Settings" + +# export.tmpl 19 +# admin.tmpl 58 +# header.tmpl 106 +# view-user.tmpl 59 +# users.tmpl 15,21,30 +msgid "User" +msgid_plural "Users" +msgstr[0] "User" +msgstr[1] "Users" + +# header.tmpl 107 +# pages.tmpl 13, 17 +msgid "Page" +msgid_plural "Pages" +msgstr[0] "Page" +msgstr[1] "Pages" + +# post.tmpl 41 +# posts.tmpl 11,43,64,66 +# view-user 128 +msgid "View" +msgid_plural "Views" +msgstr[0] "View" +msgstr[1] "Views" + +# posts.tmpl 11,43,64,66 +# view-user 128 +# edit-meta.tmpl 49,55 +# pad.tmpl 63 +msgid "View post" +msgid_plural "View posts" +msgstr[0] "View post" +msgstr[1] "View posts" + +# classic.tmpl 41,45 +# collection.tmpl 57 +# header.tmpl 7 +# edit-meta.tmpl 41 +# pad.tmpl 24,36,40 +# nav.tmpl 12 +msgid "View Blog" +msgid_plural "View Blogs" +msgstr[0] "View Blog" +msgstr[1] "View Blogs" + +# classic.tmpl 62 +# pad.tmpl 124 +msgid "word" +msgid_plural "words" +msgstr[0] "word" +msgstr[1] "words" + +# pad.tmpl 64 +msgid "Publish" +msgstr "Publish" + +# pad.tmpl 20 +# bare.tmpl 20 +msgid "This post has been updated elsewhere since you last published!" +msgstr "This post has been updated elsewhere since you last published!" + +# pad.tmpl 20 +# bare.tmpl 20 +msgid "Delete draft and reload" +msgstr "Delete draft and reload" + +msgid "Updates" +msgstr "Updates" + +# classic.tmpl 42 +# pad.tmpl 37 +# user/collection.tmpl 32 +# collection.tmpl 54 +# nav.tmpl 10 +# header.tmpl 19 +msgid "Customize" +msgstr "Customize" + +# classic.tmpl 43 +# collection.tmpl 55 +# pad.tmpl 38 +# stats.tmpl 26 +# nav.tmpl 11 +# header.tmpl 20 +msgid "Stats" +msgstr "Stats" + +# classic.tmpl 47 +# collection.tmpl 58 +# pad.tmpl 42 +msgid "View Draft" +msgid_plural "View Drafts" +msgstr[0] "View Draft" +msgstr[1] "View Drafts" + +# header.tmpl 111 +msgid "Monitor" +msgstr "Monitor" + +# read.tmpl 108,110 +msgid "Read more..." +msgstr "Read more..." + +# silenced.tmpl 3 +msgid "Your account has been silenced." +msgstr "Your account has been silenced." + +# silenced.tmpl 3 +msgid "You can still access all of your posts and blogs, but no one else can currently see them." +msgstr "You can still access all of your posts and blogs, but no one else can currently see them." + +# articles.tmpl 28 +msgid "These are your draft posts. You can share them individually (without a blog) or move them to your blog when you're ready." +msgstr "These are your draft posts. You can share them individually (without a blog) or move them to your blog when you're ready." + +# articles.tmpl 57 +msgid "Your anonymous and draft posts will show up here once you've published some. You'll be able to share them individually (without a blog) or move them to a blog when you're ready." +msgstr "Your anonymous and draft posts will show up here once you've published some. You'll be able to share them individually (without a blog) or move them to a blog when you're ready." + +# articles.tmpl 58 +msgid "Alternatively, see your blogs and their posts on your %s page." +msgstr "Alternatively, see your blogs and their posts on your %s page." + +# articles.tmpl 60 +msgid "Start writing" +msgstr "Start writing" + +# articles.tmpl 64 +# static/js/postactions.jsmsgid "unsynced posts" +msgstr "unsynced posts" + +# articles.tmpl 64 +# collection.tmpl 43 +# view-page.tmpl 51 +# view-user 116 +msgid "Title" +msgstr "Title" + +# user/collection.tmpl 44 +# view-user 120 +msgid "Description" +msgstr "Description" + +# user/collection.tmpl 50 +msgid "This blog uses your username in its URL." +msgstr "This blog uses your username in its URL." + +# user/collection.tmpl 50 +msgid "This blog uses your username in its URL and fediverse handle." +msgstr "This blog uses your username in its URL and fediverse handle." + +# user/collection.tmpl 50 +msgid "You can change it in your %s." +msgstr "You can change it in your %s." + +# user/collection.tmpl 63 +msgid "Publicity" +msgstr "Publicity" + +# user/collection.tmpl 68 +# app-settings.tmpl 120 +msgid "Unlisted" +msgstr "Unlisted" + +# user/collection.tmpl 87 +# app-settings.tmpl 121 +msgid "Public" +msgstr "Public" + +# user/collection.tmpl 74 +# app-settings.tmpl 122 +msgid "Private" +msgstr "Private" + +# user/collection.tmpl 70 +msgid "This blog is visible to any registered user on this instance." +msgstr "This blog is visible to any registered user on this instance." + +# user/collection.tmpl 70 +msgid "This blog is visible to anyone with its link." +msgstr "This blog is visible to anyone with its link." + +# user/collection.tmpl 76 +msgid "Only you may read this blog (while you're logged in)." +msgstr "Only you may read this blog (while you're logged in)." + +# user/collection.tmpl 80 +msgid "Password-protected:" +msgstr "Password-protected:" + +# user/collection.tmpl 80 +msgid "a memorable password" +msgstr "a memorable password" + +# user/collection.tmpl 82 +msgid "A password is required to read this blog." +msgstr "A password is required to read this blog." + +# user/collection.tmpl 89 +msgid "This blog is displayed on the public %s, and is visible to anyone with its link." +msgstr "This blog is displayed on the public %s, and is visible to anyone with its link." + +# user/collection.tmpl 89 +msgid "This blog is displayed on the public %s, and is visible to any registered user on this instance." +msgstr "This blog is displayed on the public %s, and is visible to any registered user on this instance." + +# user/collection.tmpl 90 +msgid "The public reader is currently turned off for this community." +msgstr "The public reader is currently turned off for this community." + +# user/collection.tmpl 98 +msgid "Display Format" +msgstr "Display Format" + +# user/collection.tmpl 100 +msgid "Customize how your posts display on your page." +msgstr "Customize how your posts display on your page." + +# user/collection.tmpl 107 +msgid "Dates are shown. Latest posts listed first." +msgstr "Dates are shown. Latest posts listed first." + +# user/collection.tmpl 113 +msgid "No dates shown. Oldest posts first." +msgstr "No dates shown. Oldest posts first." + +# user/collection.tmpl 119 +msgid "No dates shown. Latest posts first." +msgstr "No dates shown. Latest posts first." + +# user/collection.tmpl 126 +msgid "Text Rendering" +msgstr "Text Rendering" + +# user/collection.tmpl 128 +msgid "Customize how plain text renders on your blog." +msgstr "Customize how plain text renders on your blog." + +# user/collection.tmpl 145 +msgid "Custom CSS" +msgstr "Custom CSS" + +# user/collection.tmpl 148 +msgid "customization" +msgstr "customization" + +# user/collection.tmpl 148 +msgid "See our guide on %s." +msgstr "See our guide on %s." + +# user/collection.tmpl 153 +msgid "Post Signature" +msgstr "Post Signature" + +# user/collection.tmpl 155 +msgid "This content will be added to the end of every post on this blog, as if it were part of the post itself. Markdown, HTML, and shortcodes are allowed." +msgstr "This content will be added to the end of every post on this blog, as if it were part of the post itself. Markdown, HTML, and shortcodes are allowed." + +# user/collection.tmpl 162 +msgid "Web Monetization" +msgstr "Web Monetization" + +# user/collection.tmpl 164 +msgid "Web Monetization enables you to receive micropayments from readers that have a %s. Add your payment pointer to enable Web Monetization on your blog." +msgstr "Web Monetization enables you to receive micropayments from readers that have a %s. Add your payment pointer to enable Web Monetization on your blog." + +# user/collection.tmpl 164 +msgid "Coil membership" +msgstr "Coil membership" + +# edit-meta.tmpl 263 +# settings.tmpl 81 +# user/collection.tmpl 171 +msgid "Save changes" +msgstr "Save changes" + +# user/collection.tmpl 173 +msgid "Delete Blog..." +msgstr "Delete Blog..." + +# user/collection.tmpl 190,220 +# articles.tmpl 36 +# posts.tmpl 19,46 +msgid "Delete" +msgstr "Delete" + +# settings.tmpl 187 +# user/collection.tmpl 189 +# view-user 173 +msgid "Cancel" +msgstr "Cancel" + +# user/collection.tmpl 180 +msgid "Are you sure you want to delete this blog?" +msgstr "Are you sure you want to delete this blog?" + +# posts.js 46,147 +# collection.tmpl 148 +# collection-tags.tmpl 96 +# chorus-collection.tmpl 132 +msgid "Are you sure you want to delete this post?" +msgstr "Are you sure you want to delete this post?" + +# posts.js 302 +# collection.tmpl 175,226 +# collection-tags.tmpl 123,174 +# chorus-collection.tmpl 159,210 +msgid "Post is synced to another account. Delete the post from that account instead." +msgstr "Post is synced to another account. Delete the post from that account instead." + +# posts.js 308 +# collection.tmpl 181 +# collection-tags.tmpl 129 +# chorus-collection.tmpl 165 +msgid "Failed to delete." +msgstr "Failed to delete." + +# posts.js 308 +# collection.tmpl 181 +# collection-tags.tmpl 129 +# chorus-collection.tmpl 165 +msgid "Please try again." +msgstr "Please try again." + +# user/collection.tmpl 182 +msgid "This will permanently erase **%s** (%s/%s) from the internet. Any posts on this blog will be saved and made into drafts (found on your %s page)." +msgstr "This will permanently erase **%s** (%s/%s) from the internet. Any posts on this blog will be saved and made into drafts (found on your %s page)." + +# user/collection.tmpl 183 +msgid "If you're sure you want to delete this blog, enter its name in the box below and press **%s**." +msgstr "If you're sure you want to delete this blog, enter its name in the box below and press **%s**." + +# user/collection.tmpl 202 +msgid "Enter **%s** in the box below." +msgstr "Enter **%s** in the box below." + +# user/collection.tmpl 238 +msgid "Saving changes..." +msgstr "Saving changes..." + +# collections.tmpl 72,75,84 +msgid "This name is taken." +msgstr "This name is taken." + +# pad.tmpl 61 +msgid "Edit post metadata" +msgstr "Edit post metadata" + +# edit-meta.tmpl 5,55 +msgid "Edit metadata" +msgstr "Edit metadata" + +# edit-meta.tmpl 260 +msgid "now" +msgstr "now" + +# edit-meta.tmpl 63 +msgid "Slug" +msgstr "Slug" + +# edit-meta.tmpl 66 +msgid "Language" +msgstr "Language" + +# edit-meta.tmpl 256 +msgid "Direction" +msgstr "Direction" + +# edit-meta.tmpl 258 +msgid "Created" +msgstr "Created" + +# edit-meta.tmpl 257 +msgid "right-to-left" +msgstr "right-to-left" + +# edit-meta.tmpl 47 +msgid "Edit post" +msgstr "Edit post" + +# edit-meta.tmpl 48 +# pad.tmpl 62 +msgid "Toggle theme" +msgstr "Toggle theme" + +# collection-post.tmpl 66 +# posts.tmpl 8 +msgid "Scheduled" +msgstr "Scheduled" + +# collection-post.tmpl 57 +# post.tmpl 45,91 +# articles.tmpl 35 +# posts.tmpl 17,44 +msgid "Edit" +msgstr "Edit" + +# posts.tmpl 18,45 +msgid "Pin" +msgstr "Pin" + +# collection-post.tmpl 58 +msgid "Unpin" +msgstr "Unpin" + +# posts.tmpl 21,48 +msgid "Move this post to another blog" +msgstr "Move this post to another blog" + +# posts.tmpl 30,57 +msgid "Change to a draft" +msgstr "Change to a draft" + +# posts.tmpl 30,57 +msgid "change to _%s_" +msgstr "change to _%s_" + +# articles.tmpl 43,78 +# posts.tmpl 26,53 +msgid "move to..." +msgstr "move to..." + +# articles.tmpl 47,83 +msgid "move to %s" +msgstr "move to %s" + +# post.tmpl 42 +msgid "View raw" +msgstr "View raw" + +# articles.tmpl 47,83 +msgid "Publish this post to your blog %s" +msgstr "Publish this post to your blog %s" + +# articles.tmpl 39,74 +msgid "Move this post to one of your blogs" +msgstr "Move this post to one of your blogs" + +# articles.tmpl 55 +msgid "Load more..." +msgstr "Load more..." + +# stats.tmpl 32 +msgid "Stats for all time." +msgstr "Stats for all time." + +# stats.tmpl 35 +msgid "Fediverse stats" +msgstr "Fediverse stats" + +# stats.tmpl 38 +msgid "Followers" +msgstr "Followers" + +# stats.tmpl 46 +msgid "Top %d post" +msgid_plural "Top %d posts" +msgstr[0] "Top %d post" +msgstr[1] "Top %d posts" + +# stats.tmpl 51 +msgid "Total Views" +msgstr "Total Views" + +# settings.tmpl 27 +msgid "Before you go..." +msgstr "Before you go..." + +# settings.tmpl 27 +msgid "Account Settings" +msgstr "Account Settings" + +# settings.tmpl 38 +msgid "Change your account settings here." +msgstr "Change your account settings here." + +# signup.tmpl 80 +# signup-oauth.tmpl 85,87 +# login.tmpl 21 +# landing.tmpl 92 +# settings.tmpl 43 +# view-user.tmpl 62 +msgid "Username" +msgstr "Username" + +# settings.tmpl 46 +msgid "Update" +msgstr "Update" + +# settings.tmpl 56 +msgid "Passphrase" +msgstr "Passphrase" + +# settings.tmpl 58 +msgid "Add a passphrase to easily log in to your account." +msgstr "Add a passphrase to easily log in to your account." + +# settings.tmpl 59,60 +msgid "Current passphrase" +msgstr "Current passphrase" + +# settings.tmpl 61,64 +msgid "New passphrase" +msgstr "New passphrase" + +# settings.tmpl 60,64 +msgid "Show" +msgstr "Show" + +msgid "Account updated." +msgstr "Account updated." + +# signup.tmpl 91 +# signup-oauth.tmpl 92,94 +# landing.tmpl 103 +# settings.tmpl 69 +msgid "Email" +msgstr "Email" + +# settings.tmpl 76 +msgid "Email address" +msgstr "Email address" + +# settings.tmpl 71 +msgid "Add your email to get:" +msgstr "Add your email to get:" + +# settings.tmpl 34 +msgid "Please add an **%s** and/or **%s** so you can log in again later." +msgstr "Please add an **%s** and/or **%s** so you can log in again later." + +# settings.tmpl 73 +msgid "No-passphrase login" +msgstr "No-passphrase login" + +# settings.tmpl 74 +msgid "Account recovery if you forget your passphrase" +msgstr "Account recovery if you forget your passphrase" + +# settings.tmpl 89 +msgid "Linked Accounts" +msgstr "Linked Accounts" + +# settings.tmpl 90 +msgid "These are your linked external accounts." +msgstr "These are your linked external accounts." + +# settings.tmpl 114 +msgid "Link External Accounts" +msgstr "Link External Accounts" + +msgid "Connect additional accounts to enable logging in with those providers, instead of using your username and password." +msgstr "Connect additional accounts to enable logging in with those providers, instead of using your username and password." + +# settings.tmpl 162 +# view-user 149 +msgid "Incinerator" +msgstr "Incinerator" + +# settings.tmpl 166,169,188 +msgid "Delete your account" +msgstr "Delete your account" + +# settings.tmpl 167 +msgid "Permanently erase all your data, with no way to recover it." +msgstr "Permanently erase all your data, with no way to recover it." + +# settings.tmpl 176 +# view-user 163 +msgid "Are you sure?" +msgstr "Are you sure?" + +# settings.tmpl 178 +msgid "export your data" +msgstr "export your data" + +# settings.tmpl 178 +msgid "This action **cannot** be undone. It will immediately and permanently erase your account, including your blogs and posts. Before continuing, you might want to %s." +msgstr "This action **cannot** be undone. It will immediately and permanently erase your account, including your blogs and posts. Before continuing, you might want to %s." + +# settings.tmpl 179 +msgid "If you're sure, please type **%s** to confirm." +msgstr "If you're sure, please type **%s** to confirm." + +# invite-help.tmpl 13 +msgid "Invite to %s" +msgstr "Invite to %s" + +# invite-help.tmpl 15 +msgid "This invite link is expired." +msgstr "This invite link is expired." + +# invite-help.tmpl 21 +msgid "Only **one** user" +msgstr "Only **one** user" + +# invite-help.tmpl 21 +msgid "Up to **%d** users" +msgstr "Up to **%d** users" + +# invite-help.tmpl 21 +msgid "can sign up with this link." +msgstr "can sign up with this link." + +# invite-help.tmpl 23 +msgid "It expires on **%s**." +msgstr "It expires on **%s**." + +# invite-help.tmpl 25 +msgid "It can be used as many times as you like" +msgstr "It can be used as many times as you like" + +# invite-help 25 +msgid "before **%s**, when it expires" +msgstr "before **%s**, when it expires" + +msgid "person has" +msgid_plural "person have" +msgstr[0] "person has" +msgstr[1] "person have" + +# invite-help.tmpl 21 +msgid "So far, **%d** %s used it." +msgstr "So far, **%d** %s used it." + +# invite-help.tmpl 17 +msgid "Copy the link below and send it to anyone that you want to join *%s*. You could paste it into an email, instant message, text message, or write it down on paper. Anyone who navigates to this special page will be able to create an account." +msgstr "Copy the link below and send it to anyone that you want to join *%s*. You could paste it into an email, instant message, text message, or write it down on paper. Anyone who navigates to this special page will be able to create an account." + +# IMPORT PAGE +# import.tmpl 28 +msgid "Publish plain text or Markdown files to your account by uploading them below." +msgstr "Publish plain text or Markdown files to your account by uploading them below." + +# import.tmpl 31 +msgid "Select some files to import:" +msgstr "Select some files to import:" + +# import.tmpl 36 +msgid "Import these posts to:" +msgstr "Import these posts to:" + +# import.tmpl 59 +msgid "Import" +msgstr "Import" + +msgid "Import complete, %d post imported." +msgid_plural "Import complete, %d posts imported." +msgstr[0] "Import complete, %d post imported." +msgstr[1] "Import complete, %d posts imported." + +msgid "%d of %d posts imported, see details below." +msgid_plural "%d of %d posts imported, see details below." +msgstr[0] "%d of %d posts imported, see details below." +msgstr[1] "%d of %d posts imported, see details below." + +msgid "%s is not a supported post file" +msgstr "%s is not a supported post file" + +# export.tmpl 6 +msgid "Your data on %s is always free. Download and back-up your work any time." +msgstr "Your data on %s is always free. Download and back-up your work any time." + +# export.tmpl 11 +msgid "Format" +msgstr "Format" + +# header.tmpl 101 +msgid "Admin" +msgstr "Admin" + +# app-settings.tmpl 37 +msgid "Site Title" +msgstr "Site Title" + +# app-settings.tmpl 38 +msgid "Your public site name." +msgstr "Your public site name." + +# app-settings.tmpl 44 +msgid "Site Description" +msgstr "Site Description" + +# app-settings.tmpl 45 +msgid "Describe your site — this shows in your site's metadata." +msgstr "Describe your site — this shows in your site's metadata." + +# app-settings.tmpl 51 +msgid "Host" +msgstr "Host" + +# app-settings.tmpl 52 +msgid "The public address where users will access your site, starting with `http://` or `https://`." +msgstr "The public address where users will access your site, starting with `http://` or `https://`." + +# app-settings.tmpl 58 +msgid "Community Mode" +msgstr "Community Mode" + +# app-settings.tmpl 59 +msgid "Whether your site is made for one person or many." +msgstr "Whether your site is made for one person or many." + +# app-settings.tmpl 61 +msgid "Single user" +msgstr "Single user" + +# app-settings.tmpl 61 +msgid "Multiple users" +msgstr "Multiple users" + +# app-settings.tmpl 65 +msgid "Landing Page" +msgstr "Landing Page" + +# app-settings.tmpl 66 +msgid "The page that logged-out visitors will see first. This should be an absolute path like: `/read`." +msgstr "The page that logged-out visitors will see first. This should be an absolute path like: `/read`." + +# app-settings.tmpl 72 +msgid "Open Registrations" +msgstr "Open Registrations" + +# app-settings.tmpl 73 +msgid "Allow anyone who visits the site to create an account." +msgstr "Allow anyone who visits the site to create an account." + +# app-settings.tmpl 80 +msgid "Allow account deletion" +msgstr "Allow account deletion" + +# app-settings.tmpl 81 +msgid "Allow all users to delete their account. Admins can always delete users." +msgstr "Allow all users to delete their account. Admins can always delete users." + +# app-settings.tmpl 88 +msgid "Allow invitations from..." +msgstr "Allow invitations from..." + +# app-settings.tmpl 89 +msgid "Choose who is allowed to invite new people." +msgstr "Choose who is allowed to invite new people." + +# app-settings.tmpl 93 +msgid "No one" +msgstr "No one" + +# app-settings.tmpl 94 +msgid "Only Admins" +msgstr "Only Admins" + +# app-settings.tmpl 95 +msgid "All Users" +msgstr "All Users" + +# app-settings.tmpl 101 +msgid "Private Instance" +msgstr "Private Instance" + +# app-settings.tmpl 102 +msgid "Limit site access to people with an account." +msgstr "Limit site access to people with an account." + +# app-settings.tmpl 109 +msgid "Show a feed of user posts for anyone who chooses to share there." +msgstr "Show a feed of user posts for anyone who chooses to share there." + +# app-settings.tmpl 115 +msgid "Default blog visibility" +msgstr "Default blog visibility" + +# app-settings.tmpl 116 +msgid "The default setting for new accounts and blogs." +msgstr "The default setting for new accounts and blogs." + +# app-settings.tmpl 128 +msgid "Maximum Blogs per User" +msgstr "Maximum Blogs per User" + +# app-settings.tmpl 129 +msgid "Keep things simple by setting this to **1**, unlimited by setting to **0**, or pick another amount." +msgstr "Keep things simple by setting this to **1**, unlimited by setting to **0**, or pick another amount." + +# app-settings.tmpl 135 +msgid "Federation" +msgstr "Federation" + +# app-settings.tmpl 136 +msgid "Enable accounts on this site to propagate their posts via the ActivityPub protocol." +msgstr "Enable accounts on this site to propagate their posts via the ActivityPub protocol." + +# app-settings.tmpl 142 +msgid "Public Stats" +msgstr "Public Stats" + +# app-settings.tmpl 143 +msgid "Publicly display the number of users and posts on your **%s** page." +msgstr "Publicly display the number of users and posts on your **%s** page." + +# app-settings.tmpl 149 +msgid "Monetization" +msgstr "Monetization" + +# app-settings.tmpl 150 +msgid "Enable blogs on this site to receive micropayments from readers via %s." +msgstr "Enable blogs on this site to receive micropayments from readers via %s." + +# app-settings.tmpl 156 +msgid "Minimum Username Length" +msgstr "Minimum Username Length" + +# app-settings.tmpl 157 +msgid "The minimum number of characters allowed in a username. (Recommended: 2 or more.)" +msgstr "The minimum number of characters allowed in a username. (Recommended: 2 or more.)" + +# app-settings.tmpl 162 +msgid "Save Settings" +msgstr "Save Settings" + +# app-settings.tmpl 166 +msgid "configuration docs" +msgstr "configuration docs" + +# app-settings.tmpl 166 +msgid "Still have questions? Read more details in the %s." +msgstr "Still have questions? Read more details in the %s." + +msgid "Configuration saved." +msgstr "Configuration saved." + +# view-user.tmpl 66 +# users.tmpl 22 +msgid "joined" +msgstr "joined" + +# users.tmpl 23 +msgid "type" +msgstr "type" + +# users.tmpl 24 +# view-user.tmpl 79 +msgid "status" +msgstr "status" + +# base.tmpl 31 +# header.tmpl 39 +# invite.tmpl 26 +# users.tmpl 16 +msgid "Invite people" +msgstr "Invite people" + +# invite.tmpl 27 +msgid "Invite others to join *%s* by generating and sharing invite links below." +msgstr "Invite others to join *%s* by generating and sharing invite links below." + +# invite.tmpl 31 +msgid "Maximum number of uses:" +msgstr "Maximum number of uses:" + +# invite.tmpl 33 +msgid "No limit" +msgstr "No limit" + +# invite.tmpl 34,35,36,37,38,39,64 +msgid "use" +msgid_plural "uses" +msgstr[0] "use" +msgstr[1] "uses" + +# invite.tmpl 43 +msgid "Expire after:" +msgstr "Expire after:" + +# invite.tmpl 46 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minute" +msgstr[1] "minutes" + +# invite.tmpl 47,48,49 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hour" +msgstr[1] "hours" + +# invite.tmpl 50,51 +msgid "day" +msgid_plural "days" +msgstr[0] "day" +msgstr[1] "days" + +# invite.tmpl 52 +msgid "week" +msgid_plural "weeks" +msgstr[0] "week" +msgstr[1] "weeks" + +# invite.tmpl 57 +msgid "You cannot generate invites while your account is silenced." +msgstr "You cannot generate invites while your account is silenced." + +# invite.tmpl 57 +msgid "Generate" +msgstr "Generate" + +# invite.tmpl 63 +msgid "Link" +msgstr "Link" + +# invite.tmpl 121,129,137,145,152 +msgid "ToLink" +msgstr "Link" + +# invite.tmpl 65 +msgid "Expires" +msgstr "Expires" + +# invite.tmpl 71 +msgid "Expired" +msgstr "Expired" + +# invite.tmpl 75 +msgid "No invites generated yet." +msgstr "No invites generated yet." + +# pages.tmpl 18 +msgid "last modified" +msgstr "last modified" + +# view-user.tmpl 85 +# users.tmpl 31 +msgid "Active" +msgstr "Active" + +# view-user.tmpl 82 +# users.tmpl 31 +msgid "Silenced" +msgstr "Silenced" + +# view-user.tmpl 83 +msgid "Unsilence" +msgstr "Unsilence" + +# view-user 86 +msgid "disabled" +msgstr "disabled" + +# view-user 86 +msgid "Silence" +msgstr "Silence" + +# view-user.tmpl 54 +msgid "No." +msgstr "No." + +# view-user.tmpl 70 +msgid "total posts" +msgstr "total posts" + +# view-user.tmpl 74,136 +msgid "last post" +msgstr "last post" + +# signup.tmpl 87 +# login.tmpl 22 +# landing.tmpl 99 +# view-user 92 +msgid "password" +msgstr "password" + +msgid "Change your password" +msgstr "Change your password" + +# view-user 100 +msgid "Go to reset password page" +msgstr "Go to reset password page" + +# view-user 141 +msgid "Fediverse followers" +msgstr "Fediverse followers" + +# view-user 124 +msgid "Visibility" +msgstr "Visibility" + +# view-user 112 +msgid "Alias" +msgstr "Alias" + +# view-user.tmpl 75,137 +msgid "Never" +msgstr "Never" + +# view-user 97 +msgid "Reset" +msgstr "Reset" + +# view-user 153,156,174 +msgid "Delete this user" +msgstr "Delete this user" + +# view-user 154 +msgid "Permanently erase all user data, with no way to recover it." +msgstr "Permanently erase all user data, with no way to recover it." + +# view-user 165 +msgid "This action **cannot**be undone. It will permanently erase all traces of this user, **%s**, including their account information, blogs, and posts." +msgstr "This action **cannot**be undone. It will permanently erase all traces of this user, **%s**, including their account information, blogs, and posts." + +# view-user 166 +msgid "Please type **%s** to confirm." +msgstr "Please type **%s** to confirm." + +# view-user 202 +msgid "Silence this user? They'll still be able to log in and access their posts, but no one else will be able to see them anymore. You can reverse this decision at any time." +msgstr "Silence this user? They'll still be able to log in and access their posts, but no one else will be able to see them anymore. You can reverse this decision at any time." + +# view-user 208 +msgid "Reset this user's password? This will generate a new temporary password that you'll need to share with them, and invalidate their old one." +msgstr "Reset this user's password? This will generate a new temporary password that you'll need to share with them, and invalidate their old one." + +# settings.tmpl 225 +# user/collection.tmpl 207 +# view-user.tmpl 198 +msgid "Deleting..." +msgstr "Deleting..." + +# view-user.tmpl 46 +msgid "This user's password has been reset to:" +msgstr "This user's password has been reset to:" + +# view-user.tmpl 48 +msgid "They can use this new password to log in to their account. **This will only be shown once**, so be sure to copy it and send it to them now." +msgstr "They can use this new password to log in to their account. **This will only be shown once**, so be sure to copy it and send it to them now." + +# view-user.tmpl 49 +msgid "Their email address is:" +msgstr "Their email address is:" + +# app-updates.tmlp 19 +msgid "Automated update check failed." +msgstr "Automated update check failed." + +# app-updates.tmlp 20, 24, 41 +msgid "Installed version: %s (%s)." +msgstr "Installed version: %s (%s)." + +# app-updates.tmlp 21, 42 +msgid "Learn about latest releases on the %s or %s." +msgstr "Learn about latest releases on the %s or %s." + +# app-updates.tmlp 23 +msgid "WriteFreely is **up to date**." +msgstr "WriteFreely is **up to date**." + +# app-updates.tmlp 27 +msgid "Get" +msgstr "Get" + +# app-updates.tmlp 27 +msgid "A new version of WriteFreely is available! **%s %s**" +msgstr "A new version of WriteFreely is available! **%s %s**" + +# app-updates.tmlp 28 +msgid "release notes" +msgstr "release notes" + +# app-updates.tmlp 29 +msgid "Read the %s for details on features, bug fixes, and notes on upgrading from your current version, **%s**." +msgstr "Read the %s for details on features, bug fixes, and notes on upgrading from your current version, **%s**." + +# app-updates.tmlp 31 +msgid "Check now" +msgstr "Check now" + +# app-updates.tmlp 31 +msgid "Last checked" +msgstr "Last checked" + +# app-updates.tmlp 40 +msgid "Automated update checks are disabled." +msgstr "Automated update checks are disabled." + +# ADMIN PAGES +# view-page.tmpl 45 +msgid "Banner" +msgstr "Banner" + +# view-page.tmpl 56 +msgid "Body" +msgstr "Body" + +# view-page.tmpl 33 +msgid "Outline your %s." +msgstr "Outline your %s." + +# view-page.tmpl 35,37 +msgid "Customize your %s page." +msgstr "Customize your %s page." + +# view-page.tmpl 31 +msgid "Describe what your instance is %s." +msgstr "Describe what your instance is %s." + +msgid "Accepts Markdown and HTML." +msgstr "Accepts Markdown and HTML." + +# view-page.tmpl 56 +msgid "Content" +msgstr "Content" + +# view-page.tmpl 63 +msgid "Save" +msgstr "Save" + +# view-page.tmpl 71 +msgid "Saving..." +msgstr "Saving..." + +# view-page.tmpl 48 +msgid "We suggest a header (e.g. `# Welcome`), optionally followed by a small bit of text. Accepts Markdown and HTML." +msgstr "We suggest a header (e.g. `# Welcome`), optionally followed by a small bit of text. Accepts Markdown and HTML." + +# login.tmpl 11 +msgid "Log in to %s" +msgstr "Log in to %s" + +# login.tmpl 32 +msgid "Logging in..." +msgstr "Logging in..." + +# login.tmpl 27 +msgid "_No account yet?_ %s to start a blog." +msgstr "_No account yet?_ %s to start a blog." + +msgid "Incorrect password." +msgstr "Incorrect password." + +msgid "This user never set a password. Perhaps try logging in via OAuth?" +msgstr "This user never set a password. Perhaps try logging in via OAuth?" + +msgid "This user never added a password or email address. Please contact us for help." +msgstr "This user never added a password or email address. Please contact us for help." + +msgid "You're doing that too much." +msgstr "You're doing that too much." + +msgid "Parameter `alias` required." +msgstr "Parameter `alias` required." + +msgid "A username is required." +msgstr "A username is required." + +msgid "Parameter `pass` required." +msgstr "Parameter `pass` required." + +msgid "A password is required." +msgstr "A password is required." + +msgid "Need a collection `alias` to read." +msgstr "Need a collection `alias` to read." + +msgid "Please supply a password." +msgstr "Please supply a password." + +msgid "Something went very wrong. The humans have been alerted." +msgstr "Something went very wrong. The humans have been alerted." + +msgid "Logging out failed. Try clearing cookies for this site, instead." +msgstr "Logging out failed. Try clearing cookies for this site, instead." + +# signup-oauth.tmpl 88 +# landing.tmpl 95,197 +msgid "your-username" +msgstr "your-username" + +# signup.tmpl 91 +# landing.tmpl 103 +msgid "optional" +msgstr "optional" + +# signup.tmpl 95 +# landing.tmpl 107 +msgid "Create blog" +msgstr "Create blog" + +# signup-oauth.tmpl 59 +msgid "Finish creating account" +msgstr "Finish creating account" + +# signup-oauth.tmpl 79 +msgid "Display Name" +msgstr "Display Name" + +# oauth.tmpl 26 +msgid "or" +msgstr "or" + +# oauth.tmpl 9,13,17,20 +msgid "Sign in with **%s**" +msgstr "Sign in with **%s**" + +# landing.tmpl 77 +msgid "Learn more..." +msgstr "Learn more..." + +# landing.tmpl 114 +msgid "Registration is currently closed." +msgstr "Registration is currently closed." + +# landing.tmpl 115 +msgid "another instance" +msgstr "another instance" + +# landing.tmpl 115 +msgid "You can always sign up on %s." +msgstr "You can always sign up on %s." + +msgid "# Start your blog" +msgstr "# Start your blog" + +msgid "# Start your blog in the fediverse" +msgstr "# Start your blog in the fediverse" + +msgid "" +"## Write More Socially\n" +"\n" +"WriteFreely can communicate with other federated platforms like _Mastodon_, so people can follow your blogs, bookmark their favorite posts, and boost them to their followers. Sign up above to create a blog and join the fediverse." +msgstr "" +"## Write More Socially\n" +"\n" +"WriteFreely can communicate with other federated platforms like _Mastodon_, so people can follow your blogs, bookmark their favorite posts, and boost them to their followers. Sign up above to create a blog and join the fediverse." + +msgid "About %s" +msgstr "About %s" + +msgid "_%s_ is a place for you to write and publish, powered by %s." +msgstr "_%s_ is a place for you to write and publish, powered by %s." + +msgid "_%s_ is an interconnected place for you to write and publish, powered by %s." +msgstr "_%s_ is an interconnected place for you to write and publish, powered by %s." + +msgid "_%s_ is home to %d articles across %d blogs." +msgstr "_%s_ is home to %d articles across %d blogs." + +msgid "" +"## About WriteFreely\n" +"\n" +"%s is a self-hosted, decentralized blogging platform for publishing beautiful, simple blogs.\n" +"\n" +"It lets you publish a single blog, or host a community of writers who can create multiple blogs under one account. You can also enable federation, which allows people in the fediverse to follow your blog, bookmark your posts, and share them with others." +msgstr "" +"## About WriteFreely\n" +"\n" +"%s is a self-hosted, decentralized blogging platform for publishing beautiful, simple blogs.\n" +"\n" +"It lets you publish a single blog, or host a community of writers who can create multiple blogs under one account. You can also enable federation, which allows people in the fediverse to follow your blog, bookmark your posts, and share them with others." + +msgid "Start an instance" +msgstr "Start an instance" + +msgid "Privacy Policy" +msgstr "Privacy Policy" + +# privacy.tmpl 6 +msgid "Last updated" +msgstr "Last updated" + +msgid "Read the latest posts form %s." +msgstr "Read the latest posts form %s." + +# : pages.go:98 +msgid "" +"%s, the software that powers this site, is built to enforce your right to privacy by default.\n" +"\n" +"It retains as little data about you as possible, not even requiring an email address to sign up. However, if you _do_ give us your email address, it is stored encrypted in our database.\n" +"\n" +"We salt and hash your account's password.We store log files, or data about what happens on our servers. We also use cookies to keep you logged in to your account.\n" +"\n" +"Beyond this, it's important that you trust whoever runs %s. Software can only do so much to protect you -- your level of privacy protections will ultimately fall on the humans that run this particular service." +msgstr "" +"%s, the software that powers this site, is built to enforce your right to privacy by default.\n" +"\n" +"It retains as little data about you as possible, not even requiring an email address to sign up. However, if you _do_ give us your email address, it is stored encrypted in our database.\n" +"\n" +"We salt and hash your account's password.We store log files, or data about what happens on our servers. We also use cookies to keep you logged in to your account.\n" +"\n" +"Beyond this, it's important that you trust whoever runs %s. Software can only do so much to protect you -- your level of privacy protections will ultimately fall on the humans that run this particular service." + +# static/js/postactions.js +msgid "Unpublished post" +msgstr "Unpublished post" + +msgid "Moved to %s" +msgstr "Moved to %s" + +msgid "move to" +msgstr "move to" + +msgid "moving to %s..." +msgstr "moving to %s..." + +msgid "unable to move" +msgstr "unable to move" + +msgid "View on %s" +msgstr "View on %s" + +# classic.tmpl 64 +# pad.tmpl 59 +# bare.tmpl 30 +msgid "NOTE" +msgstr "NOTE" + +# classic.tmpl 64 +# pad.tmpl 59 +# bare.tmpl 30 +msgid "for now, you'll need Javascript enabled to post." +msgstr "for now, you'll need Javascript enabled to post." + +# classic.tmpl 158 +# pad.tmpl 174 +msgid "Your account is silenced, so you can't publish or update posts." +msgstr "Your account is silenced, so you can't publish or update posts." + +# classic.tmpl 257 +# pad.tmpl 278 +msgid "Failed to post. Please try again." +msgstr "Failed to post. Please try again." + +# classic.tmpl 163 +# pad.tmpl 179 +# bare.tmpl 99 +msgid "You don't have permission to update this post." +msgstr "You don't have permission to update this post." + +# pad.tmpl 16 +msgid "Write..." +msgstr "Write..." + +# classic.tmpl 34 +# pad.tmpl 29 +msgid "Publish to..." +msgstr "Publish to..." + +# classic.tmpl 55 +# pad.tmpl 50 +msgid "Font" +msgstr "Font" + +# read.tmpl 105 +msgid "from" +msgstr "from" + +# read.tmpl 105 +msgid "Anonymous" +msgstr "Anonymous" + +# read.tmpl 120 +msgid "Older" +msgstr "Older" + +# read.tmpl 121 +msgid "Newer" +msgstr "Newer" + +# password-collection.tmpl 31 +msgid "Menu" +msgstr "Menu" + +# password-collection.tmpl 51 +msgid "This blog requires a password." +msgstr "This blog requires a password." + +# 404-general.tmpl 1 +msgid "Page not found" +msgstr "Page not found" + +# 404-general.tmpl 4 +msgid "This page is missing." +msgstr "This page is missing." + +# 404-general.tmpl 5 +msgid "Are you sure it was ever here?" +msgstr "Are you sure it was ever here?" + +#404.tmpl 1,4 +msgid "Post not found" +msgstr "Post not found" + +#404.tmpl +msgid "Why not share a thought of your own?" +msgstr "Why not share a thought of your own?" + +# 404.tmpl +msgid "Start a blog" +msgstr "Start a blog" + +#404.tmpl +msgid "%s and spread your ideas on **%s**, %s." +msgstr "%s and spread your ideas on **%s**, %s." + +# 404.tmpl +msgid "a simple blogging community" +msgstr "a simple blogging community" + +# 404.tmpl +msgid "a simple, federated blogging community" +msgstr "a simple, federated blogging community" + +# 410.tmpl 1 +msgid "Unpublished" +msgst "Unpublished" + +# 410.tmpl 4 +msgid "Post was unpublished by the author." +msgstr "Post was unpublished by the author." + +# 410.tmpl 5 +msgid "It might be back some day." +msgstr "It might be back some day." diff --git a/locales/eu_ES/LC_MESSAGES/base.mo b/locales/eu_ES/LC_MESSAGES/base.mo new file mode 100644 index 0000000..fa4c70d Binary files /dev/null and b/locales/eu_ES/LC_MESSAGES/base.mo differ diff --git a/locales/eu_ES/LC_MESSAGES/base.po b/locales/eu_ES/LC_MESSAGES/base.po new file mode 100644 index 0000000..6b6810c --- /dev/null +++ b/locales/eu_ES/LC_MESSAGES/base.po @@ -0,0 +1,1740 @@ +msgid "" +msgstr "" +"Project-Id-Version: GOtext\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Aitzol Berasategi \n" +"Language-Team: Euskara-Basque\n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +# base.tmpl 40 +# header.tmpl 49 +# pages.tmpl 21 +msgid "Home" +msgstr "Hasiera" + +# base.tmpl 42 +# header.tmpl 51 +# footer.tmpl 8,26 +# user/include/footer.tmpl 11 +msgid "About" +msgstr "Honi buruz" + +# base.tmpl 49 +# header.tmpl 58,65 +# footer.tmpl 9,27 +# user/include/footer.tmpl 12 +# app-settings.tmpl 108 +# pages.tmpl 24 +msgid "Reader" +msgstr "Irakurlea" + +# login.tmpl 21 +# password-collection.tmpl 33 +# base.tmpl 51 +# header.tmpl 60 +msgid "Log in" +msgstr "Saioa hasi" + +# classic.tmpl 48 +# collection.tmpl 63,74 +# pad.tmpl 43 +# base.tmpl 33,51 +# header.tmpl 14,41,60 +msgid "Log out" +msgstr "Saioa itxi" + +# base.tmpl 45 +# export.tmpl 19 +# collections.tmpl 13 +# user/collection.tmpl 105 +# admin.tmpl 59 +# nav.tmpl 2 +# header.tmpl 54,63 +# view-user 106 +msgid "Blog" +msgid_plural "Blogs" +msgstr[0] "Blog" +msgstr[1] "Blogak" + +# bare.tmpl 33 +# export.tmpl 19 +# admin.tmpl 60 +# view-user 132 +msgid "Post" +msgid_plural "Posts" +msgstr[0] "Post" +msgstr[1] "Postak" + +# bare.tmpl 26 +# header.tmpl 55 +msgid "My Posts" +msgstr "Nire postak" + +# classic.tmpl 38 +# edit-meta.tmpl 43 +# pad.tmpl 26,27,33 +# post.tmpl 47 +# base.tmpl 47 +# bare.tmpl 26 +# stats.tmpl 55 +# import.tmpl 41 +# articles.tmpl 25 +# header.tmpl 21,56,64 +# posts.tmpl 23,30,50,57 +msgid "Draft" +msgid_plural "Drafts" +msgstr[0] "Zirriborro" +msgstr[1] "Zirriborroak" + +# login.tmpl 27 +# base.tmpl 50 +# header.tmpl 59 +msgid "Sign up" +msgstr "Erregistratu" + +# classic.tmpl 5 +# collection.tmpl 53 +# pad.tmpl 5 +# base.tmpl 55 +# nav.tmpl 9 +# header.tmpl 25,71 +msgid "New Post" +msgstr "Post berria" + +# header.tmpl 29 +msgid "Return to editor" +msgstr "Itzuli editorera" + +# footer.tmpl 10,14,34 +# user/include/footer.tmpl 13 +msgid "writer's guide" +msgstr "idazlearen gida" + +# footer.tmpl 15,35 +msgid "developers" +msgstr "garatzaileak" + +# footer.tmpl 11,28 +# user/include/footer.tmpl 14 +msgid "privacy" +msgstr "pribatutasuna" + +# footer.tmpl 16,36 +msgid "source code" +msgstr "iturburu kodea" + +# header.tmpl 9,35 +msgid "Admin dashboard" +msgstr "Administrazio-panela" + +# header.tmpl 10,36 +msgid "Account settings" +msgstr "Kontuaren ezarpenak" + +# import.tmpl 17 +# header.tmpl 11,37 +msgid "Import posts" +msgstr "Postak inportatu" + +# base.tmpl 30 +# export.tmpl 5,10 +# header.tmpl 12,38 +msgid "Export" +msgstr "Exportatu" + +# header.tmpl 103 +msgid "Dashboard" +msgstr "Aginte-panela" + +# header.tmpl 104 +msgid "Settings" +msgstr "Ezarpenak" + +# export.tmpl 19 +# admin.tmpl 58 +# header.tmpl 106 +# view-user.tmpl 59 +# users.tmpl 15,21,30 +msgid "User" +msgid_plural "Users" +msgstr[0] "Erabiltzaile" +msgstr[1] "Erabiltzaileak" + +# header.tmpl 107 +# pages.tmpl 13, 17 +msgid "Page" +msgid_plural "Pages" +msgstr[0] "Orria" +msgstr[1] "Orriak" + +# post.tmpl 41 +# posts.tmpl 11,43,64,66 +# view-user 128 +msgid "View" +msgid_plural "Views" +msgstr[0] "Ikustaldi" +msgstr[1] "Ikustaldiak" + +# posts.tmpl 11,43,64,66 +# view-user 128 +# edit-meta.tmpl 49,55 +# pad.tmpl 63 +msgid "View post" +msgid_plural "View posts" +msgstr[0] "Posta ikusi" +msgstr[1] "Postak ikusi" + +# classic.tmpl 41,45 +# collection.tmpl 57 +# header.tmpl 7 +# edit-meta.tmpl 41 +# pad.tmpl 24,36,40 +# nav.tmpl 12 +msgid "View Blog" +msgid_plural "View Blogs" +msgstr[0] "Bloga Ikusi" +msgstr[1] "Blogak Ikusi" + +# classic.tmpl 62 +# pad.tmpl 124 +msgid "word" +msgid_plural "words" +msgstr[0] "hitz" +msgstr[1] "hitzak" + +# pad.tmpl 64 +msgid "Publish" +msgstr "Argitaratu" + +# pad.tmpl 20 +# bare.tmpl 20 +msgid "This post has been updated elsewhere since you last published!" +msgstr "Post hau beste nonbait eguneratua izan da argitaratuz geroztik!" + +# pad.tmpl 20 +# bare.tmpl 20 +msgid "Delete draft and reload" +msgstr "Zirriborroa ezabatu eta birkargatu" + +msgid "Updates" +msgstr "Eguneraketak" + +# classic.tmpl 42 +# pad.tmpl 37 +# user/collection.tmpl 32 +# collection.tmpl 54 +# nav.tmpl 10 +# header.tmpl 19 +msgid "Customize" +msgstr "Pertsonalizatu" + +# classic.tmpl 43 +# collection.tmpl 55 +# pad.tmpl 38 +# stats.tmpl 26 +# nav.tmpl 11 +# header.tmpl 20 +msgid "Stats" +msgstr "Estatistikak" + +# classic.tmpl 47 +# collection.tmpl 58 +# pad.tmpl 42 +msgid "View Draft" +msgid_plural "View Drafts" +msgstr[0] "Zirriborroa Ikusi" +msgstr[1] "Zirriborroak Ikusi" + +# header.tmpl 111 +#, fuzzy +msgid "Monitor" +msgstr "Monitor" + +# read.tmpl 108,110 +msgid "Read more..." +msgstr "Irakurri gehiago..." + +# silenced.tmpl 3 +msgid "Your account has been silenced." +msgstr "Zure kontua isilarazia izan da." + +# silenced.tmpl 3 +msgid "" +"You can still access all of your posts and blogs, but no one else can " +"currently see them." +msgstr "Oraindik zure blog eta postak ikus ditzakezu, baina ez beste inork." + +# articles.tmpl 28 +msgid "" +"These are your draft posts. You can share them individually (without a blog) " +"or move them to your blog when you're ready." +msgstr "" +"Hauek zure zirriborroak dira. Bakarka partekatu ahal izango dituzu (blogik " +"gabe), edo prest dituzunean blogera mugitu eta argitaratu." + +# articles.tmpl 57 +msgid "" +"Your anonymous and draft posts will show up here once you've published some. " +"You'll be able to share them individually (without a blog) or move them to a " +"blog when you're ready." +msgstr "" +"Zure zirriborro eta sarrera anonimoak hemen agertuko dira. Bakarka partekatu " +"ahal izango dituzu (blogik gabe), edo prest dituzunean blogera mugitu eta " +"argitaratu." + +# articles.tmpl 58 +msgid "Alternatively, see your blogs and their posts on your %s page." +msgstr "Bestela, blogak eta argitalpenak ikusi ditzakezu %s orrian." + +# articles.tmpl 60 +msgid "Start writing" +msgstr "Idazten hasi" + +# articles.tmpl 64 +# static/js/postactions.js +#, fuzzy +msgid "unsynced posts" +msgstr "argitaratu gabeko posta" + +# articles.tmpl 64 +# collection.tmpl 43 +# view-page.tmpl 51 +# view-user 116 +msgid "Title" +msgstr "Izenburua" + +# collection.tmpl 44 +# view-user 120 +msgid "Description" +msgstr "Deskribapena" + +# collection.tmpl 50 +msgid "This blog uses your username in its URL." +msgstr "Blog honek zure erabiltzaile izena darabil bere URL-an." + +# collection.tmpl 50 +msgid "This blog uses your username in its URL and fediverse handle." +msgstr "" +"Blog honek zure erabiltzaile izena darabil bere URL-an eta fedibertsoaren " +"kudeaketan." + +# collection.tmpl 50 +msgid "You can change it in your %s." +msgstr "Hori %s atalean alda dezakezu." + +# collection.tmpl 63 +msgid "Publicity" +msgstr "Publikotasuna" + +# collection.tmpl 68 +# app-settings.tmpl 120 +#, fuzzy +msgid "Unlisted" +msgstr "Irekia" + +# user/collection.tmpl 87 +# app-settings.tmpl 121 +msgid "Public" +msgstr "Publikoa" + +# user/collection.tmpl 74 +# app-settings.tmpl 122 +msgid "Private" +msgstr "Pribatua" + +# user/collection.tmpl 70 +msgid "This blog is visible to any registered user on this instance." +msgstr "" +"Blog hau instantzia honetan erregistraturiko edonorentzat dago ikusgai." + +# user/collection.tmpl 70 +msgid "This blog is visible to anyone with its link." +msgstr "Blog hau bere esteka duen edonorentzat dago ikusgai." + +# user/collection.tmpl 76 +msgid "Only you may read this blog (while you're logged in)." +msgstr "Zuk bakarrik irakur dezakezu blog hau (saioa hasita duzun bitartean)." + +# user/collection.tmpl 80 +msgid "Password-protected:" +msgstr "Pasahitzez-babestua:" + +# user/collection.tmpl 80 +msgid "a memorable password" +msgstr "pasahitz gogoangarri bat" + +# user/collection.tmpl 82 +msgid "A password is required to read this blog." +msgstr "Pasahitza behar da blog hau irakurtzeko." + +# user/collection.tmpl 89 +msgid "" +"This blog is displayed on the public %s, and is visible to anyone with its " +"link." +msgstr "" +"Blog hau %s atal publikoan bistaratzen da, eta esteka ezagutzen duen " +"edonorentzat dago ikusgai." + +# user/collection.tmpl 89 +msgid "" +"This blog is displayed on the public %s, and is visible to any registered " +"user on this instance." +msgstr "" +"Blog hau %s atal publikoan bistaratzen da, eta instantzia honetan " +"erregistraturiko edonorentzat dago ikusgai." + +# user/collection.tmpl 90 +msgid "The public reader is currently turned off for this community." +msgstr "" +"Irakurlea atal publikoa desgaituta dago une honetan komunitate honentzat." + +# user/collection.tmpl 98 +msgid "Display Format" +msgstr "Bistaratzea" + +# user/collection.tmpl 100 +msgid "Customize how your posts display on your page." +msgstr "Pertsonalizatu zure postak zure orrian bistaratzeko modua." + +# user/collection.tmpl 107 +msgid "Dates are shown. Latest posts listed first." +msgstr "Datak erakusten dira. Post berrienak zerrendan lehenak." + +# user/collection.tmpl 113 +msgid "No dates shown. Oldest posts first." +msgstr "Datarik ez da erakusten. Post zaharrenak zerrendan lehenak." + +# user/collection.tmpl 119 +msgid "No dates shown. Latest posts first." +msgstr "Datarik ez da erakusten. Post berrienak lehenak." + +# user/collection.tmpl 126 +msgid "Text Rendering" +msgstr "Testu Errendatzea" + +# user/collection.tmpl 128 +msgid "Customize how plain text renders on your blog." +msgstr "Pertsonalizatu testu-laua zure blogean errendatzeko modua." + +# user/collection.tmpl 145 +msgid "Custom CSS" +msgstr "CSS pertsonalizazioa" + +# user/collection.tmpl 148 +msgid "customization" +msgstr "pertsonalizazio" + +# user/collection.tmpl 148 +msgid "See our guide on %s." +msgstr "Ikusi gure %s gida." + +# user/collection.tmpl 153 +msgid "Post Signature" +msgstr "Post Sinadura" + +# user/collection.tmpl 155 +msgid "" +"This content will be added to the end of every post on this blog, as if it " +"were part of the post itself. Markdown, HTML, and shortcodes are allowed." +msgstr "" +"Eduki hau blog honetako post bakoitzaren amaieran gehituko da, postarena " +"balitz bezala. Markdown, HTML, eta azpikodeak onartzen dira." + +# user/collection.tmpl 162 +msgid "Web Monetization" +msgstr "Web Monetizazioa" + +# user/collection.tmpl 164 +msgid "" +"Web Monetization enables you to receive micropayments from readers that have " +"a %s. Add your payment pointer to enable Web Monetization on your blog." +msgstr "" +"Web Monetizazioak mikro-ordainketak jasotzeko aukera eskaintzen dizu %s " +"duten irakurleengandik. Gehitu zure ordainketa datuak Web Monetizazioa zure " +"blogean gaitzeko." + +# user/collection.tmpl 164 +msgid "Coil membership" +msgstr "Coil kontua" + +# edit-meta.tmpl 263 +# settings.tmpl 81 +# user/collection.tmpl 171 +msgid "Save changes" +msgstr "Gorde aldaketak" + +# user/collection.tmpl 173 +msgid "Delete Blog..." +msgstr "Bloga ezabatu..." + +# user/collection.tmpl 190,220 +# articles.tmpl 36 +# posts.tmpl 19,46 +msgid "Delete" +msgstr "Ezabatu" + +# settings.tmpl 187 +# user/collection.tmpl 189 +# view-user 173 +msgid "Cancel" +msgstr "Utzi" + +# user/collection.tmpl 180 +msgid "Are you sure you want to delete this blog?" +msgstr "Ziur al zaude blog hau ezabatu nahi duzula?" + +# posts.js 46,147 +# collection.tmpl 148 +# collection-tags.tmpl 96 +# chorus-collection.tmpl 132 +msgid "Are you sure you want to delete this post?" +msgstr "Ziur al zaude post hau ezabatu nahi duzula?" + +# posts.js 302 +# collection.tmpl 175,226 +# collection-tags.tmpl 123,174 +# chorus-collection.tmpl 159,210 +msgid "" +"Post is synced to another account. Delete the post from that account instead." +msgstr "" +"Posta beste kontu batekin sinkronizatzen da. Ezaba ezazu kontu horretako " +"posta." + +# posts.js 308 +# collection.tmpl 181 +# collection-tags.tmpl 129 +# chorus-collection.tmpl 165 +msgid "Failed to delete." +msgstr "Ezabatzeak huts egin du." + +# posts.js 308 +# collection.tmpl 181 +# collection-tags.tmpl 129 +# chorus-collection.tmpl 165 +msgid "Please try again." +msgstr "Saia zaitez berriro." + +# user/collection.tmpl 182 +msgid "" +"This will permanently erase **%s** (%s/%s) from the internet. Any posts on " +"this blog will be saved and made into drafts (found on your %s page)." +msgstr "" +"Honek **%s** (%s/%s) betirako ezabatuko du internetetik. Blog honetako post " +"guztiak %s orrira igaroko dira." + +# user/collection.tmpl 183 +msgid "" +"If you're sure you want to delete this blog, enter its name in the box below " +"and press **%s**." +msgstr "" +"Blog hau ezabatu nahi duzula ziur bazaude, sartu bere izena beheko eremuan " +"eta sakatu **%s**." + +# user/collection.tmpl 202 +msgid "Enter **%s** in the box below." +msgstr "Sartu **%s** beheko eremuan." + +# collection.tmpl 238 +msgid "Saving changes..." +msgstr "Aldaketak gordetzen..." + +# collections.tmpl 72,75,84 +msgid "This name is taken." +msgstr "Izen hori erabilita dago." + +# pad.tmpl 61 +msgid "Edit post metadata" +msgstr "Metadatuak editatu" + +# edit-meta.tmpl 5,55 +msgid "Edit metadata" +msgstr "Metadatuak editatu" + +# edit-meta.tmpl 260 +msgid "now" +msgstr "orain" + +# edit-meta.tmpl 63 +msgid "Slug" +msgstr "Sluga" + +# edit-meta.tmpl 66 +msgid "Language" +msgstr "Hizkuntza" + +# edit-meta.tmpl 256 +msgid "Direction" +msgstr "Norabidea" + +# edit-meta.tmpl 258 +msgid "Created" +msgstr "Sortze data" + +# edit-meta.tmpl 257 +msgid "right-to-left" +msgstr "eskuinetik-ezkerrera" + +# edit-meta.tmpl 47 +msgid "Edit post" +msgstr "Posta editatu" + +# edit-meta.tmpl 48 +# pad.tmpl 6 +msgid "Toggle theme" +msgstr "Gaia aldatu" + +# collection-post.tmpl 66 +# posts.tmpl 8 +msgid "Scheduled" +msgstr "Programatua" + +# collection-post.tmpl 57 +# post.tmpl 45,91 +# articles.tmpl 35 +# posts.tmpl 17,44 +msgid "Edit" +msgstr "Editatu" + +# posts.tmpl 18,45 +msgid "Pin" +msgstr "Finkatu" + +# collection-post.tmpl 58 +msgid "Unpin" +msgstr "Askatu" + +# posts.tmpl 21,48 +msgid "Move this post to another blog" +msgstr "Mugitu post hau beste blog batetara" + +# posts.tmpl 30,57 +msgid "Change to a draft" +msgstr "Eraman zirriborroetara" + +# posts.tmpl 30,57 +msgid "change to _%s_" +msgstr "bihurtu _%s_" + +# articles.tmpl 43,78 +# posts.tmpl 26,53 +msgid "move to..." +msgstr "mugi hona..." + +# articles.tmpl 47,83 +msgid "move to %s" +msgstr "eraman %s-ra" + +# post.tmpl 42 +msgid "View raw" +msgstr "Raw-eran ikusi" + +# articles.tmpl 47,83 +msgid "Publish this post to your blog %s" +msgstr "Argitaratu post hau zure %s blogean" + +# articles.tmpl 39,74 +msgid "Move this post to one of your blogs" +msgstr "Mugitu post hau zure blogetako batetara" + +# articles.tmpl 55 +msgid "Load more..." +msgstr "Kargatu gehiago..." + +# stats.tmpl 32 +msgid "Stats for all time." +msgstr "Estatistika orokorrak." + +# stats.tmpl 35 +msgid "Fediverse stats" +msgstr "Fedibertsoko estatistikak" + +# stats.tmpl 38 +msgid "Followers" +msgstr "Jarraitzaileak" + +# stats.tmpl 46 +msgid "Top %d post" +msgid_plural "Top %d posts" +msgstr[0] "%d. posta" +msgstr[1] "Lehen %d postak" + +# stats.tmpl 51 +msgid "Total Views" +msgstr "Bistaratzeak" + +# settings.tmpl 27 +msgid "Before you go..." +msgstr "Joan aurretik..." + +# settings.tmpl 27 +msgid "Account Settings" +msgstr "Kontuaren Ezarpenak" + +# settings.tmpl 38 +msgid "Change your account settings here." +msgstr "Aldatu hemen zure kontuaren ezarpenak." + +# signup.tmpl 80 +# signup-oauth.tmpl 85,87 +# login.tmpl 21 +# landing.tmpl 92 +# settings.tmpl 43 +# view-user.tmpl 62 +msgid "Username" +msgstr "Erabiltzaile-izena" + +# settings.tmpl 46 +msgid "Update" +msgstr "Eguneratu" + +# settings.tmpl 56 +msgid "Passphrase" +msgstr "Pasaesaldia" + +# settings.tmpl 58 +msgid "Add a passphrase to easily log in to your account." +msgstr "Gehitu pasaesaldia saioa erraztasunez hasteko." + +# settings.tmpl 59,60 +msgid "Current passphrase" +msgstr "Uneko pasaesaldia" + +# settings.tmpl 61,64 +msgid "New passphrase" +msgstr "Pasaesaldi berria" + +# settings.tmpl 60,64 +msgid "Show" +msgstr "Erakutsi" + +msgid "Account updated." +msgstr "Kontua eguneratu da." + +# signup.tmpl 91 +# signup-oauth.tmpl 92,94 +# landing.tmpl 103 +# settings.tmpl 69 +msgid "Email" +msgstr "Emaila" + +# settings.tmpl 76 +msgid "Email address" +msgstr "Email helbidea" + +# settings.tmpl 71 +msgid "Add your email to get:" +msgstr "Gehitu zure emaila hauek eskuratzeko:" + +# settings.tmpl 34 +msgid "Please add an **%s** and/or **%s** so you can log in again later." +msgstr "Mesedez gehitu saioa hasteko erabiliko dituzun **%s** edo/eta **%s**." + +# settings.tmpl 73 +msgid "No-passphrase login" +msgstr "Pasaesaldi gabeko saio hasiera" + +# settings.tmpl 74 +msgid "Account recovery if you forget your passphrase" +msgstr "Kontu berreskuratzea pasaesaldia ahaztuz gero" + +# settings.tmpl 89 +msgid "Linked Accounts" +msgstr "Lotutako Kontuak" + +# settings.tmpl 90 +msgid "These are your linked external accounts." +msgstr "Hauek dira lotutako zure kanpo-kontuak." + +# settings.tmpl 114 +msgid "Link External Accounts" +msgstr "Kanpoko Kontuak Lotu" + +msgid "" +"Connect additional accounts to enable logging in with those providers, " +"instead of using your username and password." +msgstr "" +"Konektatu kontu gehigarriak hornitzaile horiekin saioa hasteko, zure " +"erabiltzaile-izena eta pasahitza erabili beharrean." + +# settings.tmpl 162 +# view-user 149 +msgid "Incinerator" +msgstr "Errauskailua" + +# settings.tmpl 166,169,188 +msgid "Delete your account" +msgstr "Ezabatu zure kontua" + +# settings.tmpl 167 +msgid "Permanently erase all your data, with no way to recover it." +msgstr "Ezabatu zure datu guztiak, berreskuratzeko modurik gabe." + +# settings.tmpl 176 +# view-user 163 +msgid "Are you sure?" +msgstr "Ziur al zaude?" + +# settings.tmpl 178 +msgid "export your data" +msgstr "zure datuak esportatu" + +# settings.tmpl 178 +msgid "" +"This action **cannot** be undone. It will immediately and permanently erase " +"your account, including your blogs and posts. Before continuing, you might " +"want to %s." +msgstr "" +"Ekintza hau **ezin da** desegin. Honek berehala eta betirako ezabatuko du " +"zure kontua, blogak eta argitalpenak barne. Jarraitu aurretik agian %s nahi " +"zenituzke." + +# settings.tmpl 179 +msgid "If you're sure, please type **%s** to confirm." +msgstr "Ziur baldin bazaude, idatzi **%s** berresteko." + +# invite-help.tmpl 13 +msgid "Invite to %s" +msgstr "%s gonbidatu" + +# invite-help.tmpl 15 +msgid "This invite link is expired." +msgstr "Esteka hau iraungita dago." + +# invite-help.tmpl 21 +msgid "Only **one** user" +msgstr "Erabiltzaile **bakarrak**" + +# invite-help.tmpl 21 +msgid "Up to **%d** users" +msgstr "**%d** erabiltzaileko kopuruak" + +# invite-help.tmpl 21 +msgid "can sign up with this link." +msgstr "hasi dezake saioa esteka honekin." + +# invite-help.tmpl 23 +msgid "It expires on **%s**." +msgstr "Iraungitze data: **%s**." + +# invite-help.tmpl 25 +msgid "It can be used as many times as you like" +msgstr "Nahi duzun adina aldiz erabili daiteke" + +# invite-help 25 +msgid "before **%s**, when it expires" +msgstr "**%s** baino lehen, iraungitzen denean alegia" + +msgid "person has" +msgid_plural "person have" +msgstr[0] "pertsonak" +msgstr[1] "pertsonek" + +# invite-help.tmpl 21 +msgid "So far, **%d** %s used it." +msgstr "Orain arte, **%d** %s erabili dute." + +# invite-help.tmpl 21 +# So far, {{.Invite.Uses}} {{pluralize "person has" "people have" .Invite.Uses}} used it. +# invite-help.tmpl 21 +# invite-help.tmpl 17 +msgid "" +"Copy the link below and send it to anyone that you want to join *%s*. You " +"could paste it into an email, instant message, text message, or write it " +"down on paper. Anyone who navigates to this special page will be able to " +"create an account." +msgstr "" +"Kopiatu ondorengo esteka eta *%s* gunera batzea nahi duzun lagunari bidali. " +"Email batean erantsiz bidal dezakezu, mezularitza zerbitzu baten bidez, " +"testu-mezu moduan edo paper zati batean idatziz. Helbide berezi honetara " +"nabigatzen duen edonork izango du kontu bat sortzeko aukera." + +# IMPORT PAGE +# import.tmpl 28 +msgid "" +"Publish plain text or Markdown files to your account by uploading them below." +msgstr "Argitaratu testu-lau edo Markdown fitxategiak zure kontura igoaz." + +# import.tmpl 31 +msgid "Select some files to import:" +msgstr "Hautatu fitxategiak inportatzeko:" + +# import.tmpl 36 +msgid "Import these posts to:" +msgstr "Inportatu postak hona:" + +# import.tmpl 59 +msgid "Import" +msgstr "Inportatu" + +msgid "Import complete, %d post imported." +msgid_plural "Import complete, %d posts imported." +msgstr[0] "Import complete, %d post imported." +msgstr[1] "Import complete, %d posts imported." + +msgid "%d of %d posts imported, see details below." +msgid_plural "%d of %d posts imported, see details below." +msgstr[0] "%d of %d posts imported, see details below." +msgstr[1] "%d of %d posts imported, see details below." + +msgid "%s is not a supported post file" +msgstr "%s post fitxategia ez da onartzen" + +# export.tmpl 6 +msgid "" +"Your data on %s is always free. Download and back-up your work any time." +msgstr "" +"Zure datuen biltegiratzea doanekoa da %s webgunean. Deskargatu eta egin zure " +"lanen babeskopia edonoiz." + +# export.tmpl 11 +msgid "Format" +msgstr "Formatua" + +# header.tmpl 101 +msgid "Admin" +msgstr "Admin" + +# app-settings.tmpl 37 +msgid "Site Title" +msgstr "Gunearen Izenburua" + +# app-settings.tmpl 38 +msgid "Your public site name." +msgstr "Gune publikoaren izena." + +# app-settings.tmpl 44 +msgid "Site Description" +msgstr "Gunearen Deskribapena" + +# app-settings.tmpl 45 +msgid "Describe your site — this shows in your site's metadata." +msgstr "Deskribatu zure gunea — hau gunearen metadatuetan erakutsiko da." + +# app-settings.tmpl 51 +msgid "Host" +msgstr "Host" + +# app-settings.tmpl 52 +msgid "" +"The public address where users will access your site, starting with `http://" +"` or `https://`." +msgstr "" +"Erabiltzaileek gunean sartzeko erabiliko duten helbidea, hasieran `http://` " +"edo `https://` protokoloa zehaztuz." + +# app-settings.tmpl 58 +msgid "Community Mode" +msgstr "Komunitate Modua" + +# app-settings.tmpl 59 +msgid "Whether your site is made for one person or many." +msgstr "Zure gunea pertsona bakarrarentzat edo askorentzat egina dagoen." + +# app-settings.tmpl 61 +msgid "Single user" +msgstr "Erabiltzaile bakarra" + +# app-settings.tmpl 61 +msgid "Multiple users" +msgstr "Erabiltzaile anitz" + +# app-settings.tmpl 65 +msgid "Landing Page" +msgstr "Helburu-orria" + +# app-settings.tmpl 66 +msgid "" +"The page that logged-out visitors will see first. This should be an absolute " +"path like: `/read`." +msgstr "" +"Saioa hasi gabe duten erabiltzaileek hasieran ikusiko duten orria. Honen " +"moduko bide absolutua izan beharko litzateke: `/read`." + +# app-settings.tmpl 72 +msgid "Open Registrations" +msgstr "Erregistro Irekia" + +# app-settings.tmpl 73 +msgid "Allow anyone who visits the site to create an account." +msgstr "Gunea bisitatzen duen edonori kontua sortzen utzi." + +# app-settings.tmpl 80 +msgid "Allow account deletion" +msgstr "Kontua ezabatzen utzi" + +# app-settings.tmpl 81 +msgid "" +"Allow all users to delete their account. Admins can always delete users." +msgstr "" +"Erabiltzaileei beraien kontua ezabatzen utzi. Administratzaileek beti " +"ezabatu ditzakete erabiltzaileak." + +# app-settings.tmpl 88 +msgid "Allow invitations from..." +msgstr "Gonbidapen onarpena" + +# app-settings.tmpl 89 +msgid "Choose who is allowed to invite new people." +msgstr "Zehaztu nor dagoen baimenduta jende berria gonbidatzera." + +# app-settings.tmpl 93 +msgid "No one" +msgstr "Inor ez" + +# app-settings.tmpl 94 +msgid "Only Admins" +msgstr "Admin-ak soilik" + +# app-settings.tmpl 95 +msgid "All Users" +msgstr "Erabiltzaile oro" + +# app-settings.tmpl 101 +msgid "Private Instance" +msgstr "Instantzia Pribatua" + +# app-settings.tmpl 102 +msgid "Limit site access to people with an account." +msgstr "Sarbidea mugatu kontua duten erabiltzaileei." + +# app-settings.tmpl 109 +msgid "Show a feed of user posts for anyone who chooses to share there." +msgstr "" +"Erabiltzailearen argitalpenen feed bat erakutsi bertan elkarbanatzea " +"aukeratzen duen edonorentzat." + +# app-settings.tmpl 115 +msgid "Default blog visibility" +msgstr "Blogaren ikusgarritasuna" + +# app-settings.tmpl 116 +msgid "The default setting for new accounts and blogs." +msgstr "Kontu eta blog berrientzako lehenetsitako ezarpena." + +# app-settings.tmpl 128 +msgid "Maximum Blogs per User" +msgstr "Blog Kopurua Erabiltzaileko" + +# app-settings.tmpl 129 +msgid "" +"Keep things simple by setting this to **1**, unlimited by setting to **0**, " +"or pick another amount." +msgstr "" +"Guztia modu sinplean mantentzeko sartu **1**, mugagabea **0** ezarriz, " +"bestela gogoko kopurua zehaztu dezakezu." + +# app-settings.tmpl 135 +msgid "Federation" +msgstr "Federazioa" + +# app-settings.tmpl 136 +msgid "" +"Enable accounts on this site to propagate their posts via the ActivityPub " +"protocol." +msgstr "" +"Gaitu gune honetako kontuek ActivityPub protokolo bidez postak zabaldu " +"ditzaten." + +# app-settings.tmpl 142 +msgid "Public Stats" +msgstr "Estatistika Publikoak" + +# app-settings.tmpl 143 +msgid "Publicly display the number of users and posts on your **%s** page." +msgstr "Erakutsi publikoki erabiltzaile eta post kopurua **%s** orrian." + +# app-settings.tmpl 149 +msgid "Monetization" +msgstr "Monetizazioa" + +# app-settings.tmpl 150 +msgid "Enable blogs on this site to receive micropayments from readers via %s." +msgstr "" +"Gaitu gune honetako blogak irakurleengandik mikro-ordainketak jaso ditzaten, " +"%s-en bidez." + +# app-settings.tmpl 156 +msgid "Minimum Username Length" +msgstr "Erabiltzaile-izenaren gutxieneko luzera" + +# app-settings.tmpl 157 +msgid "" +"The minimum number of characters allowed in a username. (Recommended: 2 or " +"more.)" +msgstr "" +"Erabiltzaile-izenean onarturiko gutxieneko karaktere kopurua. (Gomendatua: 2 " +"edo gehiago.)" + +# app-settings.tmpl 162 +msgid "Save Settings" +msgstr "Gorde Ezarpenak" + +# app-settings.tmpl 166 +msgid "configuration docs" +msgstr "konfiguraketa dokumentuetan" + +# app-settings.tmpl 166 +msgid "Still have questions? Read more details in the %s." +msgstr "Zalantzak dituzu oraindik? Irakurri xehetasun gehiago %s." + +msgid "Configuration saved." +msgstr "Konfiguraketa gorde da." + +# view-user.tmpl 66 +# users.tmpl 22 +msgid "joined" +msgstr "elkartua" + +# users.tmpl 23 +msgid "type" +msgstr "mota" + +# users.tmpl 24 +# view-user.tmpl 79 +msgid "status" +msgstr "egoera" + +# base.tmpl 31 +# header.tmpl 39 +# invite.tmpl 26 +# users.tmpl 16 +msgid "Invite people" +msgstr "Jendea gonbidatu" + +# invite.tmpl 27 +msgid "" +"Invite others to join *%s* by generating and sharing invite links below." +msgstr "" +"Gonbidatu lagunen bat *%s* gunera batu dadin gonbidapen esteka bat sortu eta " +"berarekin elkarbanatuz." + +# invite.tmpl 31 +msgid "Maximum number of uses:" +msgstr "Gehienezko erabilera kopurua:" + +# invite.tmpl 33 +msgid "No limit" +msgstr "Mugagabea" + +# invite.tmpl 34,35,36,37,38,39,64 +msgid "use" +msgid_plural "uses" +msgstr[0] "use" +msgstr[1] "uses" + +# invite.tmpl 43 +msgid "Expire after:" +msgstr "Iraungitze data:" + +# invite.tmpl 46 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minute" +msgstr[1] "minutes" + +# invite.tmpl 47,48,49 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hour" +msgstr[1] "hours" + +# invite.tmpl 50,51 +msgid "day" +msgid_plural "days" +msgstr[0] "day" +msgstr[1] "days" + +# invite.tmpl 52 +msgid "week" +msgid_plural "weeks" +msgstr[0] "week" +msgstr[1] "weeks" + +# invite.tmpl 57 +msgid "You cannot generate invites while your account is silenced." +msgstr "" +"Ezin duzu gonbidapenik sortu zure kontua isilarazirik dagoen bitartean." + +# invite.tmpl 57 +msgid "Generate" +msgstr "Sortu" + +# invite.tmpl 63 +msgid "Link" +msgstr "Lotura" + +# invite.tmpl 121,129,137,145,152 +msgid "ToLink" +msgstr "Lotu" + +# invite.tmpl 65 +msgid "Expires" +msgstr "Iraungitzea" + +# invite.tmpl 71 +msgid "Expired" +msgstr "Iraungita" + +# invite.tmpl 75 +msgid "No invites generated yet." +msgstr "Oraindik ez da gonbidapenik sortu." + +# pages.tmpl 18 +msgid "last modified" +msgstr "azken aldaketa" + +# view-user.tmpl 85 +msgid "Active" +msgstr "Aktibo" + +# view-user.tmpl 82 +msgid "Silenced" +msgstr "Isilarazia" + +# view-user.tmpl 83 +msgid "Unsilence" +msgstr "Ez-isilarazi" + +# view-user 86 +msgid "disabled" +msgstr "desgaitua" + +# view-user 86 +msgid "Silence" +msgstr "Isilarazi" + +# view-user.tmpl 54 +msgid "No." +msgstr "Zkia." + +# view-user.tmpl 70 +msgid "total posts" +msgstr "postak guztira" + +# view-user.tmpl 74,136 +msgid "last post" +msgstr "azken posta" + +# signup.tmpl 87 +# login.tmpl 22 +# landing.tmpl 99 +# view-user 92 +msgid "password" +msgstr "pasahitza" + +msgid "Change your password" +msgstr "Aldatu zure pasahitza" + +# view-user 100 +msgid "Go to reset password page" +msgstr "Pasahitza berrezartzeko orrira joan" + +# view-user 141 +msgid "Fediverse followers" +msgstr "Fedibertsoko jarraitzaileak" + +# view-user 124 +msgid "Visibility" +msgstr "Ikusgarritasuna" + +# view-user 112 +msgid "Alias" +msgstr "Ezizena" + +# view-user.tmpl 75,137 +msgid "Never" +msgstr "Inoiz ez" + +# view-user 97 +msgid "Reset" +msgstr "Berrezarri" + +# view-user 153,156,174 +msgid "Delete this user" +msgstr "Erabiltzailea ezabatu" + +# view-user 154 +msgid "Permanently erase all user data, with no way to recover it." +msgstr "" +"Betiko ezabatu erabiltzailearen datu guztiak, berreskuratzeko aukerarik gabe." + +# view-user 165 +msgid "" +"This action **cannot**be undone. It will permanently erase all traces of " +"this user, **%s**, including their account information, blogs, and posts." +msgstr "" +"Ekintza hau **ezingo da** desegin. Betiko ezabatuko ditu erabiltzaile honen " +"aztarna guztiak, **%s**, bere kontuaren informazioa barne, blogak, eta " +"postak." + +# view-user 166 +msgid "Please type **%s** to confirm." +msgstr "Mesedez idatzi **%s** baieztatzeko." + +# view-user 202 +msgid "" +"Silence this user? They'll still be able to log in and access their posts, " +"but no one else will be able to see them anymore. You can reverse this " +"decision at any time." +msgstr "" +"Erabiltzailea isilarazi? Isilarazitako erabiltzaileek sarbidea izaten " +"jarraituko dute beraien idatzietara, baina ez ditu inork ikusiko. Erabaki " +"hau edozein unetan alda dezakezu." + +# view-user 208 +msgid "" +"Reset this user's password? This will generate a new temporary password that " +"you'll need to share with them, and invalidate their old one." +msgstr "" +"Erabiltzailearen pasahitza berrezarri? Honek aldi baterako pasahitz berri " +"bat sortuko du, beraiekin partekatu beharko duzuna eta zaharra baliogabetu." + +# settings.tmpl 225 +# collection.tmpl 207 +# view-user.tmpl 198 +msgid "Deleting..." +msgstr "Ezabatzen..." + +# view-user.tmpl 46 +msgid "This user's password has been reset to:" +msgstr "Erabiltzaile honen pasahitza hona berrezarri da:" + +# view-user.tmpl 48 +msgid "" +"They can use this new password to log in to their account. **This will only " +"be shown once**, so be sure to copy it and send it to them now." +msgstr "" +"Pasahitz berri hau kontuan saio hasteko erabili ahal izango da. **Behin " +"bakarrik erakutsiko da**, beraz, ziurtatu kopiatu eta bidaltzeaz." + +# view-user.tmpl 49 +msgid "Their email address is:" +msgstr "Email helbidea:" + +# app-updates.tmlp 19 +msgid "Automated update check failed." +msgstr "Eguneratze automatizatuaren egiaztatzeak huts egin du." + +# app-updates.tmlp 20, 24, 41 +msgid "Installed version: %s (%s)." +msgstr "Instalaturiko bertsioa: %s (%s)." + +# app-updates.tmlp 21, 42 +msgid "Learn about latest releases on the %s or %s." +msgstr "Ezagutu azken bertsioen inguruan %s-ean edo %s-ean." + +# app-updates.tmlp 23 +msgid "WriteFreely is **up to date**." +msgstr "WriteFreely **eguneratuta** dago." + +# app-updates.tmlp 27 +msgid "Get" +msgstr "Lortu" + +# app-updates.tmlp 27 +msgid "A new version of WriteFreely is available! **%s %s**" +msgstr "WriteFreely bertsio berri bat dago eskuragarri! **%s %s**" + +# app-updates.tmlp 28 +msgid "release notes" +msgstr "bertsio oharrak" + +# app-updates.tmlp 29 +msgid "" +"Read the %s for details on features, bug fixes, and notes on upgrading from " +"your current version, **%s**." +msgstr "" +"Irakurri %s, **%s** bertsioaren ezaugarriei, akatsen zuzenketei eta " +"eguneratze-oharrei buruzko xehetasunak ezagutzeko." + +# app-updates.tmlp 31 +msgid "Check now" +msgstr "Egiaztatu orain" + +# app-updates.tmlp 31 +msgid "Last checked" +msgstr "Azkenengoz egiaztatua" + +# app-updates.tmlp 40 +msgid "Automated update checks are disabled." +msgstr "Eguneratze-kontrol automatizatuak desgaituta daude." + +# ADMIN PAGES +# view-page.tmpl 45 +msgid "Banner" +msgstr "Bannerra" + +# view-page.tmpl 56 +msgid "Body" +msgstr "Body" + +# view-page.tmpl 33 +msgid "Outline your %s." +msgstr "Azaldu zure %s." + +# view-page.tmpl 35,37 +msgid "Customize your %s page." +msgstr "Pertsonalizatu zure %s orria." + +# view-page.tmpl 31 +msgid "Describe what your instance is %s." +msgstr "Egin deskribapena instantzia %s." + +msgid "Accepts Markdown and HTML." +msgstr "Markdown eta HTML erabili daitezke." + +# view-page.tmpl 56 +msgid "Content" +msgstr "Edukia" + +# view-page.tmpl 63 +msgid "Save" +msgstr "Gorde" + +# view-page.tmpl 71 +msgid "Saving..." +msgstr "Gordetzen..." + +# view-page.tmpl 48 +msgid "" +"We suggest a header (e.g. `# Welcome`), optionally followed by a small bit " +"of text. Accepts Markdown and HTML." +msgstr "" +"Goiburu bat iradokitzen dugu (adib. ` # Ongi Etorri`), aukeran testu pixka " +"batez jarraituz. Markdown eta HTML onartzen dira." + +# login.tmpl 11 +msgid "Log in to %s" +msgstr "Hasi saioa %s gunean" + +# login.tmpl 32 +msgid "Logging in..." +msgstr "Saioa hasten..." + +# login.tmpl 27 +msgid "_No account yet?_ %s to start a blog." +msgstr "_Konturik ez oraindik?_ %s blog bat hasteko." + +msgid "Incorrect password." +msgstr "Pasahitz okerra." + +msgid "This user never set a password. Perhaps try logging in via OAuth?" +msgstr "" +"Erabiltzaile honek ez du pasahitzik ezarririk. Beharbada OAuth bidez saiatu?" + +msgid "" +"This user never added a password or email address. Please contact us for " +"help." +msgstr "" +"Erabiltzaile honek ez du inoiz pasahitz edo emailik gehitu. Jarri gurekin " +"harremanetan laguntza jasotzeko." + +msgid "You're doing that too much." +msgstr "Gehiegitan ari zara hori egiten." + +msgid "Parameter `alias` required." +msgstr "Sartu erabiltzaile izena." + +msgid "A username is required." +msgstr "Sartu erabiltzaile izena." + +msgid "Parameter `pass` required." +msgstr "Sartu ezazu pasahitza." + +msgid "A password is required." +msgstr "Pasahitza beharrezkoa da." + +msgid "Need a collection `alias` to read." +msgstr "Bilduma `ezizen` bat behar da irakurtzeko." + +msgid "Please supply a password." +msgstr "Mesedez sartu pasahitz bat." + +msgid "Something went very wrong. The humans have been alerted." +msgstr "Zeozer oso gaizki atera da. Gizakiak jakinaren gain jarriko dira." + +msgid "Logging out failed. Try clearing cookies for this site, instead." +msgstr "Irtetzeak huts egin du. Horren ordez, saia zaitez cookieak garbitzen." + +msgid "your-username" +msgstr "zure-erabiltzaile-izena" + +msgid "optional" +msgstr "hautazkoa" + +msgid "Create blog" +msgstr "Sortu bloga" + +# signup-oauth.tmpl 59 +msgid "Finish creating account" +msgstr "Amaitu kontua sortzen" + +# signup-oauth.tmpl 79 +msgid "Display Name" +msgstr "Bistaratze izena" + +# oauth.tmpl 26 +msgid "or" +msgstr "edo" + +# oauth.tmpl 9,13,17,20 +msgid "Sign in with **%s**" +msgstr "Hasi saioa **%s**-ekin" + +# landing.tmpl 77 +msgid "Learn more..." +msgstr "Ikasi gehiago..." + +# landing.tmpl 114 +msgid "Registration is currently closed." +msgstr "Izen-ematea itxita dago une honetan." + +# landing.tmpl 115 +msgid "another instance" +msgstr "beste instantzia" + +# landing.tmpl 115 +msgid "You can always sign up on %s." +msgstr "Beti hasi ahal izango saioa %s batean." + +msgid "# Start your blog" +msgstr "# Hasi zure bloga" + +msgid "# Start your blog in the fediverse" +msgstr "# Hasi zure bloga fedibertsoan" + +msgid "" +"## Write More Socially\n" +"\n" +"WriteFreely can communicate with other federated platforms like _Mastodon_, " +"so people can follow your blogs, bookmark their favorite posts, and boost " +"them to their followers. Sign up above to create a blog and join the " +"fediverse." +msgstr "" +"## Idatzi sozialkiago\n" +"\n" +"WriteFreely _Mastodon_ bezalako beste edozein federatutako plataformarekin " +"komunika daiteke, beraz jendeak zure bloga jarraitu ahal izango du, gogoko " +"sarreren laster-markak egin, eta jarraitzaileekin elkarbanatu. Eman izena " +"blog bat sortzeko eta batu fedibertsora." + +msgid "About %s" +msgstr "%s-i buruz" + +msgid "_%s_ is a place for you to write and publish, powered by %s." +msgstr "_%s_ idatzi eta argitaratzeko gune bat da, %s erabiliz." + +msgid "" +"_%s_ is an interconnected place for you to write and publish, powered by %s." +msgstr "_%s_ idatzi eta argitaratzeko gune bat da, %s erabiliz." + +msgid "_%s_ is home to %d articles across %d blogs." +msgstr "_%s_ idatzi eta argitaratzeko gune bat da, %s erabiliz." + +msgid "" +"## About WriteFreely\n" +"\n" +"%s is a self-hosted, decentralized blogging platform for publishing " +"beautiful, simple blogs.\n" +"\n" +"It lets you publish a single blog, or host a community of writers who can " +"create multiple blogs under one account. You can also enable federation, " +"which allows people in the fediverse to follow your blog, bookmark your " +"posts, and share them with others." +msgstr "" +"## WriteFreely-ri buruz\n" +"\n" +"%s blog eder eta sinpleak argitaratzeko norberak ostata dezakeen eta " +"deszentralizaturikoa den blogintza plataforma bat da.\n" +"\n" +"Blog bakar bat argitaratzeko aukera eskaintzen du, edo kontu bakarrean " +"hainbat blog sor ditzakeen idazle komunitate bat ostatatzekoa. Federazioa " +"ere gaitu daiteke, horrela, bertako pertsonek blogak jarraitu, posten laster-" +"markak egin, eta besteekin partekatu ahal izango dituzte." + +msgid "Start an instance" +msgstr "Hasi instantzia bat" + +msgid "Privacy Policy" +msgstr "Pribatutasun Politika" + +msgid "Last updated" +msgstr "Azken eguneraketa" + +msgid "Read the latest posts form %s." +msgstr "Irakurri %s-en argitaratutako azken sarrerak." + +# : pages.go:98 +msgid "" +"%s, the software that powers this site, is built to enforce your right to " +"privacy by default.\n" +"\n" +"It retains as little data about you as possible, not even requiring an email " +"address to sign up. However, if you _do_ give us your email address, it is " +"stored encrypted in our database.\n" +"\n" +"We salt and hash your account's password.We store log files, or data about " +"what happens on our servers. We also use cookies to keep you logged in to " +"your account.\n" +"\n" +"Beyond this, it's important that you trust whoever runs %s. Software can " +"only do so much to protect you -- your level of privacy protections will " +"ultimately fall on the humans that run this particular service." +msgstr "" +"Gune hau ahalbidetzen duen softwareak, hau da, %s-k zure pribatutasun " +"eskubidea bermatzea lehenesten du.\n" +"\n" +"Instantzia honetan zuri buruzko ahalik eta datu gutxien gordetzen da, " +"erregistratzeko helbide elektronikorik ere ez da behar, baina ematen " +"badiguzu ere, enkriptaturik gordeko da gure datu-basean. Zure pasahitza " +"berriz salt eta hash bidez babesten da.\n" +"\n" +"Log fitxategiak ere gordetzen ditugu, gure zerbitzarietan gertatzen dena, " +"alegia. Zure kontuan saioa hasita izan dezazun cookieak ere erabiltzen " +"ditugu.\n" +"\n" +"Horrez gain, garrantzitsua da %s kudeatzen ari dena zure konfidantzazko " +"norbait izatea. Softwareak asko egin dezake zu babesteko, baina zure " +"pribatutasunaren babes-maila, azken batean, zerbitzu hau kudeatzen duten " +"pertsonena da." + +# static/js/postactions.js +msgid "Unpublished post" +msgstr "Argitaratu gabeko posta" + +msgid "Moved to %s" +msgstr "%s-(e)ra mugitua" + +msgid "move to" +msgstr "eraman" + +msgid "moving to %s..." +msgstr "%s-(e)ra mugitzen..." + +msgid "unable to move" +msgstr "ezinezkoa mugitzea" + +msgid "View on %s" +msgstr "Ikusi %s-(e)n" + +# classic.tmpl 64 +# pad.tmpl 59 +# bare.tmpl 30 +msgid "NOTE" +msgstr "OHARRA" + +# classic.tmpl 64 +# pad.tmpl 59 +# bare.tmpl 30 +msgid "for now, you'll need Javascript enabled to post." +msgstr "oraingoz, Javascript gaiturik behar duzu postak idazteko." + +# classic.tmpl 158 +# pad.tmpl 174 +msgid "Your account is silenced, so you can't publish or update posts." +msgstr "" +"Zure kontua isilarazi egin da, beraz ezin duzu postik argitaratu edo " +"eguneratu." + +# classic.tmpl 257 +# pad.tmpl 278 +msgid "Failed to post. Please try again." +msgstr "Huts argitaratzerakoan. Saia zaitez berriro." + +# classic.tmpl 163 +# pad.tmpl 179 +# bare.tmpl 99 +msgid "You don't have permission to update this post." +msgstr "Ez duzu baimenik post hau eguneratzeko." + +# pad.tmpl 16 +msgid "Write..." +msgstr "Idatzi..." + +# classic.tmpl 34 +# pad.tmpl 29 +msgid "Publish to..." +msgstr "Argitaratu..." + +# classic.tmpl 55 +# pad.tmpl 50 +msgid "Font" +msgstr "Letra-tipoa" + +# read.tmpl 105 +msgid "from" +msgstr "from" + +# read.tmpl 105 +msgid "Anonymous" +msgstr "Anonimoa" + +# read.tmpl 120 +msgid "Older" +msgstr "Zaharragoa" + +# read.tmpl 121 +msgid "Newer" +msgstr "Berriagoa" + +# password-collection.tmpl 31 +msgid "Menu" +msgstr "Menu" + +# password-collection.tmpl 51 +msgid "This blog requires a password." +msgstr "Blog honek pasahitza behar du." + +# 404-general.tmpl 1 +msgid "Page not found" +msgstr "Page not found" + +# 404-general.tmpl 4 +msgid "This page is missing." +msgstr "Orri hori falta da." + +# 404-general.tmpl 5 +msgid "Are you sure it was ever here?" +msgstr "Ziur al zaude hemen dagoela?" + +#404.tmpl 1,4 +msgid "Post not found" +msgstr "Ez da aurkitu posta" + +#404.tmpl +msgid "Why not share a thought of your own?" +msgstr "Zergatik ez partekatu norberaren pentsamenduak?" + +# 404.tmpl +msgid "Start a blog" +msgstr "Hasi blog bat" + +#404.tmpl +msgid "%s and spread your ideas on **%s**, %s." +msgstr "%s eta adierazi zure ideiak **%s** gunean, %s." + +# 404.tmpl +msgid "a simple blogging community" +msgstr "blogintza komunitate sinplea" + +# 404.tmpl +msgid "a simple, federated blogging community" +msgstr "federaturiko blogintza komunitate sinplea" + +# 410.tmpl 1 +msgid "Unpublished" +msgst "Argitaratu gabea" + +# 410.tmpl 4 +msgid "Post was unpublished by the author." +msgstr "Egileak posta ezabatu du." + +# 410.tmpl 5 +msgid "It might be back some day." +msgstr "Agian itzuliko da egunen batean." \ No newline at end of file diff --git a/page/page.go b/page/page.go index 5ab7750..aa23757 100644 --- a/page/page.go +++ b/page/page.go @@ -31,6 +31,9 @@ type StaticPage struct { CanViewReader bool IsAdmin bool CanInvite bool + + Locales string + Tr func (str string, ParamsToTranslate ...interface{}) interface{} } // SanitizeHost alters the StaticPage to contain a real hostname. This is diff --git a/pages/404-general.tmpl b/pages/404-general.tmpl index dfc4653..f954d3c 100644 --- a/pages/404-general.tmpl +++ b/pages/404-general.tmpl @@ -1,7 +1,7 @@ -{{define "head"}}Page not found — {{.SiteName}}{{end}} +{{define "head"}}{{call .Tr "Page not found"}} — {{.SiteName}}{{end}} {{define "content"}}
-

This page is missing.

-

Are you sure it was ever here?

+

{{call .Tr "This page is missing."}}

+

{{call .Tr "Are you sure it was ever here?"}}

{{end}} diff --git a/pages/404.tmpl b/pages/404.tmpl index b103e27..46337e0 100644 --- a/pages/404.tmpl +++ b/pages/404.tmpl @@ -1,10 +1,11 @@ -{{define "head"}}Post not found — {{.SiteName}}{{end}} +{{define "head"}}{{call .Tr "Post not found"}} — {{.SiteName}}{{end}} {{define "content"}}
-

Post not found.

+

{{call .Tr "Post not found"}}.

{{if and (not .SingleUser) .OpenRegistration}} -

Why not share a thought of your own?

-

Start a blog and spread your ideas on {{.SiteName}}, a simple{{if .Federation}}, federated{{end}} blogging community.

+

{{call .Tr "Why not share a thought of your own?"}}

+ {{$str := print "a simple blogging community"}}{{if .Federation}}{{$str = print "a simple, federated blogging community"}}{{end}} +

{{call .Tr "%s and spread your ideas on **%s**, %s." true (variables "Start a blog;/" .SiteName $str)}}

{{end}}
{{end}} diff --git a/pages/410.tmpl b/pages/410.tmpl index 5dfd4a4..1593a60 100644 --- a/pages/410.tmpl +++ b/pages/410.tmpl @@ -1,7 +1,7 @@ -{{define "head"}}Unpublished — {{.SiteName}}{{end}} +{{define "head"}}{{call .Tr "Unpublished"}} — {{.SiteName}}{{end}} {{define "content"}}
-

{{if .Content}}{{.Content}}{{else}}Post was unpublished by the author.{{end}}

-

It might be back some day.

+

{{if .Content}}{{.Content}}{{else}}{{call .Tr "Post was unpublished by the author."}}{{end}}

+

{{call .Tr "It might be back some day."}}

{{end}} diff --git a/pages/landing.tmpl b/pages/landing.tmpl index 2131b40..7ef914a 100644 --- a/pages/landing.tmpl +++ b/pages/landing.tmpl @@ -63,6 +63,9 @@ form dd { .or { margin-bottom: 2.5em !important; } +label{ + text-transform: capitalize; +} {{end}} {{define "content"}} @@ -71,7 +74,7 @@ form dd {
@@ -86,30 +89,30 @@ form dd {
- +
{{end}} {{ else }} -

Registration is currently closed.

-

You can always sign up on another instance.

+

{{call .Tr "Registration is currently closed."}}

+

{{call .Tr "You can always sign up on %s." true (variables "another instance;https://writefreely.org/instances")}}

{{ end }} @@ -191,7 +194,7 @@ var doneTyping = function() { http.send(JSON.stringify(params)); } else { $aliasSite.className += ' demo'; - $aliasSite.innerHTML = '{{ if .Federation }}@your-username@{{.FriendlyHost}}{{ else }}{{.FriendlyHost}}/your-username/{{ end }}'; + $aliasSite.innerHTML = '{{ if .Federation }}@{{call .Tr "your-username"}}@{{.FriendlyHost}}{{ else }}{{.FriendlyHost}}/{{call .Tr "your-username"}}/{{ end }}'; } }; $alias.on('keyup input', function() { diff --git a/pages/login.tmpl b/pages/login.tmpl index f0a54eb..9d78a50 100644 --- a/pages/login.tmpl +++ b/pages/login.tmpl @@ -3,11 +3,12 @@ {{end}} {{define "content"}}
-

Log in to {{.SiteName}}

+

{{call .Tr "Log in to %s" (variables .SiteName)}}

{{if .Flashes}}
    {{range .Flashes}}
  • {{.}}
  • {{end}} @@ -17,18 +18,18 @@ input{margin-bottom:0.5em;} {{if not .DisablePasswordAuth}}
    -
    -
    +
    +
    {{if .To}}{{end}} - +
    - {{if and (not .SingleUser) .OpenRegistration}}

    {{if .Message}}{{.Message}}{{else}}No account yet? Sign up to start a blog.{{end}}

    {{end}} + {{if and (not .SingleUser) .OpenRegistration}}

    {{if .Message}}{{.Message}}{{else}}{{call .Tr "_No account yet?_ %s to start a blog." true (variables "Sign up; .SignupPath")}}{{end}}

    {{end}} diff --git a/pages/privacy.tmpl b/pages/privacy.tmpl index 578472a..d893a99 100644 --- a/pages/privacy.tmpl +++ b/pages/privacy.tmpl @@ -3,8 +3,9 @@ {{end}} {{define "content"}}

    {{.ContentTitle}}

    -

    Last updated {{.Updated}}

    +

    {{call .Tr "Last updated"}},

    {{.Content}}
    + {{end}} diff --git a/pages/signup-oauth.tmpl b/pages/signup-oauth.tmpl index fcd70d2..f16b7e6 100644 --- a/pages/signup-oauth.tmpl +++ b/pages/signup-oauth.tmpl @@ -56,7 +56,7 @@ form dd { {{end}} {{define "content"}}
    -

    Finish creating account

    +

    {{call .Tr "Finish creating account"}}

    {{if .Flashes}}
      {{range .Flashes}}
    • {{.}}
    • {{end}} @@ -76,22 +76,22 @@ form dd {
      diff --git a/pages/signup.tmpl b/pages/signup.tmpl index b1bb50d..ee9652a 100644 --- a/pages/signup.tmpl +++ b/pages/signup.tmpl @@ -77,22 +77,22 @@ form dd {
      - +
      diff --git a/static/js/localdate.js b/static/js/localdate.js index 879ebe4..57dfddd 100644 --- a/static/js/localdate.js +++ b/static/js/localdate.js @@ -1,6 +1,46 @@ -function toLocalDate(dateEl, displayEl) { +//localdate.js +//Modified for correctly formating the dates in Basque language(while some errors are fixed on "unicode-org/cldr" +// https://github.com/unicode-org/cldr/blob/main/common/main/eu.xml): 2022/08/16 + +function toLocalDate(dateEl, displayEl, longFormat) { var d = new Date(dateEl.getAttribute("datetime")); - displayEl.textContent = d.toLocaleDateString(navigator.language || "en-US", { year: 'numeric', month: 'long', day: 'numeric' }); + + //displayEl.textContent = d.toLocaleDateString(navigator.language || "en-US", { year: 'numeric', month: 'long', day: 'numeric' }); + if(longFormat){ + var dateString = d.toLocaleDateString(navigator.language || "en-US", { year: 'numeric', month: 'long', day: 'numeric' , hour: 'numeric', minute: 'numeric'}); + }else{ + var dateString = d.toLocaleDateString(navigator.language || "en-US", { year: 'numeric', month: 'long', day: 'numeric' }); + } + + function euFormat(data){ + var hk = [ + "urtarrila", "otsaila", "martxoa", + "apirila", "maiatza", "ekaina", "uztaila", + "abuztua", "iraila", "urria", + "azaroa", "abendua" + ]; + + var e = data.getDate(); + var h = data.getMonth(); + var u = data.getFullYear(); + var or = data.getHours(); + var min = data.getMinutes(); + var a = (or >= 12) ? "PM" : "AM"; + + var lot = ((((Number(u[2])%2 == 0 && u[3] =='1') || (Number(u[2])%2 == 1 && u[3]=='0')) || u[3] == '5')?'e':'')+'ko' + + if(longFormat){ + return u + lot + ' ' + hk[h] + 'k ' + e + ', ' + or + ':' + min + ' ' + a; + }else{ + return u + lot + ' ' + hk[h] + 'k ' + e; + } + + + } + + //if lang eu or eu-ES ... + displayEl.textContent = navigator.language.indexOf('eu') != -1 ? euFormat(d) : dateString + } // Adjust dates on individual post pages, and on posts in a list *with* an explicit title @@ -12,5 +52,26 @@ for (var i=0; i < $dates.length; i++) { // Adjust dates on posts in a list without an explicit title, where they act as the header $dates = document.querySelectorAll("h2.post-title > time"); for (i=0; i < $dates.length; i++) { - toLocalDate($dates[i], $dates[i].querySelector('a')); -} \ No newline at end of file + toLocalDate($dates[i], $dates[i].querySelector('a'), false); +} + +// Adjust dates on drafts 2022/08/16 +$dates = document.querySelectorAll("h4 > date"); +for (var i=0; i < $dates.length; i++) { + $dates[i].setAttribute("datetime", $dates[i].getAttribute("datetime").split(" +")[0]) + toLocalDate($dates[i], $dates[i], false); +} + +// Adjust date on privacy page 2022/08/17 +$dates = document.querySelectorAll("p > time"); +for (var i=0; i < $dates.length; i++) { + toLocalDate($dates[i], $dates[i], false); +} + +// Adjust date to long format on admin/user-s pages 2022/11/21 +if(location.pathname.startsWith("/admin/user")){ + $dates = document.querySelectorAll("td > time"); + for (var i=0; i < $dates.length; i++) { + toLocalDate($dates[i], $dates[i], true); + } +} diff --git a/static/js/postactions.js b/static/js/postactions.js index 74e3223..3d0c392 100644 --- a/static/js/postactions.js +++ b/static/js/postactions.js @@ -1,10 +1,17 @@ var postActions = function() { var $container = He.get('moving'); - var MultiMove = function(el, id, singleUser) { + + var tr = function(term, str){ + return term.replace("%s", str); + }; + var MultiMove = function(el, id, singleUser, loc) { var lbl = el.options[el.selectedIndex].textContent; + var loc = JSON.parse(loc); var collAlias = el.options[el.selectedIndex].value; var $lbl = He.$('label[for=move-'+id+']')[0]; - $lbl.textContent = "moving to "+lbl+"..."; + //$lbl.textContent = loc['moving to']+" "+lbl+"..."; + $lbl.textContent = tr(loc['moving to %s...'],lbl); + var params; if (collAlias == '|anonymous|') { params = [id]; @@ -17,7 +24,8 @@ var postActions = function() { if (code == 200) { for (var i=0; i"; + //$lbl.innerHTML = loc["Moved to"]+" "+lbl+""; + $lbl.innerHTML = tr(loc["Moved to %s"], " "+lbl+""); var pre = "/"+collAlias; if (typeof singleUser !== 'undefined' && singleUser) { pre = ""; @@ -35,13 +43,14 @@ var postActions = function() { if (typeof singleUser !== 'undefined' && singleUser) { draftPre = "d/"; } - $article.innerHTML = '

      Unpublished post.

      '; + $article.innerHTML = '

      '+loc["Unpublished post"]+'.

      '; } else { - $article.innerHTML = '

      Moved to '+lbl+'.

      '; + //$article.innerHTML = '

      '+loc["Moved to"]+' '+lbl+'.

      '; + $article.innerHTML = '

      '+ tr(loc["Moved to %s"], ''+lbl+'')+'.

      '; } } } else { - $lbl.innerHTML = "unable to move: "+resp.data[i].error_msg; + $lbl.innerHTML = loc['unable to move']+": "+resp.data[i].error_msg; } } } @@ -52,18 +61,28 @@ var postActions = function() { He.postJSON("/api/collections/"+collAlias+"/collect", params, callback); } }; - var Move = function(el, id, collAlias, singleUser) { + var Move = function(el, id, collAlias, singleUser, loc) { var lbl = el.textContent; + var loc = JSON.parse(loc) + + /* try { - var m = lbl.match(/move to (.*)/); + //var m = lbl.match(/move to (.*)/); + var m = lbl.match(RegExp(loc['move to'] + "(.*)")); lbl = m[1]; } catch (e) { if (collAlias == '|anonymous|') { lbl = "draft"; } } + */ + if (collAlias == '|anonymous|'){ + lbl = loc["draft"]; + }else{ + lbl = collAlias + } - el.textContent = "moving to "+lbl+"..."; + el.textContent = tr(loc['moving to %s...'],lbl); if (collAlias == '|anonymous|') { params = [id]; } else { @@ -75,7 +94,7 @@ var postActions = function() { if (code == 200) { for (var i=0; i"; + el.innerHTML = tr(loc["Moved to %s"], " "+lbl+""); el.onclick = null; var pre = "/"+collAlias; if (typeof singleUser !== 'undefined' && singleUser) { @@ -83,7 +102,7 @@ var postActions = function() { } var newPostURL = pre+"/"+resp.data[i].post.slug; el.href = newPostURL; - el.title = "View on "+lbl; + el.title = tr(loc["View on %s"], lbl) try { // Posts page He.$('#post-'+resp.data[i].post.id+' > h3 > a')[0].href = newPostURL; @@ -96,13 +115,13 @@ var postActions = function() { if (typeof singleUser !== 'undefined' && singleUser) { draftPre = "d/"; } - $article.innerHTML = '

      Unpublished post.

      '; + $article.innerHTML = '

      '+loc["Unpublished post"]+'.

      '; } else { - $article.innerHTML = '

      Moved to '+lbl+'.

      '; + $article.innerHTML = '

      '+ tr(loc["Moved to %s"], ''+lbl+'')+'.

      '; } } } else { - el.innerHTML = "unable to move: "+resp.data[i].error_msg; + el.innerHTML = loc['unable to move']+": "+resp.data[i].error_msg; } } } @@ -112,6 +131,7 @@ var postActions = function() { } else { He.postJSON("/api/collections/"+collAlias+"/collect", params, callback); } + }; return { diff --git a/static/js/posts.js b/static/js/posts.js index dfc30b7..1f05310 100644 --- a/static/js/posts.js +++ b/static/js/posts.js @@ -4,6 +4,7 @@ * Dependencies: * h.js */ + function toggleTheme() { var btns; try { @@ -34,14 +35,15 @@ if (H.get('padTheme', 'light') != 'light') { } var deleting = false; -function delPost(e, id, owned) { +function delPost(e, id, owned, loc) { e.preventDefault(); if (deleting) { return; } + var loc = JSON.parse(loc); // TODO: UNDO! - if (window.confirm('Are you sure you want to delete this post?')) { + if (window.confirm(loc['Are you sure you want to delete this post?'])) { var token; for (var i=0; i{{if .Editing}}Editing {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}}{{else}}New Post{{end}} — {{.SiteName}} - {{if .CustomCSS}}{{end}} @@ -18,20 +17,20 @@ {{end}}{{.Post.Content}} - +
      {{if not .SingleUser}}

      {{if .Chorus}}{{else}}{{end}}{{.SiteName}}

      {{end}}
      - +
      {{if .Editing}}{{end}} -
      +
      @@ -97,7 +96,7 @@ var publish = function(content, font) { {{if and (and .Post.Id (not .Post.Slug)) (not .User)}} if (!token) { - alert("You don't have permission to update this post."); + alert({{call .Tr "You don't have permission to update this post."}}); return; } {{end}} diff --git a/templates/base.tmpl b/templates/base.tmpl index 273c2b9..94e1d6c 100644 --- a/templates/base.tmpl +++ b/templates/base.tmpl @@ -26,34 +26,34 @@ {{if .Username}} {{end}} {{if .Chorus}}{{if .Username}}{{end}} {{end}} diff --git a/templates/chorus-collection-post.tmpl b/templates/chorus-collection-post.tmpl index 468455c..ed1478f 100644 --- a/templates/chorus-collection-post.tmpl +++ b/templates/chorus-collection-post.tmpl @@ -6,7 +6,6 @@ {{.PlainDisplayTitle}} {{localhtml "title dash" .Language.String}} {{.Collection.DisplayTitle}} - {{if .CustomCSS}}{{end}} @@ -58,7 +57,7 @@ body#post header { {{template "user-navigation" .}} {{if .Silenced}} - {{template "user-silenced"}} + {{template "user-silenced" (dict "Tr" $.Tr)}} {{end}}
      {{if .IsScheduled}}

      Scheduled

      {{end}}{{if .Title.String}}

      {{.FormattedDisplayTitle}}

      {{end}}{{if and $.Collection.Format.ShowDates (not .IsPinned)}}{{end}}
      {{.HTMLContent}}
      diff --git a/templates/chorus-collection.tmpl b/templates/chorus-collection.tmpl index 2bc165d..35102e0 100644 --- a/templates/chorus-collection.tmpl +++ b/templates/chorus-collection.tmpl @@ -6,7 +6,6 @@ {{.DisplayTitle}}{{if not .SingleUser}} — {{.SiteName}}{{end}} - {{if .CustomCSS}}{{end}} {{if gt .CurrentPage 1}}{{end}} @@ -64,7 +63,7 @@ body#collection header nav.tabs a:first-child { {{template "user-navigation" .}} {{if .Silenced}} - {{template "user-silenced"}} + {{template "user-silenced" (dict "Tr" $.Tr)}} {{end}}

      {{.DisplayTitle}}

      @@ -121,14 +120,16 @@ body#collection header nav.tabs a:first-child { + {{ else }} -

      Automated update checks are disabled.

      -

      Installed version: {{.Version}} (release notes).

      -

      Learn about latest releases on the WriteFreely blog or forum.

      +

      {{call .Tr "Automated update checks are disabled."}}

      +

      {{call .Tr "Installed version: **%s** (%s)." true (variables .Version "release notes; .CurReleaseNotesURL") }}

      +

      {{call .Tr "Learn about latest releases on the %s or %s." true (variables "Writefreely blog;https://blog.writefreely.org/tag:release" "forum;https://discuss.write.as/c/writefreely/updates" )}}

      {{ end }} {{template "footer" .}} diff --git a/templates/user/admin/pages.tmpl b/templates/user/admin/pages.tmpl index 7a9e66a..a431c2e 100644 --- a/templates/user/admin/pages.tmpl +++ b/templates/user/admin/pages.tmpl @@ -10,18 +10,18 @@ table.classy.export .disabled, table.classy.export a {
      {{template "admin-header" .}} -

      Pages

      +

      {{call .Tr "Page" 2}}

      - - + + - + {{if .LocalTimeline}} - + {{end}} {{range .Pages}} diff --git a/templates/user/admin/users.tmpl b/templates/user/admin/users.tmpl index f6b218c..7393887 100644 --- a/templates/user/admin/users.tmpl +++ b/templates/user/admin/users.tmpl @@ -11,23 +11,24 @@

      {{end}}
      - {{.TotalUsers}} {{pluralize "user" "users" .TotalUsers}} - + Invite people + {{ $T := .TotalUsers }}{{ if eq .AppCfg.Lang "eu_ES" }}{{ $T = 1}}{{ end }} + {{.TotalUsers}} {{call .Tr "User" $T}} + + {{call .Tr "Invite people"}}
      PageLast Modified{{call .Tr "Page"}}{{call .Tr "last modified"}}
      Home{{call .Tr "Home"}}
      Reader{{call .Tr "Reader"}}
      - - - - + + + + {{range .Users}} - - - + + + {{end}}
      UserJoinedTypeStatus{{call .Tr "User"}}{{ if eq .AppCfg.Lang "eu_ES" }}a{{end}}{{call .Tr "joined"}}{{call .Tr "type"}}{{call .Tr "status"}}
      {{.Username}}{{.CreatedFriendly}}{{if .IsAdmin}}Admin{{else}}User{{end}}{{if .IsSilenced}}Silenced{{else}}Active{{end}}{{if .IsAdmin}}Admin{{else}}{{call $.Tr "User"}}{{ if eq $.AppCfg.Lang "eu_ES" }}a{{end}}{{end}}{{if .IsSilenced}}{{call $.Tr "Silenced"}}{{else}}{{call $.Tr "Active"}}{{end}}
      @@ -37,6 +38,7 @@
      + {{template "footer" .}} {{end}} diff --git a/templates/user/admin/view-page.tmpl b/templates/user/admin/view-page.tmpl index 161e40b..c909bd1 100644 --- a/templates/user/admin/view-page.tmpl +++ b/templates/user/admin/view-page.tmpl @@ -25,16 +25,16 @@ input[type=text] {
      {{template "admin-header" .}} -

      {{if eq .Content.ID "landing"}}Home page{{else}}{{.Content.ID}} page{{end}}

      +

      {{if eq .Content.ID "landing"}}{{call .Tr "Home"}} {{call .Tr "Page"}}{{else}}{{.Content.Title.String}} {{call .Tr "Page"}}{{end}}

      {{if eq .Content.ID "about"}} -

      Describe what your instance is about.

      +

      {{call .Tr "Describe what your instance is %s." true (variables "About;/about") }}

      {{else if eq .Content.ID "privacy"}} -

      Outline your privacy policy.

      +

      {{call .Tr "Outline your %s." true (variables "Privacy Policy;/privacy") }}

      {{else if eq .Content.ID "reader"}} -

      Customize your Reader page.

      +

      {{call .Tr "Customize your %s page." true (variables "Reader;/read") }}

      {{else if eq .Content.ID "landing"}} -

      Customize your home page.

      +

      {{call .Tr "Customize your %s page." true (variables "Home;/landing=1") }}

      {{end}} {{if .Message}}

      {{.Message}}

      {{end}} @@ -42,25 +42,25 @@ input[type=text] {
      {{if .Banner}} -

      We suggest a header (e.g. # Welcome), optionally followed by a small bit of text. Accepts Markdown and HTML.

      +

      {{call .Tr "We suggest a header (e.g. `# Welcome`), optionally followed by a small bit of text. Accepts Markdown and HTML." true}}

      {{else}} {{end}} -

      Accepts Markdown and HTML.

      +

      {{call .Tr "Accepts Markdown and HTML."}}

      - +
      @@ -68,7 +68,7 @@ input[type=text] { diff --git a/templates/user/admin/view-user.tmpl b/templates/user/admin/view-user.tmpl index dac88bf..495a322 100644 --- a/templates/user/admin/view-user.tmpl +++ b/templates/user/admin/view-user.tmpl @@ -43,102 +43,102 @@ input.copy-text {

      {{.User.Username}}

      {{if .NewPassword}}
      -

      This user's password has been reset to:

      +

      {{call .Tr "This user's password has been reset to:"}}

      -

      They can use this new password to log in to their account. This will only be shown once, so be sure to copy it and send it to them now.

      - {{if .ClearEmail}}

      Their email address is: {{.ClearEmail}}

      {{end}} +

      {{call .Tr "They can use this new password to log in to their account. **This will only be shown once**, so be sure to copy it and send it to them now." true}}

      + {{if .ClearEmail}}

      {{call .Tr "Their email address is:"}} {{.ClearEmail}}

      {{end}}
      {{end}} - + - - + + - + - - + + - + - - + + - + - +
      No.{{call .Tr "No."}} {{.User.ID}}
      Type{{if .User.IsAdmin}}Admin{{else}}User{{end}}{{call .Tr "type"}}{{if .User.IsAdmin}}Admin{{else}}{{call .Tr "User"}}{{ if eq .AppCfg.Lang "eu_ES" }}a{{end}}{{end}}
      Username{{call .Tr "Username"}} {{.User.Username}}
      Joined{{.User.CreatedFriendly}}{{call .Tr "joined"}}
      Total Posts{{call .Tr "total posts"}} {{.TotalPosts}}
      Last Post{{if .LastPost}}{{.LastPost}}{{else}}Never{{end}}{{call .Tr "last post"}}{{if .LastPost}}
      Status{{call .Tr "status"}} {{if .User.IsSilenced}} -

      Silenced

      - +

      {{call .Tr "Silenced"}}

      + {{else}} -

      Active

      - +

      {{call .Tr "Active"}}

      + {{end}}
      Password{{call .Tr "Password"}} {{if ne .Username .User.Username}}
      - +
      {{else}} - Change your password + {{call .Tr "Change your password"}} {{end}}
      -

      Blogs

      +

      {{call .Tr "Blog" 2}}

      {{range .Colls}}

      {{.Title}}

      - + - + - + - - + + - + - + - - + + {{if $.Config.Federation}} - + {{end}} @@ -146,38 +146,39 @@ input.copy-text { {{end}} {{ if not .User.IsAdmin }} -

      Incinerator

      +

      {{call .Tr "Incinerator"}}

      -

      Delete this user

      -

      Permanently erase all user data, with no way to recover it.

      +

      {{call .Tr "Delete this user"}}

      +

      {{call .Tr "Permanently erase all user data, with no way to recover it."}}

      - +
      {{end}} + -{{if eq (len .AnonymousPosts) 10}}

      Load more...

      {{end}} +{{if eq (len .AnonymousPosts) 10}}

      {{call .Tr "Load more..."}}

      {{end}} {{ else }}
      -

      Your anonymous and draft posts will show up here once you've published some. You'll be able to share them individually (without a blog) or move them to a blog when you're ready.

      - {{if not .SingleUser}}

      Alternatively, see your blogs and their posts on your Blogs page.

      {{end}} +

      {{call .Tr "Your anonymous and draft posts will show up here once you've published some. You'll be able to share them individually (without a blog) or move them to a blog when you're ready."}}

      + {{if not .SingleUser}}

      {{call .Tr "Alternatively, see your blogs and their posts on your %s page." true (variables true "Blog;/me/c/")}}

      {{end}} -

      Start writing

      {{ end }} +

      {{call .Tr "Start writing"}}

      {{ end }}
      - +
      @@ -68,16 +72,16 @@
      {{if gt (len .Collections) 1}}
      - {{range .Collections}}{{end}} - +
      {{else}} {{range .Collections}} - move to {{.DisplayTitle}} + {{call $.Tr "move to %s" (variables .DisplayTitle)}} {{end}} {{end}}
      diff --git a/templates/user/collection.tmpl b/templates/user/collection.tmpl index 9f16faa..3723eab 100644 --- a/templates/user/collection.tmpl +++ b/templates/user/collection.tmpl @@ -20,14 +20,14 @@ textarea.section.norm {
      {{if .Silenced}} - {{template "user-silenced"}} + {{template "user-silenced" (dict "Tr" $.Tr)}} {{end}} {{template "collection-breadcrumbs" .}} -

      Customize

      +

      {{(call .Tr "Customize")}}

      - {{template "collection-nav" (dict "Alias" .Alias "Path" .Path "SingleUser" .SingleUser)}} + {{template "collection-nav" (dict "Alias" .Alias "Path" .Path "SingleUser" .SingleUser "Tr" $.Tr)}} {{if .Flashes}}
        {{range .Flashes}}
      • {{.}}
      • {{end}} @@ -36,14 +36,14 @@ textarea.section.norm {
        -

        -

        +

        +

        URL

        - {{if eq .Alias .Username}}

        This blog uses your username in its URL{{if .Federation}} and fediverse handle{{end}}. You can change it in your Account Settings.

        {{end}} + {{if eq .Alias .Username}}

        {{if .Federation}}{{call .Tr "This blog uses your username in its URL and fediverse handle."}}{{else}}{{call .Tr "This blog uses your username in its URL."}}{{end}} {{call .Tr "You can change it in your %s." true (variables "Account Settings;/me/settings")}}

        {{end}}
        • {{.FriendlyHost}}/{{.Alias}}/ @@ -56,34 +56,34 @@ textarea.section.norm {
        -

        Publicity

        +

        {{call .Tr "Publicity"}}

        • -

          This blog is visible to {{if .Private}}any registered user on this instance{{else}}anyone with its link{{end}}.

          +

          {{if .Private}}{{call .Tr "This blog is visible to any registered user on this instance."}}{{else}}{{call .Tr "This blog is visible to anyone with its link."}}{{end}}

        • -

          Only you may read this blog (while you're logged in).

          +

          {{call .Tr "Only you may read this blog (while you're logged in)."}}

        • -

          A password is required to read this blog.

          +

          {{call .Tr "A password is required to read this blog."}}

        • {{if not .SingleUser}}
        • - {{if .LocalTimeline}}

          This blog is displayed on the public reader, and is visible to {{if .Private}}any registered user on this instance{{else}}anyone with its link{{end}}.

          - {{else}}

          The public reader is currently turned off for this community.

          {{end}} + {{if .LocalTimeline}}

          {{if .Private}}{{call .Tr "This blog is displayed on the public %s, and is visible to any registered user on this instance." true (variables "Reader;/read")}}{{else}}{{call .Tr "This blog is displayed on the public %s, and is visible to any registered user on this instance." true (variables "Reader;/read")}}{{end}}

          + {{else}}

          {{call .Tr "The public reader is currently turned off for this community."}}

          {{end}}
        • {{end}}
        @@ -91,37 +91,37 @@ textarea.section.norm {
        -

        Display Format

        +

        {{call .Tr "Display Format"}}

        -

        Customize how your posts display on your page. +

        {{call .Tr "Customize how your posts display on your page."}}

        • -

          Dates are shown. Latest posts listed first.

          +

          {{call .Tr "Dates are shown. Latest posts listed first."}}

        • -

          No dates shown. Oldest posts first.

          +

          {{call .Tr "No dates shown. Oldest posts first."}}

        • -

          No dates shown. Latest posts first.

          +

          {{call .Tr "No dates shown. Latest posts first."}}

        -

        Text Rendering

        +

        {{call .Tr "Text Rendering"}}

        -

        Customize how plain text renders on your blog.

        +

        {{call .Tr "Customize how plain text renders on your blog."}}

        -

        Custom CSS

        +

        {{call .Tr "Custom CSS"}}

        -

        See our guide on customization.

        +

        {{call .Tr "See our guide on %s." true (variables "customization;https://guides.write.as/customizing/#custom-css")}}

        -

        Post Signature

        +

        {{call .Tr "Post Signature"}}

        -

        This content will be added to the end of every post on this blog, as if it were part of the post itself. Markdown, HTML, and shortcodes are allowed.

        +

        {{call .Tr "This content will be added to the end of every post on this blog, as if it were part of the post itself. Markdown, HTML, and shortcodes are allowed."}}

        {{if .UserPage.StaticPage.AppCfg.Monetization}}
        -

        Web Monetization

        +

        {{call .Tr "Web Monetization"}}

        -

        Web Monetization enables you to receive micropayments from readers that have a Coil membership. Add your payment pointer to enable Web Monetization on your blog.

        +

        {{call .Tr "Web Monetization enables you to receive micropayments from readers that have a %s. Add your payment pointer to enable Web Monetization on your blog." true (variables "Coil membership;https://coil.com")}}

        {{end}}
        - -

        View Blog

        - {{if ne .Alias .Username}}

        Delete Blog...

        {{end}} + +

        {{call .Tr "View Blog"}}

        + {{if ne .Alias .Username}}

        {{call .Tr "Delete Blog..."}}

        {{end}}
        @@ -195,12 +195,12 @@ textarea.section.norm { H.getEl('cancel-delete').on('click', closeModals); var deleteBlog = function(e) { if (document.getElementById('confirm-text').value != '{{.Alias}}') { - document.getElementById('delete-errors').innerHTML = '
      • Enter {{.Alias}} in the box below.
      • '; + document.getElementById('delete-errors').innerHTML = '
      • {{call .Tr "Enter **%s** in the box below." true (variables .Alias)}}
      • '; return; } // Clear errors document.getElementById('delete-errors').innerHTML = ''; - document.getElementById('btn-delete').innerHTML = 'Deleting...'; + document.getElementById('btn-delete').innerHTML = {{call .Tr "Deleting..."}}; var http = new XMLHttpRequest(); var url = "/api/collections/{{.Alias}}?web=1"; @@ -213,7 +213,7 @@ var deleteBlog = function(e) { } else { var data = JSON.parse(http.responseText); document.getElementById('delete-errors').innerHTML = '
      • '+data.error_msg+'
      • '; - document.getElementById('btn-delete').innerHTML = 'Delete'; + document.getElementById('btn-delete').innerHTML = {{call .Tr "Delete"}}; } } }; @@ -231,7 +231,7 @@ function disableSubmit() { var $form = document.forms['customize-form']; createHidden($form, 'style_sheet', cssEditor.getSession().getValue()); var $btn = document.getElementById("save-changes"); - $btn.value = "Saving changes..."; + $btn.value = {{call .Tr "Saving changes..."}}; $btn.disabled = true; return true; } diff --git a/templates/user/collections.tmpl b/templates/user/collections.tmpl index f371ce0..ae4046c 100644 --- a/templates/user/collections.tmpl +++ b/templates/user/collections.tmpl @@ -8,9 +8,9 @@
      {{end}} {{if .Silenced}} - {{template "user-silenced"}} + {{template "user-silenced" (dict "Tr" $.Tr)}} {{end}} -

      Blogs

      +

      {{call .Tr "Blog" 2}}

        {{range $i, $el := .Collections}}
      • @@ -19,7 +19,7 @@ {{if .Title}}{{.Title}}{{else}}{{.Alias}}{{end}} {{if .IsPrivate}}private{{else}}{{.DisplayCanonicalURL}}{{end}} - {{template "collection-nav" (dict "Alias" .Alias "Path" $.Path "SingleUser" $.SingleUser "CanPost" true )}} + {{template "collection-nav" (dict "Alias" .Alias "Path" $.Path "SingleUser" $.SingleUser "CanPost" true "Tr" $.Tr)}} {{if .Description}}

        {{.Description}}

        {{end}}
        @@ -69,10 +69,10 @@ function createCollection() { if ($err === null) { var url = He.create('span'); url.className = "error"; - url.innerText = "This name is taken."; + url.innerText = {{call .Tr "This name is taken."}}; $createColl.appendChild(url); } else { - $err.innerText = "This name is taken."; + $err.innerText = {{call .Tr "This name is taken."}}; } } else { if ($err === null) { @@ -81,7 +81,7 @@ function createCollection() { url.innerText = data.error_msg; $createColl.appendChild(url); } else { - $err.innerText = "This name is taken."; + $err.innerText = {{call .Tr "This name is taken."}}; } } } diff --git a/templates/user/export.tmpl b/templates/user/export.tmpl index fee97d6..e9bf077 100644 --- a/templates/user/export.tmpl +++ b/templates/user/export.tmpl @@ -2,21 +2,21 @@ {{template "header" .}}
        -

        Export

        -

        Your data on {{.SiteName}} is always free. Download and back-up your work any time.

        +

        {{call .Tr "Export"}}

        +

        {{call .Tr "Your data on %s is always free. Download and back-up your work any time." (variables .SiteName)}}

      Alias{{call $.Tr "Alias"}} {{.Alias}}
      Title{{call $.Tr "Title"}} {{.Title}}
      Description{{call $.Tr "Description"}} {{.Description}}
      Visibility{{.FriendlyVisibility}}{{call $.Tr "Visibility"}}{{call $.Tr .FriendlyVisibility}}
      Views{{call $.Tr "View" 2}} {{.Views}}
      Posts{{call $.Tr "Post" 2}} {{.TotalPosts}}
      Last Post{{if .LastPost}}{{.LastPost}}{{else}}Never{{end}}{{call $.Tr "last post"}}{{if .LastPost}}
      Fediverse Followers{{call $.Tr "Fediverse followers"}} {{.Followers}}
      - - + + - + - + diff --git a/templates/user/import.tmpl b/templates/user/import.tmpl index 547d3dd..b60e11a 100644 --- a/templates/user/import.tmpl +++ b/templates/user/import.tmpl @@ -14,7 +14,7 @@
      -

      Import posts

      +

      {{call .Tr "Import posts"}}

      {{if .Message}}

      {{.Message}}

      @@ -25,20 +25,20 @@ {{range .Flashes}}
    • {{.}}
    • {{end}} {{end}} -

      Publish plain text or Markdown files to your account by uploading them below.

      +

      {{call .Tr "Publish plain text or Markdown files to your account by uploading them below."}}

      -
      diff --git a/templates/user/include/footer.tmpl b/templates/user/include/footer.tmpl index a2fe989..49fb048 100644 --- a/templates/user/include/footer.tmpl +++ b/templates/user/include/footer.tmpl @@ -8,10 +8,10 @@
      ExportFormat{{call .Tr "Export"}}{{call .Tr "Format"}}
      Posts{{call .Tr "Post" 2}}

      CSV

      TXT

      User + Blogs + Posts{{call .Tr "User"}} + {{call .Tr "Blog" 2}} + {{call .Tr "Post" 2}}

      JSON

      Prettified

      - - - + + + {{range .Invites}} - + {{else}} - + {{end}}
      LinkUsesExpires{{call .Tr "Link"}}{{call .Tr "use" 2}}{{call .Tr "Expires"}}
      {{$.Host}}/invite/{{.ID}} {{.Uses}}{{if gt .MaxUses.Int64 0}} / {{.MaxUses.Int64}}{{end}}{{ if .Expires }}{{if .Expired}}Expired{{else}}{{.ExpiresFriendly}}{{end}}{{ else }}∞{{ end }}{{ if .Expires }}{{if .Expired}}{{call .Tr "Expired"}}{{else}}{{.ExpiresFriendly}}{{end}}{{ else }}∞{{ end }}
      No invites generated yet.{{call .Tr "No invites generated yet."}}
      diff --git a/templates/user/settings.tmpl b/templates/user/settings.tmpl index 338ea9a..9a9a74b 100644 --- a/templates/user/settings.tmpl +++ b/templates/user/settings.tmpl @@ -22,28 +22,28 @@ h3 { font-weight: normal; }
      {{if .Silenced}} - {{template "user-silenced"}} + {{template "user-silenced" (dict "Tr" $.Tr)}} {{end}} -

      {{if .IsLogOut}}Before you go...{{else}}Account Settings{{end}}

      +

      {{if .IsLogOut}}{{call .Tr "Before you go..."}}{{else}}{{call .Tr "Account Settings"}}{{end}}

      {{if .Flashes}}
        {{range .Flashes}}
      • {{.}}
      • {{end}}
      {{end}} {{ if .IsLogOut }}
      -

      Please add an email address and/or passphrase so you can log in again later.

      +

      {{call .Tr "Please add an **%s** and/or **%s** so you can log in again later." true (variables "email address" "passphrase")}}

      {{ else }}
      -

      Change your account settings here.

      +

      {{call .Tr "Change your account settings here."}}

      -

      Username

      +

      {{call .Tr "Username"}}

      - +
      @@ -53,32 +53,32 @@ h3 { font-weight: normal; }
      -

      Passphrase

      +

      {{call .Tr "Passphrase"}}

      - {{if and (not .HasPass) (not .IsLogOut)}}

      Add a passphrase to easily log in to your account.

      {{end}} - {{if .HasPass}}

      Current passphrase

      - -

      New passphrase

      + {{if and (not .HasPass) (not .IsLogOut)}}

      {{call .Tr "Add a passphrase to easily log in to your account."}}

      {{end}} + {{if .HasPass}}

      {{call .Tr "Current passphrase"}}

      + +

      {{call .Tr "New passphrase"}}

      {{end}} {{if .IsLogOut}}{{end}} - +
      -

      Email

      +

      {{call .Tr "Email"}}

      - {{if and (not .Email) (not .IsLogOut)}}

      Add your email to get:

      + {{if and (not .Email) (not .IsLogOut)}}

      {{call .Tr "Add your email to get:"}}

        -
      • No-passphrase login
      • -
      • Account recovery if you forget your passphrase
      • +
      • {{call .Tr "No-passphrase login"}}
      • +
      • {{call .Tr "Account recovery if you forget your passphrase"}}
      {{end}} - +
      - +
      {{end}} @@ -86,8 +86,8 @@ h3 { font-weight: normal; } {{ if .OauthSection }} {{ if .OauthAccounts }}
      -

      Linked Accounts

      -

      These are your linked external accounts.

      +

      {{call .Tr "Linked Accounts"}}

      +

      {{call .Tr "These are your linked external accounts."}}

      {{ range $oauth_account := .OauthAccounts }}
      @@ -111,14 +111,14 @@ h3 { font-weight: normal; } {{ end }} {{ if or .OauthSlack .OauthWriteAs .OauthGitLab .OauthGeneric .OauthGitea }}
      -

      Link External Accounts

      -

      Connect additional accounts to enable logging in with those providers, instead of using your username and password.

      +

      {{call .Tr "Link External Accounts"}}

      +

      {{call .Tr "Connect additional accounts to enable logging in with those providers, instead of using your username and password."}}

      {{ if .OauthWriteAs }} {{ end }} @@ -126,7 +126,7 @@ h3 { font-weight: normal; } {{ end }} @@ -134,7 +134,7 @@ h3 { font-weight: normal; } {{ end }} @@ -142,14 +142,14 @@ h3 { font-weight: normal; } {{ end }} {{ if .OauthGeneric }} {{ end }} @@ -159,24 +159,24 @@ h3 { font-weight: normal; } {{ end }} {{ if and .OpenDeletion (not .IsAdmin) }} -

      Incinerator

      +

      {{call .Tr "Incinerator"}}

      -

      Delete your account

      -

      Permanently erase all your data, with no way to recover it.

      +

      {{call .Tr "Delete your account"}}

      +

      {{call .Tr "Permanently erase all your data, with no way to recover it."}}

      - +
      {{end}}
      @@ -222,7 +222,7 @@ for (var i=0; i diff --git a/templates/user/stats.tmpl b/templates/user/stats.tmpl index 0791f77..b59063b 100644 --- a/templates/user/stats.tmpl +++ b/templates/user/stats.tmpl @@ -18,24 +18,24 @@ td.none {
      {{if .Silenced}} - {{template "user-silenced"}} + {{template "user-silenced" (dict "Tr" $.Tr)}} {{end}} {{template "collection-breadcrumbs" .}} -

      Stats

      +

      {{call .Tr "Stats"}}

      {{if .Collection}} - {{template "collection-nav" (dict "Alias" .Collection.Alias "Path" .Path "SingleUser" .SingleUser)}} + {{template "collection-nav" (dict "Alias" .Collection.Alias "Path" .Path "SingleUser" .SingleUser "Tr" .Tr)}} {{end}} -

      Stats for all time.

      +

      {{call .Tr "Stats for all time."}}

      {{if .Federation}} -

      Fediverse stats

      +

      {{call .Tr "Fediverse stats"}}

      - + @@ -43,16 +43,16 @@ td.none {
      Followers{{call .Tr "Followers"}}
      {{.APFollowers}}
      {{end}} -

      Top {{len .TopPosts}} posts

      +

      {{call .Tr "Top %d post" (len .TopPosts) (variables (len .TopPosts))}}

      - - {{if not .Collection}}{{end}} - + + {{if not .Collection}}{{end}} + {{range .TopPosts}} - - {{ if not $.Collection }}{{ end }} + + {{ if not $.Collection }}{{ end }} {{end}}
      PostBlogTotal Views{{call .Tr "Post"}}{{call .Tr "Blog"}}{{call .Tr "Total Views"}}
      {{if ne .DisplayTitle ""}}{{.DisplayTitle}}{{else}}{{.ID}}{{end}}{{if .Collection}}{{.Collection.Title}}{{else}}Draft{{end}}{{if ne .Title.String ""}}{{.Title.String}}{{else}}{{.ID}}{{end}}{{if .Collection}}{{.Collection.Title}}{{else}}{{call .Tr "Draft"}}{{end}}{{.ViewCount}}