From 4e3d596bee1cee2c4146265eb6ac827f09820c53 Mon Sep 17 00:00:00 2001 From: shtrophic Date: Mon, 20 Jan 2025 19:43:42 +0100 Subject: add xs_smtp_request --- activitypub.c | 48 +++++++++++++++++++----------------------------- data.c | 2 +- xs_curl.h | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/activitypub.c b/activitypub.c index 8b44dc8..ca5cc3e 100644 --- a/activitypub.c +++ b/activitypub.c @@ -962,17 +962,20 @@ void notify(snac *snac, const char *type, const char *utype, const char *actor, xs *subject = xs_fmt("snac notify for @%s@%s", xs_dict_get(snac->config, "uid"), xs_dict_get(srv_config, "host")); - xs *from = xs_fmt("snac-daemon ", xs_dict_get(srv_config, "host")); + xs *from = xs_fmt("", xs_dict_get(srv_config, "host")); xs *header = xs_fmt( - "From: %s\n" + "From: snac-daemon %s\n" "To: %s\n" "Subject: %s\n" "\n", from, email, subject); - xs *email_body = xs_fmt("%s%s", header, body); + xs_dict *mailinfo = xs_dict_new(); + xs_dict_append(mailinfo, "from", from); + xs_dict_append(mailinfo, "to", email); + xs_dict_append(mailinfo, "body", xs_fmt("%s%s", header, body)); - enqueue_email(email_body, 0); + enqueue_email(mailinfo, 0); } /* telegram */ @@ -2461,32 +2464,19 @@ int process_input_message(snac *snac, const xs_dict *msg, const xs_dict *req) } -int send_email(const char *msg) +int send_email(const xs_dict *mailinfo) /* invoke sendmail with email headers and body in msg */ { - FILE *f; - int status; - int fds[2]; - pid_t pid; - if (pipe(fds) == -1) return -1; - pid = vfork(); - if (pid == -1) return -1; - else if (pid == 0) { - dup2(fds[0], 0); - close(fds[0]); - close(fds[1]); - execl("/usr/sbin/sendmail", "sendmail", "-t", (char *) NULL); - _exit(1); - } - close(fds[0]); - if ((f = fdopen(fds[1], "w")) == NULL) { - close(fds[1]); - return -1; - } - fprintf(f, "%s\n", msg); - fclose(f); - if (waitpid(pid, &status, 0) == -1) return -1; - return status; + const xs_dict *smtp_cfg = xs_dict_get(srv_config, "smtp"); + const char + *url = xs_dict_get(smtp_cfg, "url"), + *user = xs_dict_get(smtp_cfg, "username"), + *pass = xs_dict_get(smtp_cfg, "password"), + *from = xs_dict_get(mailinfo, "from"), + *to = xs_dict_get(mailinfo, "to"), + *body = xs_dict_get(mailinfo, "body"); + + return xs_smtp_request(url, user, pass, from, to, body); } @@ -2749,7 +2739,7 @@ void process_queue_item(xs_dict *q_item) else if (strcmp(type, "email") == 0) { /* send this email */ - const xs_str *msg = xs_dict_get(q_item, "message"); + const xs_dict *msg = xs_dict_get(q_item, "message"); int retries = xs_number_get(xs_dict_get(q_item, "retries")); if (!send_email(msg)) diff --git a/data.c b/data.c index 33947ff..b148ac7 100644 --- a/data.c +++ b/data.c @@ -3195,7 +3195,7 @@ void enqueue_output_by_actor(snac *snac, const xs_dict *msg, } -void enqueue_email(const xs_str *msg, int retries) +void enqueue_email(const xs_dict *msg, int retries) /* enqueues an email message to be sent */ { xs *qmsg = _new_qmsg("email", msg, retries); diff --git a/xs_curl.h b/xs_curl.h index f0cfd98..886aee0 100644 --- a/xs_curl.h +++ b/xs_curl.h @@ -9,6 +9,9 @@ xs_dict *xs_http_request(const char *method, const char *url, const xs_str *body, int b_size, int *status, xs_str **payload, int *p_size, int timeout); +int xs_smtp_request(const char *url, const char *user, const char *pass, + const char *from, const char *to, const xs_str *body); + #ifdef XS_IMPLEMENTATION #include @@ -194,6 +197,39 @@ xs_dict *xs_http_request(const char *method, const char *url, return response; } +int xs_smtp_request(const char *url, const char *user, const char *pass, + const char *from, const char *to, const xs_str *body) +{ + CURL *curl; + CURLcode res = CURLE_OK; + struct curl_slist *rcpt = NULL; + struct _payload_data pd = { + .data = (char *)body, + .size = xs_size(body), + .offset = 0 + }; + + curl = curl_easy_init(); + + curl_easy_setopt(curl, CURLOPT_URL, url); + curl_easy_setopt(curl, CURLOPT_USERNAME, user); + curl_easy_setopt(curl, CURLOPT_PASSWORD, pass); + + curl_easy_setopt(curl, CURLOPT_MAIL_FROM, from); + curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, rcpt = curl_slist_append(rcpt, to)); + + curl_easy_setopt(curl, CURLOPT_READDATA, &pd); + curl_easy_setopt(curl, CURLOPT_READFUNCTION, _post_callback); + curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); + + res = curl_easy_perform(curl); + + curl_slist_free_all(rcpt); + curl_easy_cleanup(curl); + + return (int)res; +} + #endif /* XS_IMPLEMENTATION */ #endif /* _XS_CURL_H */ -- cgit v1.2.3 From 4c1a2d24d374d00c656c4489db7d28f80d64f9dc Mon Sep 17 00:00:00 2001 From: shtrophic Date: Mon, 20 Jan 2025 22:59:30 +0100 Subject: add port parsing for sandboxing --- activitypub.c | 4 ++-- sandbox.c | 31 +++++++++++++++---------------- snac.h | 1 + utils.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 18 deletions(-) diff --git a/activitypub.c b/activitypub.c index ca5cc3e..e5fc715 100644 --- a/activitypub.c +++ b/activitypub.c @@ -2465,9 +2465,9 @@ int process_input_message(snac *snac, const xs_dict *msg, const xs_dict *req) int send_email(const xs_dict *mailinfo) -/* invoke sendmail with email headers and body in msg */ +/* invoke curl */ { - const xs_dict *smtp_cfg = xs_dict_get(srv_config, "smtp"); + const xs_dict *smtp_cfg = xs_dict_get(srv_config, "email_notifications"); const char *url = xs_dict_get(smtp_cfg, "url"), *user = xs_dict_get(smtp_cfg, "username"), diff --git a/sandbox.c b/sandbox.c index cbe0043..875ae4e 100644 --- a/sandbox.c +++ b/sandbox.c @@ -8,8 +8,6 @@ void sbox_enter(const char *basedir) { const char *address = xs_dict_get(srv_config, "address"); - int smail = !xs_is_true(xs_dict_get(srv_config, "disable_email_notifications")); - if (xs_is_true(xs_dict_get(srv_config, "disable_openbsd_security"))) { srv_log(xs_dup("OpenBSD security disabled by admin")); return; @@ -24,9 +22,6 @@ void sbox_enter(const char *basedir) unveil("/etc/ssl/cert.pem", "r"); unveil("/usr/share/zoneinfo", "r"); - if (smail) - unveil("/usr/sbin/sendmail", "x"); - if (*address == '/') unveil(address, "rwc"); @@ -36,9 +31,6 @@ void sbox_enter(const char *basedir) xs *p = xs_str_new("stdio rpath wpath cpath flock inet proc dns fattr"); - if (smail) - p = xs_str_cat(p, " exec"); - if (*address == '/') p = xs_str_cat(p, " unix"); @@ -55,7 +47,7 @@ void sbox_enter(const char *basedir) #include "landloc.h" static -LL_BEGIN(sbox_enter_linux_, const char* basedir, const char *address, int smail) { +LL_BEGIN(sbox_enter_linux_, const char* basedir, const char *address, int smtp_port) { const unsigned long long rd = LANDLOCK_ACCESS_FS_READ_DIR, @@ -94,9 +86,6 @@ LL_BEGIN(sbox_enter_linux_, const char* basedir, const char *address, int smail) LL_PATH(sdir, s); } - if (smail && mtime("/usr/sbin/sendmail") > 0) - LL_PATH("/usr/sbin/sendmail", x); - if (*address != '/') { unsigned short listen_port = xs_number_get(xs_dict_get(srv_config, "port")); LL_PORT(listen_port, LANDLOCK_ACCESS_NET_BIND_TCP_COMPAT); @@ -104,24 +93,34 @@ LL_BEGIN(sbox_enter_linux_, const char* basedir, const char *address, int smail) LL_PORT(80, LANDLOCK_ACCESS_NET_CONNECT_TCP_COMPAT); LL_PORT(443, LANDLOCK_ACCESS_NET_CONNECT_TCP_COMPAT); + if (smtp_port > 0) + LL_PORT((unsigned short)smtp_port, LANDLOCK_ACCESS_NET_CONNECT_TCP_COMPAT); } LL_END void sbox_enter(const char *basedir) { + const xs_val *v; + const char *errstr; const char *address = xs_dict_get(srv_config, "address"); - - int smail = !xs_is_true(xs_dict_get(srv_config, "disable_email_notifications")); + int smtp_port = -1; if (xs_is_true(xs_dict_get(srv_config, "disable_sandbox"))) { srv_debug(1, xs_dup("Linux sandbox disabled by admin")); return; } - if (sbox_enter_linux_(basedir, address, smail) == 0) + if ((v = xs_dict_get(srv_config, "email_notifications")) && + (v = xs_dict_get(v, "url"))) { + smtp_port = parse_port((const char *)v, &errstr); + if (errstr) + srv_debug(0, xs_fmt("Couldn't determine port from '%s': %s", (const char *)v, errstr)); + } + + if (sbox_enter_linux_(basedir, address, smtp_port) == 0) srv_debug(1, xs_dup("Linux sandbox enabled")); else - srv_debug(1, xs_dup("Linux sandbox failed")); + srv_debug(0, xs_dup("Linux sandbox failed")); } #else /* defined(WITH_LINUX_SANDBOX) */ diff --git a/snac.h b/snac.h index 65ece5d..3db7b63 100644 --- a/snac.h +++ b/snac.h @@ -417,6 +417,7 @@ void import_blocked_accounts_csv(snac *user, const char *fn); void import_following_accounts_csv(snac *user, const char *fn); void import_list_csv(snac *user, const char *fn); void import_csv(snac *user); +int parse_port(const char *url, const char **errstr); typedef enum { #define HTTP_STATUS(code, name, text) HTTP_STATUS_ ## name = code, diff --git a/utils.c b/utils.c index a5b1124..3b0a78f 100644 --- a/utils.c +++ b/utils.c @@ -904,3 +904,55 @@ void import_csv(snac *user) else snac_log(user, xs_fmt("Cannot open file %s", fn)); } + +static const struct { + const char *proto; + unsigned short default_port; +} FALLBACK_PORTS[] = { + /* caution: https > http, smpts > smtp */ + {"https", 443}, + {"http", 80}, + {"smtps", 465}, + {"smtp", 25} +}; + +int parse_port(const char *url, const char **errstr) +{ + const char *col, *rcol; + int tmp, ret = -1; + + if (errstr) + *errstr = NULL; + + if (!(col = strchr(url, ':'))) { + if (errstr) + *errstr = "bad url"; + return -1; + } + + for (size_t i = 0; i < sizeof(FALLBACK_PORTS) / sizeof(*FALLBACK_PORTS); ++i) { + if (memcmp(url, FALLBACK_PORTS[i].proto, strlen(FALLBACK_PORTS[i].proto)) == 0) { + ret = FALLBACK_PORTS[i].default_port; + break; + } + } + + if (!(rcol = strchr(col + 1, ':'))) + rcol = col; + + if (rcol) { + tmp = atoi(rcol + 1); + if (tmp == 0) { + if (ret != -1) + return ret; + + *errstr = strerror(errno); + return -1; + } + + return tmp; + } + + *errstr = "unknown protocol"; + return -1; +} -- cgit v1.2.3 From 13e4a7cda59db29063efc5dad0823fe99ec7b764 Mon Sep 17 00:00:00 2001 From: shtrophic Date: Mon, 20 Jan 2025 23:03:27 +0100 Subject: fix memory leak --- activitypub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activitypub.c b/activitypub.c index e5fc715..2b10435 100644 --- a/activitypub.c +++ b/activitypub.c @@ -970,7 +970,7 @@ void notify(snac *snac, const char *type, const char *utype, const char *actor, "\n", from, email, subject); - xs_dict *mailinfo = xs_dict_new(); + xs *mailinfo = xs_dict_new(); xs_dict_append(mailinfo, "from", from); xs_dict_append(mailinfo, "to", email); xs_dict_append(mailinfo, "body", xs_fmt("%s%s", header, body)); -- cgit v1.2.3 From 1c4c15540360a5db9d56e6ae8d206a1f30a4f52b Mon Sep 17 00:00:00 2001 From: shtrophic Date: Fri, 24 Jan 2025 21:00:16 +0100 Subject: add tests subdirectory with makefile target --- Makefile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 75d9562..764456d 100644 --- a/Makefile +++ b/Makefile @@ -8,11 +8,16 @@ snac: snac.o main.o sandbox.o data.o http.o httpd.o webfinger.o \ activitypub.o html.o utils.o format.o upgrade.o mastoapi.o $(CC) $(CFLAGS) -L$(PREFIX)/lib *.o -lcurl -lcrypto $(LDFLAGS) -pthread -o $@ +test: tests/smtp + +tests/smtp: tests/smtp.o + $(CC) $(CFLAGS) -L$(PREFIX)/lib $< -lcurl $(LDFLAGS) -o $@ + .c.o: - $(CC) $(CFLAGS) $(CPPFLAGS) -I$(PREFIX)/include -c $< + $(CC) $(CFLAGS) $(CPPFLAGS) -I$(PREFIX)/include -c $< -o $@ clean: - rm -rf *.o *.core snac makefile.depend + rm -rf *.o tests/*.o tests/smtp *.core snac makefile.depend dep: $(CC) -I$(PREFIX)/include -MM *.c > makefile.depend @@ -64,3 +69,4 @@ utils.o: utils.c xs.h xs_io.h xs_json.h xs_time.h xs_openssl.h \ xs_random.h xs_glob.h xs_curl.h xs_regex.h snac.h http_codes.h webfinger.o: webfinger.c xs.h xs_json.h xs_curl.h xs_mime.h snac.h \ http_codes.h +tests/smtp.o: tests/smtp.c xs.h xs_curl.h -- cgit v1.2.3 From 3d96c576287736ebdf87e4a7b956842a6c6e055f Mon Sep 17 00:00:00 2001 From: shtrophic Date: Fri, 24 Jan 2025 22:24:05 +0100 Subject: enforce tls when supported && add tests --- .gitignore | 3 ++- activitypub.c | 3 ++- tests/smtp.c | 24 ++++++++++++++++++++++++ utils.c | 9 +++++++-- xs_curl.h | 22 ++++++++++++++++------ 5 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 tests/smtp.c diff --git a/.gitignore b/.gitignore index 7ead966..6ebb150 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -*.o +**/*.o +tests/smtp snac diff --git a/activitypub.c b/activitypub.c index 4cb779a..f3b2bae 100644 --- a/activitypub.c +++ b/activitypub.c @@ -2538,8 +2538,9 @@ int send_email(const xs_dict *mailinfo) *from = xs_dict_get(mailinfo, "from"), *to = xs_dict_get(mailinfo, "to"), *body = xs_dict_get(mailinfo, "body"); + int smtp_port = parse_port(url, NULL); - return xs_smtp_request(url, user, pass, from, to, body); + return xs_smtp_request(url, user, pass, from, to, body, smtp_port == 465 || smtp_port == 587); } diff --git a/tests/smtp.c b/tests/smtp.c new file mode 100644 index 0000000..1100a9d --- /dev/null +++ b/tests/smtp.c @@ -0,0 +1,24 @@ +/* snac - A simple, minimalistic ActivityPub instance */ +/* copyright (c) 2022 - 2025 grunfink et al. / MIT license */ + +#define XS_IMPLEMENTATION +#include "../xs.h" +#include "../xs_curl.h" + +#define FROM "" + +int main(void) { + xs *to = xs_fmt("<%s@localhost>", getenv("USER")), + *body = xs_fmt("" + "To: %s \r\n" + "From: " FROM "\r\n" + "Subject: snac smtp test\r\n" + "\r\n" + "If you read this as an email, it probably worked!\r\n", + to); + + return xs_smtp_request("smtp://localhost", NULL, NULL, + FROM, + to, + body, 0); +} \ No newline at end of file diff --git a/utils.c b/utils.c index faf6d12..dbf798a 100644 --- a/utils.c +++ b/utils.c @@ -931,6 +931,7 @@ int parse_port(const char *url, const char **errstr) if (!(col = strchr(url, ':'))) { if (errstr) *errstr = "bad url"; + return -1; } @@ -950,13 +951,17 @@ int parse_port(const char *url, const char **errstr) if (ret != -1) return ret; - *errstr = strerror(errno); + if (errstr) + *errstr = strerror(errno); + return -1; } return tmp; } - *errstr = "unknown protocol"; + if (errstr) + *errstr = "unknown protocol"; + return -1; } diff --git a/xs_curl.h b/xs_curl.h index 886aee0..d98ac4c 100644 --- a/xs_curl.h +++ b/xs_curl.h @@ -10,7 +10,8 @@ xs_dict *xs_http_request(const char *method, const char *url, xs_str **payload, int *p_size, int timeout); int xs_smtp_request(const char *url, const char *user, const char *pass, - const char *from, const char *to, const xs_str *body); + const char *from, const char *to, const xs_str *body, + int use_ssl); #ifdef XS_IMPLEMENTATION @@ -198,7 +199,8 @@ xs_dict *xs_http_request(const char *method, const char *url, } int xs_smtp_request(const char *url, const char *user, const char *pass, - const char *from, const char *to, const xs_str *body) + const char *from, const char *to, const xs_str *body, + int use_ssl) { CURL *curl; CURLcode res = CURLE_OK; @@ -212,11 +214,19 @@ int xs_smtp_request(const char *url, const char *user, const char *pass, curl = curl_easy_init(); curl_easy_setopt(curl, CURLOPT_URL, url); - curl_easy_setopt(curl, CURLOPT_USERNAME, user); - curl_easy_setopt(curl, CURLOPT_PASSWORD, pass); + if (user && pass) { + /* allow authless connections, to, e.g. localhost */ + curl_easy_setopt(curl, CURLOPT_USERNAME, user); + curl_easy_setopt(curl, CURLOPT_PASSWORD, pass); + } + + if (use_ssl) + curl_easy_setopt(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_ALL); curl_easy_setopt(curl, CURLOPT_MAIL_FROM, from); - curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, rcpt = curl_slist_append(rcpt, to)); + + rcpt = curl_slist_append(rcpt, to); + curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, rcpt); curl_easy_setopt(curl, CURLOPT_READDATA, &pd); curl_easy_setopt(curl, CURLOPT_READFUNCTION, _post_callback); @@ -224,8 +234,8 @@ int xs_smtp_request(const char *url, const char *user, const char *pass, res = curl_easy_perform(curl); - curl_slist_free_all(rcpt); curl_easy_cleanup(curl); + curl_slist_free_all(rcpt); return (int)res; } -- cgit v1.2.3 From 2ca7735779e79dbe6fe62f0111a12c145f428d8f Mon Sep 17 00:00:00 2001 From: shtrophic Date: Wed, 19 Feb 2025 08:56:14 +0100 Subject: fix ownership-problem of mailinfo --- activitypub.c | 2 +- data.c | 5 +++-- snac.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/activitypub.c b/activitypub.c index e2519e6..a91821d 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1025,7 +1025,7 @@ void notify(snac *snac, const char *type, const char *utype, const char *actor, "\n", from, email, subject); - xs *mailinfo = xs_dict_new(); + xs_dict *mailinfo = xs_dict_new(); xs_dict_append(mailinfo, "from", from); xs_dict_append(mailinfo, "to", email); xs_dict_append(mailinfo, "body", xs_fmt("%s%s", header, body)); diff --git a/data.c b/data.c index ae85aaf..d25a5d7 100644 --- a/data.c +++ b/data.c @@ -3174,7 +3174,7 @@ static xs_dict *_enqueue_put(const char *fn, xs_dict *msg) } -static xs_dict *_new_qmsg(const char *type, const xs_val *msg, int retries) +static xs_dict *_new_qmsg(const char *type, xs_dict *msg, int retries) /* creates a queue message */ { int qrt = xs_number_get(xs_dict_get(srv_config, "queue_retry_minutes")); @@ -3276,9 +3276,10 @@ void enqueue_output_by_actor(snac *snac, const xs_dict *msg, } -void enqueue_email(const xs_dict *msg, int retries) +void enqueue_email(xs_dict *msg, int retries) /* enqueues an email message to be sent */ { + /* qmsg owns msg */ xs *qmsg = _new_qmsg("email", msg, retries); const char *ntid = xs_dict_get(qmsg, "ntid"); xs *fn = xs_fmt("%s/queue/%s.json", srv_basedir, ntid); diff --git a/snac.h b/snac.h index 92ffb3f..545df74 100644 --- a/snac.h +++ b/snac.h @@ -274,7 +274,7 @@ void enqueue_output(snac *snac, const xs_dict *msg, const xs_str *inbox, int retries, int p_status); void enqueue_output_by_actor(snac *snac, const xs_dict *msg, const xs_str *actor, int retries); -void enqueue_email(const xs_str *msg, int retries); +void enqueue_email(xs_dict *msg, int retries); void enqueue_telegram(const xs_str *msg, const char *bot, const char *chat_id); void enqueue_ntfy(const xs_str *msg, const char *ntfy_server, const char *ntfy_token); void enqueue_message(snac *snac, const xs_dict *msg); -- cgit v1.2.3 From 59a34a9646e28cc9a63194ff55547de0005d0110 Mon Sep 17 00:00:00 2001 From: shtrophic Date: Thu, 20 Feb 2025 17:13:12 +0100 Subject: Revert "fix ownership-problem of mailinfo" This reverts commit 2ca7735779e79dbe6fe62f0111a12c145f428d8f. --- activitypub.c | 2 +- data.c | 5 ++--- snac.h | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/activitypub.c b/activitypub.c index a91821d..e2519e6 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1025,7 +1025,7 @@ void notify(snac *snac, const char *type, const char *utype, const char *actor, "\n", from, email, subject); - xs_dict *mailinfo = xs_dict_new(); + xs *mailinfo = xs_dict_new(); xs_dict_append(mailinfo, "from", from); xs_dict_append(mailinfo, "to", email); xs_dict_append(mailinfo, "body", xs_fmt("%s%s", header, body)); diff --git a/data.c b/data.c index d25a5d7..ae85aaf 100644 --- a/data.c +++ b/data.c @@ -3174,7 +3174,7 @@ static xs_dict *_enqueue_put(const char *fn, xs_dict *msg) } -static xs_dict *_new_qmsg(const char *type, xs_dict *msg, int retries) +static xs_dict *_new_qmsg(const char *type, const xs_val *msg, int retries) /* creates a queue message */ { int qrt = xs_number_get(xs_dict_get(srv_config, "queue_retry_minutes")); @@ -3276,10 +3276,9 @@ void enqueue_output_by_actor(snac *snac, const xs_dict *msg, } -void enqueue_email(xs_dict *msg, int retries) +void enqueue_email(const xs_dict *msg, int retries) /* enqueues an email message to be sent */ { - /* qmsg owns msg */ xs *qmsg = _new_qmsg("email", msg, retries); const char *ntid = xs_dict_get(qmsg, "ntid"); xs *fn = xs_fmt("%s/queue/%s.json", srv_basedir, ntid); diff --git a/snac.h b/snac.h index 545df74..92ffb3f 100644 --- a/snac.h +++ b/snac.h @@ -274,7 +274,7 @@ void enqueue_output(snac *snac, const xs_dict *msg, const xs_str *inbox, int retries, int p_status); void enqueue_output_by_actor(snac *snac, const xs_dict *msg, const xs_str *actor, int retries); -void enqueue_email(xs_dict *msg, int retries); +void enqueue_email(const xs_str *msg, int retries); void enqueue_telegram(const xs_str *msg, const char *bot, const char *chat_id); void enqueue_ntfy(const xs_str *msg, const char *ntfy_server, const char *ntfy_token); void enqueue_message(snac *snac, const xs_dict *msg); -- cgit v1.2.3 From b50631c0f7253e35310a14012e4fa9432aedfb5a Mon Sep 17 00:00:00 2001 From: shtrophic Date: Thu, 20 Feb 2025 17:16:16 +0100 Subject: duplicate dict instead --- data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data.c b/data.c index ae85aaf..a84cb8d 100644 --- a/data.c +++ b/data.c @@ -3279,7 +3279,7 @@ void enqueue_output_by_actor(snac *snac, const xs_dict *msg, void enqueue_email(const xs_dict *msg, int retries) /* enqueues an email message to be sent */ { - xs *qmsg = _new_qmsg("email", msg, retries); + xs *qmsg = _new_qmsg("email", xs_dup(msg), retries); const char *ntid = xs_dict_get(qmsg, "ntid"); xs *fn = xs_fmt("%s/queue/%s.json", srv_basedir, ntid); -- cgit v1.2.3 From d19fe4157ced8789e43b7c061b11fcc7baf91c78 Mon Sep 17 00:00:00 2001 From: shtrophic Date: Thu, 20 Feb 2025 18:15:48 +0100 Subject: use xs_dict_append correctly --- activitypub.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/activitypub.c b/activitypub.c index e2519e6..a209abd 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1026,9 +1026,9 @@ void notify(snac *snac, const char *type, const char *utype, const char *actor, from, email, subject); xs *mailinfo = xs_dict_new(); - xs_dict_append(mailinfo, "from", from); - xs_dict_append(mailinfo, "to", email); - xs_dict_append(mailinfo, "body", xs_fmt("%s%s", header, body)); + mailinfo = xs_dict_append(mailinfo, "from", from); + mailinfo = xs_dict_append(mailinfo, "to", email); + mailinfo = xs_dict_append(mailinfo, "body", xs_fmt("%s%s", header, body)); enqueue_email(mailinfo, 0); } -- cgit v1.2.3 From ff06e7e3e019f5f960bc6875d1f027e5e304ee4a Mon Sep 17 00:00:00 2001 From: shtrophic Date: Thu, 20 Feb 2025 18:25:47 +0100 Subject: duping isn't necessary as xs_vals are copied anyway (right?) --- data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data.c b/data.c index a84cb8d..ae85aaf 100644 --- a/data.c +++ b/data.c @@ -3279,7 +3279,7 @@ void enqueue_output_by_actor(snac *snac, const xs_dict *msg, void enqueue_email(const xs_dict *msg, int retries) /* enqueues an email message to be sent */ { - xs *qmsg = _new_qmsg("email", xs_dup(msg), retries); + xs *qmsg = _new_qmsg("email", msg, retries); const char *ntid = xs_dict_get(qmsg, "ntid"); xs *fn = xs_fmt("%s/queue/%s.json", srv_basedir, ntid); -- cgit v1.2.3 From 20573275ec8f7cc7f5744a3280590040a6f14203 Mon Sep 17 00:00:00 2001 From: default Date: Sat, 22 Mar 2025 08:32:59 +0100 Subject: mastoapi: Added support for /api/v1/instance/peers. --- mastoapi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mastoapi.c b/mastoapi.c index 8d61681..14dd251 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -2256,6 +2256,15 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, status = HTTP_STATUS_OK; } else + if (strcmp(cmd, "/v1/instance/peers") == 0) { /** **/ + /* get the collected inbox list as the instances "this domain is aware of" */ + xs *list = inbox_list(); + + *body = xs_json_dumps(list, 4); + *ctype = "application/json"; + status = HTTP_STATUS_OK; + } + else if (xs_startswith(cmd, "/v1/statuses/")) { /** **/ /* information about a status */ if (logged_in) { -- cgit v1.2.3 From 0b4e8cac069d31de736137de08543ace912b728a Mon Sep 17 00:00:00 2001 From: default Date: Sat, 22 Mar 2025 08:39:04 +0100 Subject: mastoapi: fixed instance peers to return only the domains. --- mastoapi.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mastoapi.c b/mastoapi.c index 14dd251..7b1e0ad 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -2259,8 +2259,18 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, if (strcmp(cmd, "/v1/instance/peers") == 0) { /** **/ /* get the collected inbox list as the instances "this domain is aware of" */ xs *list = inbox_list(); + xs *peers = xs_list_new(); + const char *inbox; - *body = xs_json_dumps(list, 4); + xs_list_foreach(list, inbox) { + xs *l = xs_split(inbox, "/"); + const char *domain = xs_list_get(l, 2); + + if (xs_is_string(domain)) + peers = xs_list_append(peers, domain); + } + + *body = xs_json_dumps(peers, 4); *ctype = "application/json"; status = HTTP_STATUS_OK; } -- cgit v1.2.3 From 770062def6f3e10bf56eae48e274709796fa6df6 Mon Sep 17 00:00:00 2001 From: default Date: Sat, 22 Mar 2025 08:50:08 +0100 Subject: Filter out block instances from inbox_list(). --- data.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/data.c b/data.c index ce040dd..a192830 100644 --- a/data.c +++ b/data.c @@ -2619,10 +2619,9 @@ xs_list *inbox_list(void) xs_list *ibl = xs_list_new(); xs *spec = xs_fmt("%s/inbox/" "*", srv_basedir); xs *files = xs_glob(spec, 0, 0); - xs_list *p = files; const xs_val *v; - while (xs_list_iter(&p, &v)) { + xs_list_foreach(files, v) { FILE *f; if ((f = fopen(v, "r")) != NULL) { @@ -2630,7 +2629,9 @@ xs_list *inbox_list(void) if (line && *line) { line = xs_strip_i(line); - ibl = xs_list_append(ibl, line); + + if (!is_instance_blocked(line)) + ibl = xs_list_append(ibl, line); } fclose(f); -- cgit v1.2.3 From 128cc54608fc4ecbf8c9f93eb2c45eddd81a2fe6 Mon Sep 17 00:00:00 2001 From: green Date: Sat, 22 Mar 2025 19:37:23 +0100 Subject: Added tittle text and class to custom emojis --- html.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/html.c b/html.c index 78a9854..3d8f0e1 100644 --- a/html.c +++ b/html.c @@ -93,6 +93,8 @@ xs_str *replace_shortnames(xs_str *s, const xs_list *tag, int ems, const char *p xs_html_attr("loading", "lazy"), xs_html_attr("src", url), xs_html_attr("alt", n), + xs_html_attr("title", n), + xs_html_attr("class", "snac-emoji"), xs_html_attr("style", style)); xs *s1 = xs_html_render(img); -- cgit v1.2.3 From b107107fb548dd0ad6c3f11a3019850bead8b8ae Mon Sep 17 00:00:00 2001 From: default Date: Sun, 23 Mar 2025 15:39:42 +0100 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a8f04e8..3463b38 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,12 @@ # Release Notes -## 2.74 +## UNRELEASED + +Mastodon API: added support for `/api/v1/instance/peers`. + +Some Czech and Russian translation fixes. + +## 2.74 "The Days of Nicole, the Fediverse Chick" Added Spanish (default, Argentina and Uruguay) translation (contributed by gnemmi). @@ -22,7 +28,7 @@ Added Greek translation (contributed by uhuru). Added Italian translation (contributed by anzu). -Mastodon API: added support for /api/v1/custom_emojis (contributed by violette). +Mastodon API: added support for `/api/v1/custom_emojis` (contributed by violette). Improved Undo+Follow logic (contributed by rozenglass). -- cgit v1.2.3 From 91e0f144a67d2176e202ed6fe3f8b4a10f2ef4da Mon Sep 17 00:00:00 2001 From: default Date: Sun, 23 Mar 2025 15:46:14 +0100 Subject: Updated TODO. --- TODO.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/TODO.md b/TODO.md index bdb860c..baa910a 100644 --- a/TODO.md +++ b/TODO.md @@ -6,16 +6,12 @@ Investigate the problem with boosts inside the same instance (see https://codebe Editing / Updating a post does not index newly added hashtags. -Wrong level of message visibility when using the Mastodon API: https://codeberg.org/grunfink/snac2/issues/200#issuecomment-2351042 - Unfollowing guppe groups seems to work (http status of 200), but messages continue to arrive as if it didn't. Important: deleting a follower should do more that just delete the object, see https://codeberg.org/grunfink/snac2/issues/43#issuecomment-956721 ## Wishlist -Each notification should show a link to the full thread, to see it in context. - The instance timeline should also show boosts from users. Mastoapi: implement /v1/conversations. @@ -30,14 +26,10 @@ Integrate "Added handling for International Domain Names" PR https://codeberg.or Do something about Akkoma and Misskey's quoted replies (they use the `quoteUrl` field instead of `inReplyTo`). -Add a list of hashtags to drop. - Take a look at crashes in the brittle Mastodon official app (crashes when hitting the reply button, crashes or 'ownVotes is null' errors when trying to show polls). The 'history' pages are just monthly HTML snapshots of the local timeline. This is ok and cheap and easy, but is problematic if you e.g. intentionally delete a post because it will remain there in the history forever. If you activate local timeline purging, purged entries will remain in the history as 'ghosts', which may or may not be what the user wants. -The actual storage system wastes too much disk space (lots of small files that really consume 4k of storage). Consider alternatives. - ## Closed Start a TODO file (2022-08-25T10:07:44+0200). @@ -367,3 +359,11 @@ Add support for /authorize_interaction (whatever it is) (2025-01-16T14:45:28+010 Implement following of hashtags (this is not trivial) (2025-01-30T16:12:16+0100). Add support for subscribing and posting to relays (see https://codeberg.org/grunfink/snac2/issues/216 for more information) (2025-01-30T16:12:34+0100). + +Wrong level of message visibility when using the Mastodon API: https://codeberg.org/grunfink/snac2/issues/200#issuecomment-2351042 (2025-03-23T15:44:35+0100). + +Each notification should show a link to the full thread, to see it in context (2025-03-23T15:44:50+0100). + +Add a list of hashtags to drop (2025-03-23T15:45:30+0100). + +The actual storage system wastes too much disk space (lots of small files that really consume 4k of storage). Consider alternatives (2025-03-23T15:46:02+0100). -- cgit v1.2.3 From 307aab92be9b9e0ea7676e05b1c752371ed0f7b9 Mon Sep 17 00:00:00 2001 From: default Date: Mon, 24 Mar 2025 17:29:17 +0100 Subject: In replace_shortnames(), avoid repeated emojis. --- html.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/html.c b/html.c index 78a9854..abb8562 100644 --- a/html.c +++ b/html.c @@ -72,6 +72,9 @@ xs_str *replace_shortnames(xs_str *s, const xs_list *tag, int ems, const char *p const xs_dict *v; int c = 0; + xs_set rep_emoji; + xs_set_init(&rep_emoji); + while (xs_list_next(tag_list, &v, &c)) { const char *t = xs_dict_get(v, "type"); @@ -79,6 +82,10 @@ xs_str *replace_shortnames(xs_str *s, const xs_list *tag, int ems, const char *p const char *n = xs_dict_get(v, "name"); const xs_dict *i = xs_dict_get(v, "icon"); + /* avoid repeated emojis (Misskey seems to return this) */ + if (xs_set_add(&rep_emoji, n) == 0) + continue; + if (xs_is_string(n) && xs_is_dict(i)) { const char *u = xs_dict_get(i, "url"); const char *mt = xs_dict_get(i, "mediaType"); @@ -104,6 +111,8 @@ xs_str *replace_shortnames(xs_str *s, const xs_list *tag, int ems, const char *p } } } + + xs_set_free(&rep_emoji); } return s; -- cgit v1.2.3 From 84e72a52286db8e0af2d4a671f4b042d3e69f0d2 Mon Sep 17 00:00:00 2001 From: shtrophic Date: Sun, 30 Mar 2025 22:13:54 +0200 Subject: add snac-admin --- examples/snac-admin | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 examples/snac-admin diff --git a/examples/snac-admin b/examples/snac-admin new file mode 100644 index 0000000..971618b --- /dev/null +++ b/examples/snac-admin @@ -0,0 +1,43 @@ +#!/usr/bin/env fish +## +## SNAC-ADMIN +## a simple script that is supposed to improve +## a snac admin's life, especially when snac +## is being run as a systemd.unit with +## DynamicUser=yes enabled. +## Please make sure to adjust SNAC_BASEDIR +## down below according to your setup. +## +## USAGE +## snac-admin state +## snac-admin adduser rikkert +## +## Author: @chris@social.shtrophic.net +## +## Released into the public domain +## + +set -l SNAC_PID $(pidof snac) +set -l SNAC_BASEDIR /var/lib/snac + +if test -z $SNAC_PID + echo "no such process" 1>&2 + exit 1 +end + +if test $(id -u) -ne 0 + echo "not root" 1>&2 + exit 1 +end + +if ! test -d $SNAC_BASEDIR + echo "$SNAC_BASEDIR does not exist" 1>&2 + exit 1 +end + +if test -z $argv[1] + echo "no arguments" 1>&2 + exit 1 +end + +nsenter -ae -S follow -G follow -t $SNAC_PID -- snac $argv[1] $SNAC_BASEDIR $argv[2..] -- cgit v1.2.3 From e8b00b31906e316598e26e92a9b156a42ff5a860 Mon Sep 17 00:00:00 2001 From: default Date: Mon, 31 Mar 2025 20:23:24 +0200 Subject: Added some code for the future. --- html.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/html.c b/html.c index d549f75..115e8c4 100644 --- a/html.c +++ b/html.c @@ -559,6 +559,30 @@ xs_html *html_note(snac *user, const char *summary, xs_html_text(L("End in 1 day")))))); } +#if 0 + /* scheduled post data */ + xs *sched_date = xs_dup(""); + xs *sched_time = xs_dup(""); + + xs_html_add(form, + xs_html_tag("p", NULL), + xs_html_tag("details", + xs_html_tag("summary", + xs_html_text(L("Scheduled post..."))), + xs_html_tag("p", + xs_html_text(L("Post date: ")), + xs_html_sctag("input", + xs_html_attr("type", "date"), + xs_html_attr("value", sched_date), + xs_html_attr("name", "post_date")), + xs_html_text(" "), + xs_html_text(L("Post time: ")), + xs_html_sctag("input", + xs_html_attr("type", "time"), + xs_html_attr("value", sched_time), + xs_html_attr("name", "post_time"))))); +#endif + xs_html_add(form, xs_html_tag("p", NULL), xs_html_sctag("input", @@ -4186,12 +4210,14 @@ int html_post_handler(const xs_dict *req, const char *q_path, snac_debug(&snac, 1, xs_fmt("web action '%s' received", p_path)); /* post note */ - const xs_str *content = xs_dict_get(p_vars, "content"); - const xs_str *in_reply_to = xs_dict_get(p_vars, "in_reply_to"); - const xs_str *to = xs_dict_get(p_vars, "to"); - const xs_str *sensitive = xs_dict_get(p_vars, "sensitive"); - const xs_str *summary = xs_dict_get(p_vars, "summary"); - const xs_str *edit_id = xs_dict_get(p_vars, "edit_id"); + const char *content = xs_dict_get(p_vars, "content"); + const char *in_reply_to = xs_dict_get(p_vars, "in_reply_to"); + const char *to = xs_dict_get(p_vars, "to"); + const char *sensitive = xs_dict_get(p_vars, "sensitive"); + const char *summary = xs_dict_get(p_vars, "summary"); + const char *edit_id = xs_dict_get(p_vars, "edit_id"); + const char *post_date = xs_dict_get_def(p_vars, "post_date", ""); + const char *post_time = xs_dict_get_def(p_vars, "post_time", ""); int priv = !xs_is_null(xs_dict_get(p_vars, "mentioned_only")); int store_as_draft = !xs_is_null(xs_dict_get(p_vars, "is_draft")); xs *attach_list = xs_list_new(); @@ -4279,6 +4305,23 @@ int html_post_handler(const xs_dict *req, const char *q_path, msg = xs_dict_set(msg, "summary", xs_is_null(summary) ? "..." : summary); } + if (*post_date) { + /* scheduled post */ + xs *sched_date = xs_fmt("%sT%s:00", post_date, *post_time ? post_time : "12:00"); + time_t t = xs_parse_localtime(sched_date, "%Y-%m-%dT%H:%M:%S"); + + if (t != 0) { + xs *iso_date = xs_str_iso_date(t); + msg = xs_dict_set(msg, "published", iso_date); + + snac_debug(&snac, 1, xs_fmt("Scheduled date: [%s]", iso_date)); + } + else { + snac_log(&snac, xs_fmt("Invalid scheduled date: [%s]", sched_date)); + post_date = ""; + } + } + if (xs_is_null(edit_id)) { /* new message */ const char *id = xs_dict_get(msg, "id"); -- cgit v1.2.3 From 1e21c2271e0ae55dbe69ce9ff033589a239a3f95 Mon Sep 17 00:00:00 2001 From: default Date: Tue, 1 Apr 2025 05:47:08 +0200 Subject: Some more work for future posts. --- html.c | 111 +++++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 67 insertions(+), 44 deletions(-) diff --git a/html.c b/html.c index 115e8c4..d4cbb35 100644 --- a/html.c +++ b/html.c @@ -350,7 +350,7 @@ xs_html *html_note(snac *user, const char *summary, const xs_val *mnt_only, const char *redir, const char *in_reply_to, int poll, const xs_list *att_files, const xs_list *att_alt_texts, - int is_draft) + int is_draft, const char *published) /* Yes, this is a FUCKTON of arguments and I'm a bit embarrased */ { xs *action = xs_fmt("%s/admin/note", user->actor); @@ -440,6 +440,34 @@ xs_html *html_note(snac *user, const char *summary, xs_html_attr("name", "is_draft"), xs_html_attr(is_draft ? "checked" : "", NULL)))); + /* post date and time */ + xs *post_date = NULL; + xs *post_time = NULL; + + if (xs_is_string(published)) { + time_t t = xs_parse_iso_date(published, 0); + + if (t > 0) { + post_date = xs_str_time(t, "%Y-%m-%d", 1); + post_time = xs_str_time(t, "%H:%M:%S", 1); + } + } + + xs_html_add(form, + xs_html_tag("p", + xs_html_text(L("Post date and time (empty, right now; in the future, schedule for later):")), + xs_html_sctag("br", NULL), + xs_html_sctag("input", + xs_html_attr("type", "date"), + xs_html_attr("value", post_date ? post_date : ""), + xs_html_attr("name", "post_date")), + xs_html_text(" "), + xs_html_sctag("input", + xs_html_attr("type", "time"), + xs_html_attr("value", post_time ? post_time : ""), + xs_html_attr("step", "1"), + xs_html_attr("name", "post_time")))); + if (edit_id) xs_html_add(form, xs_html_sctag("input", @@ -559,30 +587,6 @@ xs_html *html_note(snac *user, const char *summary, xs_html_text(L("End in 1 day")))))); } -#if 0 - /* scheduled post data */ - xs *sched_date = xs_dup(""); - xs *sched_time = xs_dup(""); - - xs_html_add(form, - xs_html_tag("p", NULL), - xs_html_tag("details", - xs_html_tag("summary", - xs_html_text(L("Scheduled post..."))), - xs_html_tag("p", - xs_html_text(L("Post date: ")), - xs_html_sctag("input", - xs_html_attr("type", "date"), - xs_html_attr("value", sched_date), - xs_html_attr("name", "post_date")), - xs_html_text(" "), - xs_html_text(L("Post time: ")), - xs_html_sctag("input", - xs_html_attr("type", "time"), - xs_html_attr("value", sched_time), - xs_html_attr("name", "post_time"))))); -#endif - xs_html_add(form, xs_html_tag("p", NULL), xs_html_sctag("input", @@ -1151,7 +1155,7 @@ xs_html *html_top_controls(snac *user) NULL, NULL, xs_stock(XSTYPE_FALSE), "", xs_stock(XSTYPE_FALSE), NULL, - NULL, 1, NULL, NULL, 0), + NULL, 1, NULL, NULL, 0, NULL), /** operations **/ xs_html_tag("details", @@ -1809,7 +1813,8 @@ xs_html *html_entry_controls(snac *user, const char *actor, id, NULL, xs_dict_get(msg, "sensitive"), xs_dict_get(msg, "summary"), xs_stock(is_msg_public(msg) ? XSTYPE_FALSE : XSTYPE_TRUE), redir, - NULL, 0, att_files, att_alt_texts, is_draft(user, id))), + NULL, 0, att_files, att_alt_texts, is_draft(user, id), + xs_dict_get(msg, "published"))), xs_html_tag("p", NULL)); } @@ -1828,7 +1833,7 @@ xs_html *html_entry_controls(snac *user, const char *actor, NULL, NULL, xs_dict_get(msg, "sensitive"), xs_dict_get(msg, "summary"), xs_stock(is_msg_public(msg) ? XSTYPE_FALSE : XSTYPE_TRUE), redir, - id, 0, NULL, NULL, 0)), + id, 0, NULL, NULL, 0, NULL)), xs_html_tag("p", NULL)); } @@ -3165,7 +3170,7 @@ xs_html *html_people_list(snac *user, xs_list *list, const char *header, const c NULL, actor_id, xs_stock(XSTYPE_FALSE), "", xs_stock(XSTYPE_FALSE), NULL, - NULL, 0, NULL, NULL, 0), + NULL, 0, NULL, NULL, 0, NULL), xs_html_tag("p", NULL)); xs_html_add(snac_post, snac_controls); @@ -4305,23 +4310,29 @@ int html_post_handler(const xs_dict *req, const char *q_path, msg = xs_dict_set(msg, "summary", xs_is_null(summary) ? "..." : summary); } - if (*post_date) { - /* scheduled post */ - xs *sched_date = xs_fmt("%sT%s:00", post_date, *post_time ? post_time : "12:00"); - time_t t = xs_parse_localtime(sched_date, "%Y-%m-%dT%H:%M:%S"); + if (xs_is_string(post_date) && *post_date) { + xs *local_pubdate = xs_fmt("%sT%s", post_date, + xs_is_string(post_time) && *post_time ? post_time : "00:00:00"); + + time_t t = xs_parse_iso_date(local_pubdate, 1); if (t != 0) { xs *iso_date = xs_str_iso_date(t); msg = xs_dict_set(msg, "published", iso_date); - snac_debug(&snac, 1, xs_fmt("Scheduled date: [%s]", iso_date)); - } - else { - snac_log(&snac, xs_fmt("Invalid scheduled date: [%s]", sched_date)); - post_date = ""; + snac_debug(&snac, 1, xs_fmt("Published date: [%s]", iso_date)); } + else + snac_log(&snac, xs_fmt("Invalid post date: [%s]", local_pubdate)); } + /* is the published date from the future? */ + int future_post = 0; + xs *right_now = xs_str_utctime(0, ISO_DATE_SPEC); + + if (strcmp(xs_dict_get(msg, "published"), right_now) > 0) + future_post = 1; + if (xs_is_null(edit_id)) { /* new message */ const char *id = xs_dict_get(msg, "id"); @@ -4329,6 +4340,10 @@ int html_post_handler(const xs_dict *req, const char *q_path, if (store_as_draft) { draft_add(&snac, id, msg); } + else + if (future_post) { + snac_log(&snac, xs_fmt("DUMMY scheduled post 1 %s", id)); + } else { c_msg = msg_create(&snac, msg); timeline_add(&snac, id, msg); @@ -4340,7 +4355,7 @@ int html_post_handler(const xs_dict *req, const char *q_path, if (valid_status(object_get(edit_id, &p_msg))) { /* copy relevant fields from previous version */ - char *fields[] = { "id", "context", "url", "published", + char *fields[] = { "id", "context", "url", "to", "inReplyTo", NULL }; int n; @@ -4356,15 +4371,23 @@ int html_post_handler(const xs_dict *req, const char *q_path, if (is_draft(&snac, edit_id)) { /* message was previously a draft; it's a create activity */ - /* set the published field to now */ - xs *published = xs_str_utctime(0, ISO_DATE_SPEC); - msg = xs_dict_set(msg, "published", published); + /* if the date is from the past, overwrite it with right_now */ + if (strcmp(xs_dict_get(msg, "published"), right_now) < 0) { + snac_debug(&snac, 1, xs_fmt("setting draft ancient date to %s", right_now)); + msg = xs_dict_set(msg, "published", right_now); + } /* overwrite object */ object_add_ow(edit_id, msg); - c_msg = msg_create(&snac, msg); - timeline_add(&snac, edit_id, msg); + if (future_post) { + snac_log(&snac, xs_fmt("DUMMY scheduled post 2 %s", edit_id)); + } + else { + c_msg = msg_create(&snac, msg); + timeline_add(&snac, edit_id, msg); + } + draft_del(&snac, edit_id); } else { -- cgit v1.2.3 From 5090e4e77489d7e4e2d358c417c83be8f76307cb Mon Sep 17 00:00:00 2001 From: default Date: Tue, 1 Apr 2025 06:14:46 +0200 Subject: Added more scheduling code. --- data.c | 37 +++++++++++++++++++++++++++++++++++++ html.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- snac.h | 5 +++++ 3 files changed, 84 insertions(+), 2 deletions(-) diff --git a/data.c b/data.c index a192830..8f68ee2 100644 --- a/data.c +++ b/data.c @@ -1929,6 +1929,43 @@ xs_list *draft_list(snac *user) } +/** scheduled posts **/ + +int is_scheduled(snac *user, const char *id) +/* returns true if this note is scheduled for future sending */ +{ + return object_user_cache_in(user, id, "sched"); +} + + +void schedule_del(snac *user, const char *id) +/* deletes an scheduled post */ +{ + object_user_cache_del(user, id, "sched"); +} + + +void schedule_add(snac *user, const char *id, const xs_dict *msg) +/* schedules this post for later */ +{ + /* delete from the index, in case it was already there */ + schedule_del(user, id); + + /* overwrite object */ + object_add_ow(id, msg); + + /* [re]add to the index */ + object_user_cache_add(user, id, "sched"); +} + + +xs_list *scheduled_list(snac *user) +/* return the list of scheduled posts */ +{ + return object_user_cache_list(user, "sched", XS_ALL, 1); +} + + /** hiding **/ xs_str *_hidden_fn(snac *snac, const char *id) diff --git a/html.c b/html.c index d4cbb35..bc8a645 100644 --- a/html.c +++ b/html.c @@ -2870,6 +2870,18 @@ xs_str *html_timeline(snac *user, const xs_list *list, int read_only, xs_html_text(L("drafts"))))); } + { + /* show the list of scheduled posts */ + xs *url = xs_fmt("%s/sched", user->actor); + xs_html_add(lol, + xs_html_tag("li", + xs_html_tag("a", + xs_html_attr("href", url), + xs_html_attr("class", "snac-list-link"), + xs_html_attr("title", L("Scheduled posts")), + xs_html_text(L("scheduled posts"))))); + } + /* the list of followed hashtags */ const char *followed_hashtags = xs_dict_get(user->config, "followed_hashtags"); @@ -3919,6 +3931,21 @@ int html_get_handler(const xs_dict *req, const char *q_path, } } else + if (strcmp(p_path, "sched") == 0) { /** list of scheduled posts **/ + if (!login(&snac, req)) { + *body = xs_dup(uid); + status = HTTP_STATUS_UNAUTHORIZED; + } + else { + xs *list = scheduled_list(&snac); + + *body = html_timeline(&snac, list, 0, skip, show, + 0, L("Scheduled posts"), "", 0, error); + *b_size = strlen(*body); + status = HTTP_STATUS_OK; + } + } + else if (xs_startswith(p_path, "list/")) { /** list timelines **/ if (!login(&snac, req)) { *body = xs_dup(uid); @@ -4342,7 +4369,7 @@ int html_post_handler(const xs_dict *req, const char *q_path, } else if (future_post) { - snac_log(&snac, xs_fmt("DUMMY scheduled post 1 %s", id)); + schedule_add(&snac, id, msg); } else { c_msg = msg_create(&snac, msg); @@ -4381,7 +4408,7 @@ int html_post_handler(const xs_dict *req, const char *q_path, object_add_ow(edit_id, msg); if (future_post) { - snac_log(&snac, xs_fmt("DUMMY scheduled post 2 %s", edit_id)); + schedule_add(&snac, edit_id, msg); } else { c_msg = msg_create(&snac, msg); @@ -4390,7 +4417,15 @@ int html_post_handler(const xs_dict *req, const char *q_path, draft_del(&snac, edit_id); } + else + if (is_scheduled(&snac, edit_id)) { + /* editing an scheduled post; just update it */ + schedule_add(&snac, edit_id, msg); + } else { + /* ignore the (possibly changed) published date */ + msg = xs_dict_set(msg, "published", xs_dict_get(p_msg, "published")); + /* set the updated field */ xs *updated = xs_str_utctime(0, ISO_DATE_SPEC); msg = xs_dict_set(msg, "updated", updated); @@ -4474,6 +4509,9 @@ int html_post_handler(const xs_dict *req, const char *q_path, if (strcmp(action, L("Hide")) == 0) { /** **/ if (is_draft(&snac, id)) draft_del(&snac, id); + else + if (is_scheduled(&snac, id)) + schedule_del(&snac, id); else hide(&snac, id); } @@ -4570,6 +4608,8 @@ int html_post_handler(const xs_dict *req, const char *q_path, draft_del(&snac, id); + schedule_del(&snac, id); + snac_log(&snac, xs_fmt("deleted entry %s", id)); } } diff --git a/snac.h b/snac.h index 142ebc1..7e44039 100644 --- a/snac.h +++ b/snac.h @@ -205,6 +205,11 @@ void draft_del(snac *user, const char *id); void draft_add(snac *user, const char *id, const xs_dict *msg); xs_list *draft_list(snac *user); +int is_scheduled(snac *user, const char *id); +void schedule_del(snac *user, const char *id); +void schedule_add(snac *user, const char *id, const xs_dict *msg); +xs_list *scheduled_list(snac *user); + int limited(snac *user, const char *id, int cmd); #define is_limited(user, id) limited((user), (id), 0) #define limit(user, id) limited((user), (id), 1) -- cgit v1.2.3 From 9b2d0381ba734102c20d2111f0a2b64a3c438ef7 Mon Sep 17 00:00:00 2001 From: default Date: Tue, 1 Apr 2025 06:32:53 +0200 Subject: More scheduled post code. --- activitypub.c | 2 ++ data.c | 29 ++++++++++++++++++++++++++++- snac.h | 3 ++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/activitypub.c b/activitypub.c index c00c371..4c22c25 100644 --- a/activitypub.c +++ b/activitypub.c @@ -2759,6 +2759,8 @@ int process_user_queue(snac *snac) cnt++; } + scheduled_process(snac); + return cnt; } diff --git a/data.c b/data.c index 8f68ee2..6661472 100644 --- a/data.c +++ b/data.c @@ -1966,6 +1966,33 @@ xs_list *scheduled_list(snac *user) } +void scheduled_process(snac *user) +/* processes the scheduled list, sending those ready to be sent */ +{ + xs *posts = scheduled_list(user); + const char *md5; + xs *right_now = xs_str_utctime(0, ISO_DATE_SPEC); + + xs_list_foreach(posts, md5) { + xs *msg = NULL; + + if (valid_status(object_get_by_md5(md5, &msg))) { + if (strcmp(xs_dict_get(msg, "published"), right_now) < 0) { + /* due date! */ + const char *id = xs_dict_get(msg, "id"); + + timeline_add(user, id, msg); + + xs *c_msg = msg_create(user, msg); + enqueue_message(user, c_msg); + + schedule_del(user, id); + } + } + } +} + + /** hiding **/ xs_str *_hidden_fn(snac *snac, const char *id) @@ -3734,7 +3761,7 @@ void purge_user(snac *snac) _purge_user_subdir(snac, "public", pub_days); const char *idxs[] = { "followers.idx", "private.idx", "public.idx", - "pinned.idx", "bookmark.idx", "draft.idx", NULL }; + "pinned.idx", "bookmark.idx", "draft.idx", "sched.idx", NULL }; for (n = 0; idxs[n]; n++) { xs *idx = xs_fmt("%s/%s", snac->basedir, idxs[n]); diff --git a/snac.h b/snac.h index 7e44039..0d2aafe 100644 --- a/snac.h +++ b/snac.h @@ -1,7 +1,7 @@ /* snac - A simple, minimalistic ActivityPub instance */ /* copyright (c) 2022 - 2025 grunfink et al. / MIT license */ -#define VERSION "2.74" +#define VERSION "2.75-dev" #define USER_AGENT "snac/" VERSION @@ -209,6 +209,7 @@ int is_scheduled(snac *user, const char *id); void schedule_del(snac *user, const char *id); void schedule_add(snac *user, const char *id, const xs_dict *msg); xs_list *scheduled_list(snac *user); +void scheduled_process(snac *user); int limited(snac *user, const char *id, int cmd); #define is_limited(user, id) limited((user), (id), 0) -- cgit v1.2.3 From dde907f55a6c63f7d1bb8345f7850b51cd028a7b Mon Sep 17 00:00:00 2001 From: default Date: Tue, 1 Apr 2025 09:02:35 +0200 Subject: Only show date edition controls if it's new, drafted or scheduled. --- html.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/html.c b/html.c index bc8a645..008c05b 100644 --- a/html.c +++ b/html.c @@ -453,20 +453,22 @@ xs_html *html_note(snac *user, const char *summary, } } - xs_html_add(form, - xs_html_tag("p", - xs_html_text(L("Post date and time (empty, right now; in the future, schedule for later):")), - xs_html_sctag("br", NULL), - xs_html_sctag("input", - xs_html_attr("type", "date"), - xs_html_attr("value", post_date ? post_date : ""), - xs_html_attr("name", "post_date")), - xs_html_text(" "), - xs_html_sctag("input", - xs_html_attr("type", "time"), - xs_html_attr("value", post_time ? post_time : ""), - xs_html_attr("step", "1"), - xs_html_attr("name", "post_time")))); + if (edit_id == NULL || is_draft || is_scheduled(user, edit_id)) { + xs_html_add(form, + xs_html_tag("p", + xs_html_text(L("Post date and time (empty, right now; in the future, schedule for later):")), + xs_html_sctag("br", NULL), + xs_html_sctag("input", + xs_html_attr("type", "date"), + xs_html_attr("value", post_date ? post_date : ""), + xs_html_attr("name", "post_date")), + xs_html_text(" "), + xs_html_sctag("input", + xs_html_attr("type", "time"), + xs_html_attr("value", post_time ? post_time : ""), + xs_html_attr("step", "1"), + xs_html_attr("name", "post_time")))); + } if (edit_id) xs_html_add(form, -- cgit v1.2.3 From 570a8e3d5ddad26ce2a348877e3d8d5f32f6f748 Mon Sep 17 00:00:00 2001 From: shtrophic Date: Tue, 1 Apr 2025 11:33:54 +0200 Subject: convert snac-admin to bash --- examples/snac-admin | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/examples/snac-admin b/examples/snac-admin index 971618b..e51e28b 100644 --- a/examples/snac-admin +++ b/examples/snac-admin @@ -1,43 +1,51 @@ -#!/usr/bin/env fish +#!/usr/bin/env bash ## ## SNAC-ADMIN ## a simple script that is supposed to improve ## a snac admin's life, especially when snac ## is being run as a systemd.unit with ## DynamicUser=yes enabled. -## Please make sure to adjust SNAC_BASEDIR +## Please make sure to adjust SNAC_DIR ## down below according to your setup. ## ## USAGE ## snac-admin state ## snac-admin adduser rikkert +## snac-admin block example.org +## snac-admin verify_links lisa +## ... ## ## Author: @chris@social.shtrophic.net ## ## Released into the public domain ## -set -l SNAC_PID $(pidof snac) -set -l SNAC_BASEDIR /var/lib/snac +set -e -if test -z $SNAC_PID - echo "no such process" 1>&2 +SNAC_PID=$(pidof snac) +SNAC_DIR=/var/lib/snac + +SNAC_VERB=$1 +shift + +if [ -z $SNAC_PID ]; then + echo "no such process" >&2 exit 1 -end +fi -if test $(id -u) -ne 0 - echo "not root" 1>&2 +if [ $(id -u) -ne 0 ]; then + echo "not root" >&2 exit 1 -end +fi -if ! test -d $SNAC_BASEDIR - echo "$SNAC_BASEDIR does not exist" 1>&2 +if [ ! -d $SNAC_DIR ]; then + echo "$SNAC_DIR is not a directory" >&2 exit 1 -end +fi -if test -z $argv[1] - echo "no arguments" 1>&2 +if [ -z $SNAC_VERB ]; then + echo "no arguments" >&2 exit 1 -end +fi -nsenter -ae -S follow -G follow -t $SNAC_PID -- snac $argv[1] $SNAC_BASEDIR $argv[2..] +nsenter -ae -S follow -G follow -t $SNAC_PID -- snac $SNAC_VERB $SNAC_DIR $@ -- cgit v1.2.3 From 2049ed7f532c52a107a50d83053635d02fd45dd4 Mon Sep 17 00:00:00 2001 From: default Date: Tue, 1 Apr 2025 19:02:21 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 3463b38..6915ffc 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,6 +2,8 @@ ## UNRELEASED +Added support for scheduled posts. + Mastodon API: added support for `/api/v1/instance/peers`. Some Czech and Russian translation fixes. -- cgit v1.2.3 From 877434218ffca350eb918fd47dfe81f29f2605ae Mon Sep 17 00:00:00 2001 From: default Date: Wed, 2 Apr 2025 09:01:31 +0200 Subject: mastoapi: added support for scheduled posts. --- mastoapi.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/mastoapi.c b/mastoapi.c index 7b1e0ad..d93afc5 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -2726,14 +2726,24 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path, msg = xs_dict_set(msg, "summary", summary); } - /* store */ - timeline_add(&snac, xs_dict_get(msg, "id"), msg); + /* scheduled? */ + const char *scheduled_at = xs_dict_get(args, "scheduled_at"); - /* 'Create' message */ - xs *c_msg = msg_create(&snac, msg); - enqueue_message(&snac, c_msg); + if (xs_is_string(scheduled_at) && *scheduled_at) { + msg = xs_dict_set(msg, "published", scheduled_at); - timeline_touch(&snac); + schedule_add(&snac, xs_dict_get(msg, "id"), msg); + } + else { + /* store */ + timeline_add(&snac, xs_dict_get(msg, "id"), msg); + + /* 'Create' message */ + xs *c_msg = msg_create(&snac, msg); + enqueue_message(&snac, c_msg); + + timeline_touch(&snac); + } /* convert to a mastodon status as a response code */ xs *st = mastoapi_status(&snac, msg); -- cgit v1.2.3 From 3cec0d3ebeeef595f509c52e6c0ac3682ba67e6f Mon Sep 17 00:00:00 2001 From: default Date: Fri, 4 Apr 2025 08:07:56 +0200 Subject: Vote objects no longer have a content of "". --- html.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/html.c b/html.c index 008c05b..25a2e90 100644 --- a/html.c +++ b/html.c @@ -4824,6 +4824,9 @@ int html_post_handler(const xs_dict *req, const char *q_path, /* set the option */ msg = xs_dict_append(msg, "name", v); + /* delete the content */ + msg = xs_dict_del(msg, "content"); + xs *c_msg = msg_create(&snac, msg); enqueue_message(&snac, c_msg); -- cgit v1.2.3 From 06cc93a5dbda3432c153f745decb4b697a5d2a91 Mon Sep 17 00:00:00 2001 From: default Date: Fri, 4 Apr 2025 08:10:06 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 6915ffc..4ca15e4 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,8 @@ Added support for scheduled posts. +Fixed incorrect poll vote format, which was causing problems in platforms like GotoSocial. + Mastodon API: added support for `/api/v1/instance/peers`. Some Czech and Russian translation fixes. -- cgit v1.2.3 From bb5a2445dac94a4d90b7d455b7723416a3df13ba Mon Sep 17 00:00:00 2001 From: default Date: Fri, 4 Apr 2025 16:48:11 +0200 Subject: Added a (CSS hidden) hr tag after each post. --- html.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/html.c b/html.c index 25a2e90..eff55e7 100644 --- a/html.c +++ b/html.c @@ -2731,6 +2731,11 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only, } } + /* add an invisible hr, to help differentiate between posts in text browsers */ + xs_html_add(entry_top, + xs_html_sctag("hr", + xs_html_attr("style", "display: none"))); + return entry_top; } -- cgit v1.2.3 From 9f6d34eddadafbd79bc608c1cb650d9c90b5a0d3 Mon Sep 17 00:00:00 2001 From: default Date: Sat, 5 Apr 2025 13:51:03 +0200 Subject: Use instead of 'display: none' style. --- html.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html.c b/html.c index eff55e7..5ede8f9 100644 --- a/html.c +++ b/html.c @@ -2734,7 +2734,7 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only, /* add an invisible hr, to help differentiate between posts in text browsers */ xs_html_add(entry_top, xs_html_sctag("hr", - xs_html_attr("style", "display: none"))); + xs_html_attr("hidden", NULL))); return entry_top; } -- cgit v1.2.3 From 7f7d42c52db934da6af8d3cdd7c03dd95a08cbaf Mon Sep 17 00:00:00 2001 From: default Date: Sun, 6 Apr 2025 07:44:12 +0200 Subject: Post attachments now have random names. --- html.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/html.c b/html.c index 5ede8f9..9ff5625 100644 --- a/html.c +++ b/html.c @@ -14,6 +14,7 @@ #include "xs_curl.h" #include "xs_unicode.h" #include "xs_url.h" +#include "xs_random.h" #include "snac.h" @@ -4286,9 +4287,12 @@ int html_post_handler(const xs_dict *req, const char *q_path, const char *fn = xs_list_get(attach_file, 0); if (xs_is_string(fn) && *fn != '\0') { + char rnd[32]; + xs_rnd_buf(rnd, sizeof(rnd)); + char *ext = strrchr(fn, '.'); - xs *hash = xs_md5_hex(fn, strlen(fn)); - xs *id = xs_fmt("%s%s", hash, ext); + xs *hash = xs_md5_hex(rnd, strlen(rnd)); + xs *id = xs_fmt("p-%s%s", hash, ext ? ext : ""); xs *url = xs_fmt("%s/s/%s", snac.actor, id); int fo = xs_number_get(xs_list_get(attach_file, 1)); int fs = xs_number_get(xs_list_get(attach_file, 2)); -- cgit v1.2.3 From 6f884e0d5d4eb9be41764c5ae16da52fed997e88 Mon Sep 17 00:00:00 2001 From: default Date: Sun, 6 Apr 2025 07:50:51 +0200 Subject: The avatar and header images have a prefix in their names. --- html.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html.c b/html.c index 9ff5625..a598038 100644 --- a/html.c +++ b/html.c @@ -4290,9 +4290,9 @@ int html_post_handler(const xs_dict *req, const char *q_path, char rnd[32]; xs_rnd_buf(rnd, sizeof(rnd)); - char *ext = strrchr(fn, '.'); + const char *ext = strrchr(fn, '.'); xs *hash = xs_md5_hex(rnd, strlen(rnd)); - xs *id = xs_fmt("p-%s%s", hash, ext ? ext : ""); + xs *id = xs_fmt("post-%s%s", hash, ext ? ext : ""); xs *url = xs_fmt("%s/s/%s", snac.actor, id); int fo = xs_number_get(xs_list_get(attach_file, 1)); int fs = xs_number_get(xs_list_get(attach_file, 2)); @@ -4764,7 +4764,7 @@ int html_post_handler(const xs_dict *req, const char *q_path, if (xs_startswith(mimetype, "image/")) { const char *ext = strrchr(fn, '.'); xs *hash = xs_md5_hex(fn, strlen(fn)); - xs *id = xs_fmt("%s%s", hash, ext); + xs *id = xs_fmt("%s-%s%s", uploads[n], hash, ext ? ext : ""); xs *url = xs_fmt("%s/s/%s", snac.actor, id); int fo = xs_number_get(xs_list_get(uploaded_file, 1)); int fs = xs_number_get(xs_list_get(uploaded_file, 2)); -- cgit v1.2.3 From 32b7fa2fcb8d77cab49f0b17af75669139901859 Mon Sep 17 00:00:00 2001 From: default Date: Thu, 10 Apr 2025 08:25:35 +0200 Subject: Shorten link label in Attachments. --- html.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/html.c b/html.c index a598038..e303d72 100644 --- a/html.c +++ b/html.c @@ -2439,13 +2439,19 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only, name = NULL; } else { + xs *d_href = xs_dup(o_href); + if (strlen(d_href) > 64) { + d_href[64] = '\0'; + d_href = xs_str_cat(d_href, "..."); + } + xs_html_add(content_attachments, xs_html_tag("p", xs_html_tag("a", xs_html_attr("href", o_href), xs_html_text(L("Attachment")), xs_html_text(": "), - xs_html_text(o_href)))); + xs_html_text(d_href)))); /* do not generate an Alt... */ name = NULL; -- cgit v1.2.3 From cbe25ddb853281aa800befea31e8f6dac0206411 Mon Sep 17 00:00:00 2001 From: default Date: Thu, 10 Apr 2025 08:40:54 +0200 Subject: Hide the scheduled post date and time behind a 'details'. --- html.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/html.c b/html.c index e303d72..b5d8946 100644 --- a/html.c +++ b/html.c @@ -457,18 +457,22 @@ xs_html *html_note(snac *user, const char *summary, if (edit_id == NULL || is_draft || is_scheduled(user, edit_id)) { xs_html_add(form, xs_html_tag("p", - xs_html_text(L("Post date and time (empty, right now; in the future, schedule for later):")), - xs_html_sctag("br", NULL), - xs_html_sctag("input", - xs_html_attr("type", "date"), - xs_html_attr("value", post_date ? post_date : ""), - xs_html_attr("name", "post_date")), - xs_html_text(" "), - xs_html_sctag("input", - xs_html_attr("type", "time"), - xs_html_attr("value", post_time ? post_time : ""), - xs_html_attr("step", "1"), - xs_html_attr("name", "post_time")))); + xs_html_tag("details", + xs_html_tag("summary", + xs_html_text(L("Scheduled post..."))), + xs_html_tag("p", + xs_html_text(L("Post date and time:")), + xs_html_sctag("br", NULL), + xs_html_sctag("input", + xs_html_attr("type", "date"), + xs_html_attr("value", post_date ? post_date : ""), + xs_html_attr("name", "post_date")), + xs_html_text(" "), + xs_html_sctag("input", + xs_html_attr("type", "time"), + xs_html_attr("value", post_time ? post_time : ""), + xs_html_attr("step", "1"), + xs_html_attr("name", "post_time")))))); } if (edit_id) -- cgit v1.2.3 From 908cdf4df55d7e9a216ec6a9a843dda72f2cad95 Mon Sep 17 00:00:00 2001 From: default Date: Thu, 10 Apr 2025 08:50:41 +0200 Subject: Updated po files. --- po/cs.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/de_DE.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/el_GR.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/en.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/es.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/es_AR.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/es_UY.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/fi.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/fr.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/it.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/pt_BR.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/ru.po | 364 +++++++++++++++++++++++++++++++----------------------------- po/zh.po | 364 +++++++++++++++++++++++++++++++----------------------------- 13 files changed, 2470 insertions(+), 2262 deletions(-) diff --git a/po/cs.po b/po/cs.po index 14b8b54..f8812db 100644 --- a/po/cs.po +++ b/po/cs.po @@ -8,673 +8,673 @@ msgstr "" "Language: cs\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Citlivý obsah: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Varování k citlivému obsahu" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Pouze pro zmíněné osoby:" -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Odpovědět na (URL):" -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "Nesdílet, pouze uložit do rozepsaných" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Rozepsané:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Přílohy..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Soubor:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Pro smazání přilohy vymažte toto pole" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Popisek přílohy" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Anketa..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Možnosti ankety (jedna na řádek, max 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Vyber jednu" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Vyber více možností" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Konec za 5 minut" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Konec za 1 hodinu" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Konec za 1 den" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Poslat" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Popisek stránky" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Email administrátora" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Účet adminitrátora" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d sledovaných, %d sledujících" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "soukromé" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "veřejné" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "upozornění" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "lidé" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "instance" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" msgstr "" "Vyhledejte příspěvek podle URL (regex), @uživatel@instance účtu, nebo #tagu" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Hledání obsahu" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "ověřený odkaz" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Místo: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Nový příspěvek..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "Co se vám honí hlavou?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Operace..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Sledovat" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(podle URL nebo @uživatel@instance)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Boostit" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(podle URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Líbí" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Nastavení..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Jméno:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Vaše jméno" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Smazat současný avatar" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Obrázek v záhlaví profilu: " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Smazat současný obrázek v záhlaví" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Bio:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Napište sem něco o sobě..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Vždy zobrazit příspěvky s varováním o citlivém obsahu" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Emailová adresa pro upozornění" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Upozornění na Telegram (bot klíč a chat id):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "ntfy notifikace (ntfy server a token):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "Životnost příspěvků ve dnech (0: nastavení serveru):" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Zahodit soukromé zprávy od lidí, které nesledujete" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Tenhle účet je robot" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Automaticky boostovat všechny zmíňky o tomto účtu" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "" "Tento účet je soukromý (příspěvky nejsou zobrazitelné napříč internetem)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Zobrazovat vlákna složená" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Žádosti o sledování je nutno manuálně potvrdit" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Zobraz údaje o počtu sledovaných a sledujících" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Geolokace:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata profilu (klíč=hodnota na jeden řádek):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Jazyk rozhraní:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Nové heslo:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Zopakujte nové heslo:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Uložit" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Sledované hashtagy..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Jeden hashtag na řádek" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Aktualizovat hashtagy" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Dejte najevo, že se vám příspěvek líbí" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "Nelíbí" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Vlastně se mi to zas tak nelíbí" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Odepnout" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Odepnout tento příspěvek z vaší osy" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Připnout" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Připnout tento příspěvěk na začátek vaší osy" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Ukázat tenhle příspěvek vašim sledujícím" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Odboostit" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Boostit to byl blbej nápad" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Zahodit" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Odstraň tenhle příspěvěk ze svých záložek" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Uložit" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Uložit tenhle příspěvek mezi záložky" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Přestat sledovat" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Přestat sledovat tohoto uživatele" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Začít sledovat tohoto uživatele" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Přestat Sledovat Skupinu" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Přestat sledovat tuto skupinu nebo kanál" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Sledovat Skupinu" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Začít sledovat tuto skupinu nebo kanál" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "ZTIŠIT" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Jednou provždy zablokovat všechno od tohoto uživatele" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Smazat" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Smazat tento příspěvek" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Schovat" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Schovat tento příspěvek a příspěvky pod ním" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Editovat..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Odpovědět..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Ořezáno (moc hluboké)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "sleduje vás" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Připnuto" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Zazáložkováno" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Anketa" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Odhlasováno" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Událost" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "boostuje" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "odpověď pro" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr "[CITLIVÝ OBSAH]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Hlasuj" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Uzavřeno" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Končí za" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Video" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Audio" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Příloha" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Popisek..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Čas:" -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Starší..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "o této stránce" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "pohání " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Zahodit" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Časová osa pro seznam '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Připnuté příspěvky" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Záložky" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Rozepsané příspěky" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "Nic víc nového" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Zpátky nahoru" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Historie" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Více..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Povolit boosty" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Zobrazovat boosty od tohoto uživatele" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Skrýt boosty" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Ztišit boosty od tohoto uživatele" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Smazat tohoto užiatele" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Schválit" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Schválit žádost o sledování" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Zahodit" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Zahodit žádost o sledování" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Zrušit ztišení" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Přestat blokovat tohoto uživatele" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Zablokovat všechno od tohoto uživatele" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Soukomá zpráva..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Dosud nepotvrzené žádosti o sledování" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Lidé, které sledujete" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Lidé, kteří vás sledují" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Smazat vše" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Zmínil vás" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Ukončená anketa" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Žádost o sledování" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Kontext" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Nové" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Zobrazeno dříve" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Nic" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Výsledky vyhledávání účtu %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "Účet %s nenalezen" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Výsledky k tagu %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "Nic k tagu %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Výsledky vyhledávání pro '%s' (může toho být víc)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Výsledky vyhledávání pro '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "Nic víc pro '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "Žádný výsledek pro '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Časová osa místní instance" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Časová osa pro seznam '%s'" @@ -688,15 +688,15 @@ msgstr "Výsledky vyhledávání tagu #%s" msgid "Recent posts by users in this instance" msgstr "Nedávné příspěvky od uživatelů této instance" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Blokované hashtagy..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "URL adresa příspěvku, na který odpovědět" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -708,30 +708,46 @@ msgstr "" "Možnost 3...\n" "..." -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "API klíč Bota" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "Chat id" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy server - celá URL adresa (např: https://ntfy.sh/VaseTema)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "ntfy token - pokud je zapotřebí" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "připnuté" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "záložky" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "rozepsané" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/de_DE.po b/po/de_DE.po index cc31f54..acd35a0 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -7,120 +7,120 @@ msgstr "" "Language: de_DE\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Sensibler Inhalt: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Beschreibung des sensiblen Inhalts" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Nur für erwähnte Personen: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Antwort an (URL): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "Nicht senden, aber als Entwurf speichern" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Entwurf: " -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Anhänge..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Datei:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Feld löschen, um den Anhang zu löschen" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Beschreibung des Anhangs" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Umfrage..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Umfrageoptionen (eine pro Zeile, bis zu 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Einfachauswahl" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Mehrfachauswahl" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Endet in 5 Minuten" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Endet in 1 Stunde" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Endet in 1 Tag" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Beitrag veröffentlichen" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Seitenbeschreibung" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Admin E-Mail" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Admin-Konto" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d Gefolgte, %d Folgende" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "Privat" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "Öffentlich" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "Benachrichtigungen" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "Personen" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "Instanz" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -128,554 +128,554 @@ msgstr "" "Durchsuche Beiträge nach URL oder Inhalt (regulärer Ausdruck), @user@host " "Konten, oder #tag" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Inhaltssuche" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "verifizierter Link" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Standort: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Neuer Beitrag..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "Was beschäftigt dich?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Aktionen..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Folgen" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(mit URL oder user@host)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Boosten" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(mit URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Gefällt mir" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Einstellungen..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Anzeigename:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Dein Name" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Aktuellen Avatar löschen" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Titelbild (Banner): " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Aktuelles Titelbild löschen" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Über dich:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Erzähle etwas von dir..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Sensible Inhalte immer anzeigen" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "E-Mail Adresse für Benachrichtigungen:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram Benachrichtigungen (Bot Schlüssel und Chat ID):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "NTFY Benachrichtigungen (ntfy Server und Token):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "Aufbewahrungsfrist der Beiträge in Tagen (0 = Serverstandard):" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Blocke Direktnachrichten von Personen denen du nicht folgst" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Dieses Konto ist ein Bot" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Automatisches Boosten bei Erwähnungen dieses Kontos" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "" "Dieses Konto ist privat (Beiträge werden nicht in der Weboberfläche " "angezeigt)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Themen standardmäßig einklappen" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Folgeanfragen müssen genehmigt werden" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Veröffentliche die Anzahl von Followern und Gefolgten." -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Standort:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Profil-Metadaten (Begriff=Wert Paare, einer pro Zeile):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Sprache der Weboberfläche:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Neues Passwort:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Neues Passwort wiederholen:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Benutzerinformationen aktualisieren" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Gefolgte Hashtags..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Ein Hashtag pro Zeile" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Hashtags aktualisieren" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Sag, dass dir dieser Beiträg gefällt" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "Gefällt mir zurücknehmen" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Nee, gefällt mir nicht so gut" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Pin entfernen" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Pin für diesen Beitrag aus deiner Zeitleiste entfernen" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Anpinnen" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Pinne diesen Beitrag an den Anfang deiner Zeitleiste" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Diesen Beitrag an deine Follower weiterschicken" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Boost zurücknehmen" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Ich bedauere, dass ich das weiterverschickt habe" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Lesezeichen entfernen" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Diesen Beitrag aus den Lesezeichen entfernen" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Lesezeichen" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Diesen Beitrag zu deinen Lesezeichen hinzufügen" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Nicht mehr folgen" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Aktivitäten dieses Benutzers nicht mehr folgen" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Folge den Aktivitäten dieses Benutzers" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Der Gruppe nicht mehr folgen" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Der Gruppe oder dem Kanal nicht mehr folgen" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Der Gruppe folgen" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Der Gruppe oder dem Kanal folgen" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "Stummschalten" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Alle Aktivitäten dieses Benutzers für immer blockieren" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Löschen" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Diesen Beitrag löschen" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Verstecken" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Verstecke diesen Beitrag und seine Kommentare" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Bearbeiten..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Antworten..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Abgeschnitten (zu tief)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "folgt dir" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Angeheftet" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Lesezeichen gesetzt" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Umfrage" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Abgestimmt" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Ereignis" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "teilte" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "als Antwort auf" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [SENSIBLER INHALT]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Abstimmen" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Geschlossen" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Beendet in" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Video" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Audio" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Anhang" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Alt.-Text..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Ursprungskanal oder -gemeinschaft" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Zeit: " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Älter..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "Über diese Seite" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "powered by " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Ablehnen" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Zeitleiste für Liste '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Angeheftete Beiträge" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Beiträge mit Lesezeichen" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Entwurf veröffentlichen" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "Keine weiteren ungesehenen Beiträge" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Nach oben" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Historie" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Mehr..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Nicht mehr limitieren" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Erlaube Boosts dieses Benutzers" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Limitieren" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Blocke Boosts dieses Benutzers" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Benutzer löschen" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Bestätigen" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Diese Folgeanfrage bestätigen" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Verwerfen" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Diese Folgeanfrage verwerfen" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Stummschaltung aufheben" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Aktivitäten dieses Benutzers nicht mehr blockieren" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Alle Aktivitäten dieses Benutzers blockieren" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Direktnachricht..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Ausstehende Folgebestätigungen" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Personen denen du folgst" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Personen die dir folgen" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Aufräumen" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Erwähnung" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Beendete Umfrage" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Folge-Anfrage" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Zusammenhang anzeigen" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Neu" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Bereits gesehen" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Nichts" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Suchergebnisse für Konto %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "Konto %s wurde nicht gefunden" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Suchergebnisse für Hashtag %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "Nicht gefunden zu Hashtag %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Suchergebnisse für '%s' (könnten mehr sein)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Keine Suchergebnisse für '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "Keine weiteren Treffer für '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "Nichts gefunden für '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Zeitleiste der Instanz anzeigen" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Zeitleiste der Liste '%s' anzeigen" @@ -689,15 +689,15 @@ msgstr "Suchergebnisse für Hashtag #%s" msgid "Recent posts by users in this instance" msgstr "Neueste Beiträge von Benutzern dieser Instanz" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Geblockte Hashtags..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "Optionale URL zum Antworten" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,30 +709,46 @@ msgstr "" "Option 3...\n" "..." -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "Bot API Schlüssel" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "Chat ID" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy Server - vollständige URL (Bsp.: https://ntfy.sh/YourTopic)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "ntfy Token - falls nötig" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "Angeheftet" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "Lesezeichen" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "Entwürfe" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/el_GR.po b/po/el_GR.po index 82d0535..b66c238 100644 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -14,120 +14,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.5\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Ευαίσθητο περιεχόμενο: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Περιγραφή ευαίσθητου περιεχομένου" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Μόνο για αναφερόμενα άτομα: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Απάντηση σε (URL): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "Μη δημοσιεύσεις, αλλά αποθήκευσε σαν προσχέδιο" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Προσχέδιο:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Επισυνάψεις..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Αρχείο:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Καθάρισε αυτό το πεδίο για να διαγράψεις την επισύναψη" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Περιγραφή επισύναψης" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Δημοσκόπηση..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Επιλογές δημοσκόπησης (μία ανά σειρά, μέχρι 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Μία επιλογή" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Πολλαπλές επιλογές" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Τελειώνει σε 5 λεπτά" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Τελειώνει σε 1 ώρα" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Τελειώνει σε 1 ημέρα" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Δημοσίευση" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Περιγραφή ιστότοπου" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Email διαχειριστή" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Διαχειριστής" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d ακολουθείτε, %d ακόλουθοι" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "ιδιωτικό" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "δημόσιο" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "ειδοποιήσεις" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "άνθρωποι" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "διακομιστής" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -135,554 +135,554 @@ msgstr "" "Αναζήτηση δημοσιεύσεων με URL ή περιεχόμενο (κανονική έκφραση), " "@χρήστης@διακομιστής, ή #ετικέτα" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Αναζήτηση περιεχομένου" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "πιστοποιημένος σύνδεσμος" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Τοποθεσία: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Νέα Δημοσίευση..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "Τι έχεις στο μυαλό σου;" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Λειτουργίες..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Ακολούθησε" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(με URL ή user@host)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Ενίσχυση" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(από URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Μου αρέσει" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Ρυθμίσεις Χρήστη..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Προβαλλόμενο όνομα:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Το όνομα σου" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Εικόνα προφίλ: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Διαγραφή τρέχουσας εικόνας προφίλ" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Εικόνα κεφαλίδας (banner): " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Διαγραφή τρέχουσας εικόνας κεφαλίδας" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Βιογραφικό:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Γράψε για τον εαυτό σου εδώ..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Πάντα πρόβαλε ευαίσθητο περιεχόμενο" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Διεύθυνση email για ειδοποιήσεις:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Ειδοποιήσεις Telegram (κλειδί bot και chat id):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "ειδοποιήσεις ntfy (διακομιστής ntfy και token):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "Διατήρηση δημοσιεύσεων για ημέρες (0: ρυθμίσεις διακομιστή):" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Απόρριψη άμεσων μηνυμάτων από άτομα που δεν ακολουθείτε" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Αυτός ο λογαριασμός είναι αυτοματοποιημένος (bot)" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Αυτόματη ενίσχυση όλων των αναφορών σε αυτό το λογαριασμό" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "" "Αυτός ο λογαριασμός είναι ιδιωτικός (οι δημοσιεύσεις δεν εμφανίζονται στο " "διαδίκτυο)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Αναδίπλωση κορυφαίων συζητήσεων εξ'ορισμού" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Τα αιτήματα ακόλουθων πρέπει να εγκρίνονται" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Δημοσίευση στατιστικών ακόλουθων και ακολουθούμενων" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Τρέχουσα τοποθεσία:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Μεταστοιχεία προφίλ (κλειδί=τιμή ζευγάρια σε κάθε γραμμή):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Γλώσσα περιβάλλοντος web:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Νέος κωδικός:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Επανάληψη νέου κωδικού:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Ενημέρωση στοιχείων χρήστη" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Ετικέτες που ακολουθείτε..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Μία ετικέτα ανά γραμμή" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Ενημέρωση ετικετών" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Ανάφερε ότι σου αρέσει αυτή η δημοσίευση" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "Αναίρεση μου αρέσει" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Μπα δεν μ' αρέσει τόσο" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Ξεκαρφίτσωμα" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Ξεκαρφίτσωμα αυτής της δημοσίευσης από τη ροή σας" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Καρφίτσωμα" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Καρφίτσωμα αυτής της δημοσίευσης στη κορυφή της ροής σας" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Ανακοίνωση αυτής της δημοσίευσης στους ακόλουθους σας" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Αφαίρεση ενίσχυσης" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Μετάνιωσα που το ενίσχυσα" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Αφαίρεση σελιδοδείκτη" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Διαγραφή αυτής της δημοσίευσης από τους σελιδοδείκτες σου" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Εισαγωγή σελιδοδείκτη" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Προσθήκη αυτής της δημοσίευσης στους σελιδοδείκτες σου" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Αναίρεση ακολουθίας" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Σταμάτα να ακολουθείς τη δραστηριότητα αυτού του χρήστη" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Ξεκίνα να ακολουθείς τη δραστηριότητα αυτού του χρήστη" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Αναίρεση ακολουθίας ομάδας" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Σταμάτα να ακολουθείς αυτή την ομάδα ή κανάλι" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Ακολούθησε την Ομάδα" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Ξεκίνα να ακολουθείς αυτή την ομάδα ή κανάλι" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "ΣΙΓΑΣΗ" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Αποκλεισμός οποιασδήποτε δραστηριότητας από αυτόν τον χρήστη για πάντα" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Διαγραφή" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Διαγραφή αυτής της δημοσίευσης" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Απόκρυψη" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Απόκρυψη αυτής της δημοσίευσης και των απαντήσεων της" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Επεξεργασία..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Απάντηση..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Έγινε περικοπή (πολύ βαθύ)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "σε ακολουθεί" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Καρφιτσωμένο" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Εισήχθηκε σελιδοδείκτης" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Δημοσκόπηση" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Ψήφισες" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Εκδήλωση" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "ενισχύθηκε" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "σε απάντηση του" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [ΕΥΑΙΣΘΗΤΟ ΠΕΡΙΕΧΟΜΕΝΟ]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Ψήφισε" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Έκλεισε" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Κλείνει σε" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Βίντεο" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Ήχος" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Επισύναψη" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Εναλλακτικό κείμενο..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Πηγή κανάλι ή κοινότητα" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Ώρα: " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Παλαιότερα..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "σχετικά με αυτό τον ιστότοπο" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "λειτουργεί με " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Απόρριψη" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Ροή για λίστα '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Καρφιτσωμένες δημοσιεύσεις" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Σελιδοδείκτες" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Προσχέδια δημοσιεύσεων" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "Δεν υπάρχουν άλλες αδιάβαστες δημοσιεύσεις" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Πίσω στη κορυφή" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Ιστορικό" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Περισσότερα..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Αφαίρεση περιορισμού" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Επέτρεψε ανακοινώσεις (ενισχύσεις) από αυτό το χρήστη" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Περιορισμός" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Απέκλεισε ανακοινώσεις (ενισχύσεις) από αυτό το χρήστη" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Διαγραφή αυτού του χρήστη" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Έγκριση" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Έγκριση αυτού του αιτήματος ακόλουθου" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Απόρριψη" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Απόρριψη αυτού του αιτήματος ακόλουθου" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Αφαίρεση σίγασης" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Διακοπή αποκλεισμού δραστηριοτήτων από αυτό το χρήστη" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Αποκλεισμός οποιασδήποτε δραστηριότητας από αυτό τον χρήστη" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Απευθείας Μήνυμα..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Εκκεμείς επιβεβαιώσεις ακολουθήσεων" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Άνθρωποι που ακολουθείτε" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Άνθρωποι που σας ακολουθούν" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Εκκαθάριση όλων" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Αναφορά" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Ολοκληρωμένη δημοσκόπηση" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Αίτημα Ακόλουθου" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Περιεχόμενο" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Νέο" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Έχει ήδη προβληθεί" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Κανένα" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Αποτελέσματα αναζήτηση για λογαριασμό %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "Ο λογαριασμός %s δεν βρέθηκε" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Αποτελέσματα αναζήτησης για ετικέτα %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "Δε βρέθηκε κάτι για ετικέτα %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Αποτελέσματα αναζήτησης για '%s' (μπορεί να υπάρχουν περισσότερα)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Αποτελέσματα αναζήτησης για '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "Δεν υπάρχουν άλλα αποτελέσματα για '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "Δε βρέθηκε κάτι για '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Προβάλλεται η ροή του διακομιστή" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Προβάλετε η ροή της λίστας '%s'" @@ -696,15 +696,15 @@ msgstr "Αποτελέσματα αναζήτησης για ετικέτα #%s" msgid "Recent posts by users in this instance" msgstr "Πρόσφατες αναρτήσεις από χρήστες σε αυτό τον ιστότοπο" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Αποκλεισμένες ετικέτες..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -712,30 +712,46 @@ msgid "" "..." msgstr "" -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/en.po b/po/en.po index c5a63f0..2273899 100644 --- a/po/en.po +++ b/po/en.po @@ -8,671 +8,671 @@ msgstr "" "Language: en\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "" -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "" -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "" -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "" -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "" -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" msgstr "" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "" -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "" -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "" -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "" -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "" -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "" -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "" -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "" -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "" -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "" -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr "" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "" -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "" -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "" -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "" -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "" -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "" -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "" @@ -686,15 +686,15 @@ msgstr "" msgid "Recent posts by users in this instance" msgstr "" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "" -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -702,30 +702,46 @@ msgid "" "..." msgstr "" -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/es.po b/po/es.po index 0bd35ff..50472d6 100644 --- a/po/es.po +++ b/po/es.po @@ -8,120 +8,120 @@ msgstr "" "Language: es\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Contenido sensible: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Descripción del contenido sensible" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Solo personas mencionadas: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Responder a (URL): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "No enviar. Guardar como borrador" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Borrador:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Adjuntos..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Archivo:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Limpiar este campo para eliminar el adjunto" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Descripción del adjunto" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Encuesta..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Opciones de encuesta (una por línea, hasta 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Una opción" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Opciones múltiples" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Finalizar en 5 minutos" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Finalizar en 1 hora" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Finalizar en 1 día" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Publicar" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Descripción del sitio" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Email del Administrador" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Cuenta del Administrador" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d siguiendo, %d seguidores" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "privado" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "público" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "notificaciones" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "personas" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "instancia" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,554 +129,554 @@ msgstr "" "Buscar publicaciones por URL o contenido (expresiones regulares), cuenta " "@usuario@host , ó #etiqueta" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Buscar contenido" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "link verificado" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Ubicación: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Nueva Publicación..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "¿En qué estás pensando?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Operaciones..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Seguir" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Impulsar" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(por URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Me gusta" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Su nombre" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Bio:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "No me gusta" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Desanclar" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Anclar" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Marcador" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Eliminar" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Ocultar" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Editar..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Responder..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "te sigue" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Anclado" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Encuesta" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Votado" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Evento" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "impulsado" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Votar" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Cerrado" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Cierra en" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Video" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Audio" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Adjunto" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Alt..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Hora: " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "provisto por " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Descartar" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Historia" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Más..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Límite" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Aprobar" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Descartar" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Mención" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Contexto" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Nuevo" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Ya visto" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Ninguno" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,15 +690,15 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "URL opcional a la que responder" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,30 +709,46 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "Anclados" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "Marcados" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "Borradores" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "Envío programado..." + +#: html.c:464 +msgid "Post date and time:" +msgstr "Fecha y hora de publicación:" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "Envíos programados" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "envíos programados" diff --git a/po/es_AR.po b/po/es_AR.po index daef1aa..7b35009 100644 --- a/po/es_AR.po +++ b/po/es_AR.po @@ -8,120 +8,120 @@ msgstr "" "Language: es_AR\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Contenido sensible: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Descripción del contenido sensible" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Solo personas mencionadas: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Responder a (URL): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "No enviar. Guardar como borrador" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Borrador:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Adjuntos..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Archivo:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Limpiar este campo para eliminar el adjunto" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Descripción del adjunto" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Encuesta..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Opciones de encuesta (una por línea, hasta 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Una opción" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Opciones múltiples" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Finalizar en 5 minutos" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Finalizar en 1 hora" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Finalizar en 1 día" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Publicar" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Descripción del sitio" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Email del Administrador" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Cuenta del Administrador" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d siguiendo, %d seguidores" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "privado" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "público" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "notificaciones" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "personas" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "instancia" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,554 +129,554 @@ msgstr "" "Buscar publicaciones por URL o contenido (expresiones regulares), cuenta " "@usuario@host , ó #etiqueta" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Buscar contenido" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "link verificado" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Ubicación: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Nueva Publicación..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "¿En qué estás pensando?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Operaciones..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Seguir" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Impulsar" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(por URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Me gusta" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Su nombre" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Bio:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "No me gusta" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Desanclar" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Anclar" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Marcador" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Eliminar" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Ocultar" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Editar..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Responder..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "te sigue" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Anclado" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Encuesta" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Votado" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Evento" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "impulsado" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Votar" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Cerrado" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Cierra en" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Video" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Audio" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Adjunto" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Alt..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Hora: " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "provisto por " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Descartar" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Historia" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Más..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Límite" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Aprobar" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Descartar" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Mención" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Contexto" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Nuevo" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Ya visto" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Ninguno" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,15 +690,15 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "URL opcional a la que responder" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,30 +709,46 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "Anclados" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "Marcados" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "Borradores" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "Envío programado..." + +#: html.c:464 +msgid "Post date and time:" +msgstr "Fecha y hora de publicación:" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "Envíos programados" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "envíos programados" diff --git a/po/es_UY.po b/po/es_UY.po index 0483184..9561e26 100644 --- a/po/es_UY.po +++ b/po/es_UY.po @@ -8,120 +8,120 @@ msgstr "" "Language: es_UY\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Contenido sensible: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Descripción del contenido sensible" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Solo personas mencionadas: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Responder a (URL): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "No enviar. Guardar como borrador" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Borrador:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Adjuntos..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Archivo:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Limpiar este campo para eliminar el adjunto" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Descripción del adjunto" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Encuesta..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Opciones de encuesta (una por línea, hasta 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Una opción" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Opciones múltiples" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Finalizar en 5 minutos" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Finalizar en 1 hora" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Finalizar en 1 día" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Publicar" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Descripción del sitio" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Email del Administrador" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Cuenta del Administrador" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d siguiendo, %d seguidores" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "privado" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "público" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "notificaciones" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "personas" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "instancia" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,554 +129,554 @@ msgstr "" "Buscar publicaciones por URL o contenido (expresiones regulares), cuenta " "@usuario@host , ó #etiqueta" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Buscar contenido" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "link verificado" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Ubicación: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Nueva Publicación..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "¿En qué estás pensando?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Operaciones..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Seguir" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Impulsar" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(por URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Me gusta" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Su nombre" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Bio:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "No me gusta" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Desanclar" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Anclar" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Marcador" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Eliminar" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Ocultar" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Editar..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Responder..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "te sigue" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Anclado" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Encuesta" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Votado" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Evento" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "impulsado" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Votar" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Cerrado" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Cierra en" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Video" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Audio" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Adjunto" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Alt..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Hora: " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "provisto por " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Descartar" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Historia" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Más..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Límite" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Aprobar" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Descartar" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Mención" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Contexto" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Nuevo" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Ya visto" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Ninguno" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,15 +690,15 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "URL opcional a la que responder" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,30 +709,46 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "Anclados" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "Marcados" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "Borradores" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "Envío programado..." + +#: html.c:464 +msgid "Post date and time:" +msgstr "Fecha y hora de publicación:" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "Envíos programados" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "envíos programados" diff --git a/po/fi.po b/po/fi.po index e644352..52e9608 100644 --- a/po/fi.po +++ b/po/fi.po @@ -8,120 +8,120 @@ msgstr "" "Language: fi\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Arkaluontoista sisältöä: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Arkaluontoisen sisällön kuvaus" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Vain mainituille: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Vastaus (osoite): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "Älä lähetä, tallenna luonnoksena" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Luonnos:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Liitteet..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Tiedosto:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Tyhjennä kenttä poistaaksesi liiteen" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Liitteen kuvaus" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Kysely..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Kyselyn vaihtoehdot (riveittäin, korkeintaan 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Yksi valinta" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Monta valintaa" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Päättyy viiden minuutin päästä" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Päättyy tunnin päästä" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Päättyy päivän päästä" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Julkaise" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Sivuston kuvaus" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Ylläpitäjän sähköposti" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Ylläpitäjän tili" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "Seuraa %d, %d seuraajaa" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "yksityinen" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "julkinen" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "ilmoitukset" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "ihmiset" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "palvelin" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,552 +129,552 @@ msgstr "" "Etsi julkaisuja osoitteella tai sisällön perusteella, @käyttäjä@palvelin " "tai #tagi" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Sisälöhaku" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "varmistettu linkki" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Sijainti: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Uusi julkaisu..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "Mitä on mielessäsi?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Toiminnot..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Seuraa" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(osoite tai käyttäjä@palvelin)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Tehosta" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(osoite)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Tykkää" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Käyttäjäasetukset..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Näytetty nimi:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Nimesi" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Poista nykyinen avatar" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Otsikkokuva: " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Poista nykyinen otsikkokuva" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Kuvaus:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Kirjoita itsestäsi tähän..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Näytä arkaluontoinen sisältö aina" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Sähköposti ilmoituksille:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram-ilmoitukset (botin avain ja chat id):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "nfty-ilmoitukset (ntfy-palvelin ja token):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "Säilytä julkaisut korkeintaan (päivää, 0: palvelimen asetukset)" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Poista yksityisviestit ihmisiltä, joita et seuraa" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Tämä tili on botti" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Tehosta tilin maininnat automaattisesti" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "Tili on yksityinen (julkaisuja ei näytetä sivustolla)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Avaa säikeet automaattisesti" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Vaadi hyväksyntä seurantapyynnöille" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Julkaise seuraamistilastot" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Nykyinen sijainti:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Profiilin metadata (avain=arvo, riveittäin):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Käyttöliitymän kieli:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Uusi salasana:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Toista salasana:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Päivitä käyttäjätiedot" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Seuratut aihetunnisteet..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Aihetunnisteet, riveittäin" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Päivitä aihetunnisteet" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Tykkää tästä julkaisusta" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "Poista tykkäys" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Ei ole omaan makuuni" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Poista kiinnitys" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Poista julkaisun kiinnitys aikajanalle" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Kiinnitä" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Kiinnitä julkaisu aikajanasi alkuun" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Ilmoita julkaisusta seuraajillesi" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Poista tehostus" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Kadun tehostaneeni tätä" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Poista kirjanmerkki" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Poista julkaisu kirjanmerkeistäsi" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Lisää kirjanmerkki" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Lisää julkaisu kirjanmerkkeihisi" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Älä seuraa" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Lakkaa seuraamasta käyttäjän toimintaa" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Seuraa käyttäjän toimintaa" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Älä seuraa ryhmää" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Lopeta ryhnän tai kanavan seuraaminen" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Seuraa ryhmää" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Seuraa tätä ryhmää tai kanavaa" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "VAIMENNA" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Estä kaikki toiminta tältä käyttäjältä" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Poista" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Poista julkaisu" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Piilota" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Piilota julkaisu ja vastaukset" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Muokkaa..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Vastaa..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Katkaistu (liian syvä)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "seuraa sinua" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Kiinnitetty" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Kirjanmerkitty" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Kysely" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Äänestetty" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Tapahtuma" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "tehostettu" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "vastauksena" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [ARKALUONTOISTA SISÄLTÖÄ]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Äänestä" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Sulkeutunut" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Sulkeutuu" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Video" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Ääni" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Liite" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Kuvaus..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Lähdekanava tai -yhteisö" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Aika: " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Vanhemmat..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "tietoa sivustosta" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "moottorina " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Kuittaa" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Listan ”%s” aikajana" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Kiinnitetyt julkaisut" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Kirjanmerkit" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Vedokset" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "Ei lukemattonia julkaisuja" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Takaisin" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Historia" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Enemmän..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Poista rajoitus" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Salli tehostukset käyttäjältä" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Rajoita" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Kiellö tehostukset käyttäjältä" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Poista käyttäjä" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Hyväksy" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Hyväksy seurantapyyntö" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Hylkää" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Hylkää seurantapyyntö" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Poista vaimennus" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Salli toiminta käyttäjältä" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Estä kaikki toiminnat käyttäjältä" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Yksityisviesti..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Hyväksymistä odottavat seurantapyynnöt" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Seuraamasi ihniset" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Sinua seuraavat" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Tyhjennä" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Mainitse" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Päättynyt kysely" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Seurantapyyntö" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Konteksti" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Uusi" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Nähty" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Ei ilmoituksia" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Hakutulokset tilille %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "Tiliä %s ei löytynyt" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Hakutulokset aihetunnisteelle %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "Aihetunnisteella %s ei löytynyt tuloksia" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Tulokset haulle ”%s” (mahdollisesti enemmän tuloksia)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Tulokset haulle ”%s”" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "Ei enempää tuloksia haulle ”%s”" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "Haulla ”%s” ei löytynyt tuloksia" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Palvelimen aikajana" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Listan ”%s” aikajana" @@ -688,15 +688,15 @@ msgstr "Hakutulokset aihetunnisteelle #%s" msgid "Recent posts by users in this instance" msgstr "Viimeaikaisia julkaisuja tällä palvelimella" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Estetyt aihetunnisteet..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "Vastaus julkaisuun (osoite, valinnainen)" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -708,30 +708,46 @@ msgstr "" "Vaihtoehto 3...\n" "..." -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "botin API-avain" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "chat id" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy-palvelin - täydellinen osoite (esim: https://ntfy.sh/YourTopic)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "ntfy token - tarvittaessa" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "kiinnitetyt" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "kirjanmerkit" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "vedokset" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/fr.po b/po/fr.po index d5f4dd6..db2f23e 100644 --- a/po/fr.po +++ b/po/fr.po @@ -8,120 +8,120 @@ msgstr "" "Language: fr\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Contenu sensible :" -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Description du contenu sensible :" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Seulement pour les personnes mentionnées :" -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Répondre à (URL) :" -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "Ne pas envoyer, mais sauvegarder en tant que brouillon" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Brouillon :" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Pièces jointes…" -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Fichier :" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Nettoyer ce champs pour supprimer l'attachement" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Description de l'attachement" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Sondage…" -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Options du sondage (une par ligne, jusqu'à 8) :" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Un seul choix" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Choix multiples" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Se termine dans 5 minutes" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Se termine dans 1 heure" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Se termine dans 1 jour" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Envoyer" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Description du site" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "email de l'admin" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "compte de l'admin" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "Suit %d, %d suiveurs" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "privé" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "public" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "notifications" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "personnes" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "instance" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,553 +129,553 @@ msgstr "" "Chercher les messages par URL ou contenu (expression régulière), comptes " "@utilisateur@hôte, ou #tag" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Recherche de contenu" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "Lien vérifié" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Emplacement : " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Nouveau message…" -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "Qu'avez-vous en tête ?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Opérations…" -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Suivre" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(par URL ou utilisateur@hôte)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "repartager" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(par URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Aime" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Réglages utilisateur…" -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Nom affiché :" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Votre nom" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar : " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Supprimer l'avatar actuel" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Image d'entête (bannière) : " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Supprimer l'image d'entête actuelle" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "CV :" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Décrivez-vous ici…" -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Toujours afficher le contenu sensible" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Adresse email pour les notifications :" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Notifications Telegram (clé de bot et ID de discussion) :" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "notifications ntfy (serveur et jeton ntfy) :" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Nombre de jours maximum de rétention des messages (0 : réglages du serveur) :" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Rejeter les messages directs des personnes que vous ne suivez pas" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Ce compte est un bot" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Auto-repartage de toutes les mentions de ce compte" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "Ce compte est privé (les messages ne sont pas affiché sur le web)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "replier les fils de discussion principaux par défaut" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Les demande de suivi doivent être approuvées" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Publier les suiveurs et les statistiques de suivis" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Localisation actuelle :" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Métadonnées du profile (paires clé=valeur à chaque ligne) :" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Langue de l'interface web :" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Nouveau mot de passe :" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Répétez le nouveau mot de passe :" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Mettre à jour les infos utilisateur" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "hashtags suivis…" -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Un hashtag par ligne" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Mettre à jour les hashtags" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Dire que vous aimez ce message" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "N'aime plus" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Nan, j'aime pas tant que ça" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Dés-épingler" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Dés-épingler ce message de votre chronologie" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Épingler" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Épingler ce message en haut de votre chronologie" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Annoncer ce message à vos suiveurs" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Dé-repartager" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Je regrette d'avoir repartagé ceci" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Retirer le signet" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Supprime ce message de vos signets" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Signet" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Ajouter ce message à vos signets" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Ne plus suivre" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Arrêter de suivre les activités de cet utilisateur" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Commencer à suivre les activité de cet utilisateur" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Ne plus suivre le Groupe" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Arrêter de suivre ce groupe ou canal" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Suivre le Groupe" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Commencer à suivre ce groupe ou canal" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "TAIRE" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Bloquer toute activité de cet utilisateur à jamais" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Supprimer" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Supprimer ce message" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Cacher" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Cacher ce message et ses réponses" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Éditer…" -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Répondre…" -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Tronqué (trop profond)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "vous suit" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Épinglé" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Ajouté au signets" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Sondage" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Voté" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Événement" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "Repartagé" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "En réponse à" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENU SENSIBLE]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Vote" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Terminé" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Termine dans" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Vidéo" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Audio" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Attachement" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Alt…" -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Canal ou communauté source" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Date : " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Plus anciens…" -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "à propos de ce site" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "fonctionne grace à " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Rejeter" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Chronologie pour la liste '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Messages épinglés" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Messages en signets" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Brouillons de messages" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "Pas d'avantage de message non vus" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Retourner en haut" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Historique" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Plus…" -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Illimité" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Permettre les annonces (repartages) par cet utilisateur" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Limite" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Bloquer les annonces (repartages) par cet utilisateur" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Supprimer cet utilisateur" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Approuver" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Approuver cette demande de suivit" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Rejeter" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Rejeter la demande suivante" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Ne plus taire" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Arrêter de bloquer les activités de cet utilisateur" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Bloque toutes les activités de cet utilisateur" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Message direct…" -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Confirmation de suivit en attente" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Personnes que vous suivez" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Personnes qui vous suivent" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Tout nettoyer" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Mention" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Sondage terminé" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Requête de suivit" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Contexte" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Nouveau" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Déjà vu" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Aucun" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Résultats de recher pour le compte %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "Compte %s non trouvé" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Résultats de recherche pour le tag %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "Rien n'a été trouvé pour le tag %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Résultats de recherche pour '%s' (il pourrait y en avoir d'avantage)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Résultats de recherche pour '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "Pas d'avantage de résultats pour '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "Rien n'a été trouvé pour '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Montrer la chronologie de l'instance" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Montrer le chronologie pour la liste '%s'" @@ -689,15 +689,15 @@ msgstr "Résultats de recherche pour le tag #%s" msgid "Recent posts by users in this instance" msgstr "Messages récents des utilisateurs de cette instance" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Hashtags bloqués…" -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -705,30 +705,46 @@ msgid "" "..." msgstr "" -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/it.po b/po/it.po index 346a602..4b69a0b 100644 --- a/po/it.po +++ b/po/it.po @@ -8,120 +8,120 @@ msgstr "" "Language: it\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Contenuto sensibile" -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Descrizione del contenuto sensibile" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Riservato alle persone indicate: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Rispondi a (URL): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "Salva come bozza senza inviare" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Bozza" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Allegati..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "File:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Pulisci ed elimina l'allegato" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Descrizione dell'allegato" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Sondaggio..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Scelte per il sondaggio (una per linea, massimo 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Una scelta" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Scelte multiple" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Termina in 5 minuti" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Termina in 1 ora" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Termina in 1 giorno" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Post" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Descrizione del sito web" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Email dell'amministratore" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Account amministratore" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d seguiti, %d seguenti" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "privato" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "pubblico" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "notifiche" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "persone" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "istanza" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,552 +129,552 @@ msgstr "" "Ricerca post per URL o contenuto (espressione regolare), @user@host " "accounts, #tag" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Ricerca contenuto" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "link verificato" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Posizione: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Nuovo post..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "Cosa stai pensando?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Operazioni..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Segui" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(per URL o user@host)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Annuncia" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(per URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Mi piace" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Impostazioni..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Nome visualizzato:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Il tuo nome" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Elimina l'avatar" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Immagine intestazione (banner): " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Elimina l'immagine d'intestazione" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Bio:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Descriviti qui..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Mostra sempre i contenuti sensibili" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Indirizzo email per le notifiche:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Notifiche Telegram (bot key e chat id):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "Notifiche ntfy (server ntfy e token)" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "Giorni di mantenimento dei post (0: impostazione server)" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Elimina i messaggi diretti delle persone non seguite" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Questo account è un bot" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Annuncio automatico delle citazioni a quest'account" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "Quest'account è privato (post invisibili nel web)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Tieni chiuse le discussioni" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Devi approvare le richieste dei seguenti" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Rendi pubblici seguenti e seguiti" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Posizione corrente:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Dati del profilo (coppie di chiave=valore per ogni linea):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Lingua dell'interfaccia web:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Nuova password:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Reinserisci la password:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Aggiorna dati utente" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Hashtag seguiti..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Un hashtag per linea" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Aggiorna hashtags" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Questo post ti piace" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "Non mi piace" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "No, non mi piace molto" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Sgancia" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Sgancia questo post dalla timeline" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Aggancia" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Aggancia questo post in cima alla timeline" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Annuncia questo post ai tuoi seguenti" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Rimuovi annuncio" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Mi pento di aver annunciato questo" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Elimina segnalibro" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Elimina questo post dai segnalibri" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Segnalibro" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Aggiungi questo post ai segnalibri" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Smetti di seguire" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Smetti di seguire l'utente" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Sequi l'utente" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Smetti di seguire il gruppo" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Smetti di seguire il gruppo o canale" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Segui grupp" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Segui il gruppo o canale" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "Silenzia" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Blocca l'utente" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Elimina" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Elimina questo post" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Nascondi" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Nascondi questo post completamente" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Modifica..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Rispondi..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Troncato (troppo lungo)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "Ti segue" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Aggancia" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Segnalibro" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Sondaggio" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Votato" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Evento" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "Annunciato" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "in risposta a" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENUTO SENSIBILE]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Vota" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Chiuso" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Chiude in" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Video" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Audio" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Allegato" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Testo alternativo..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Provenienza del canale o comunità" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Orario:" -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Vecchi..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "descrizione" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "gestito da " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Congeda" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Timeline per la lista '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Post appuntati" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Post segnati" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Bozze" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "Nessun ulteriore post" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Torna in cima" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Storico" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Ancora..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Senza limite" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Permetti annunci dall'utente" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Limite" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Blocca annunci dall'utente" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Elimina l'utente" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Approva" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Approva richiesta di seguirti" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Scarta" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Scarta richiesta di seguirti" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Rimuovi silenziamento" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Sblocca l'utente" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Blocca l'utente completamente" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Messaggio diretto..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Conferme di seguirti in attesa" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Persone che segui" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Persone che ti seguono" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Pulisci" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Citazione" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Sondaggio concluso" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Richiesta di seguire" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Contesto" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Nuovo" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Già visto" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Niente" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Risultati per account %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "Account %s non trovato" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Risultati per tag %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "Nessun risultato per il tag %S" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Risultati per tag %s (ancora...)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Risultati per %s" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "Nessuna corrispondenza per '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "Non trovato per '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Mostra la timeline dell'istanza" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostra la timeline della lista '%s'" @@ -688,15 +688,15 @@ msgstr "Risultati per tag #%s" msgid "Recent posts by users in this instance" msgstr "Post recenti in questa istanza" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Hashtag bloccati..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "URL facoltativo di risposta" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -708,30 +708,46 @@ msgstr "" "Scelta 3...\n" "..." -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "Chiave per le API del bot" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "Id della chat" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Server ntfy - URL completo (esempio: https://ntfy.sh/YourTopic)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "Token ntfy - se richiesto" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "appuntati" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "segnalibri" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "bozze" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index 7db543e..3eaa17d 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -9,120 +9,120 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "X-Generator: Poedit 3.5\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Conteúdo sensível: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Descrição do conteúdo sensível" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Apenas para pessoas mencionadas: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Resposta para (URL): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "Não enviar, mas armazenar como rascunho" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Rascunho:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Anexos..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Arquivo:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Limpe este campo para remover o anexo" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Descrição do anexo" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Enquete..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Alternativas da enquete (uma por linha, até 8):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Escolha única" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Escolhas múltiplas" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Encerrar em 5 minutos" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Encerrar em 1 hora" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Encerrar em 1 dia" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Publicar" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Descrição do sítio eletrônico" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "E-mail da administração" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Conta de quem administra" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d seguidos, %d seguidores" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "privado" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "público" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "notificações" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "pessoas" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "instância" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -130,552 +130,552 @@ msgstr "" "Procurar publicações por URL ou conteúdo (expressão regular), contas " "(@perfil@servidor) ou #tag" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Buscar conteúdo" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "ligação verificada" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Localização: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Nova publicação..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "O que tem em mente?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Operações..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Seguir" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(por URL ou conta@servidor)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Impulsionar" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(por URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Curtir" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Definições de uso..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Nome a ser exibido:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Seu nome" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Remover avatar atual" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Imagem de cabeçalho (capa): " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Remover imagem de cabeçalho atual" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "Biografia:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Escreva aqui sobre você..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Sempre exibir conteúdo sensível" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Endereço de e-mail para notificações:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificações Telegram (chave do robô e ID da conversa):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificações ntfy (servidor ntfy e token):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "Máximo de dias a preservar publicações (0: definições do servidor):" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensagens diretas de pessoas que você não segue" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Esta conta é robô" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Impulsionar automaticamente todas as menções a esta conta" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "Esta conta é privada (as publicações não são exibidas na Web)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Recolher por padrão as sequências de publicações" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Solicitações de seguimento precisam ser aprovadas" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Publicar métricas de seguidores e seguidos" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Localização atual:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadados do perfil (par de chave=valor em cada linha):" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Idioma da interface Web:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Nova senha:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Repita a nova senha:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Atualizar informações da conta" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Hashtags seguidas..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "Uma hashtag por linha" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Atualizar hashtags" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Declarar que gosta desta publicação" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "Descurtir" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Não gosto tanto assim disso" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Desafixar" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Desafixar esta publicação da sua linha do tempo" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Afixar" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Afixar esta publicação no topo de sua linha do tempo" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Anunciar esta publicação para seus seguidores" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Desimpulsionar" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Arrependo-me de ter impulsionado isso" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Desmarcar" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Remover esta publicação dos seus marcadores" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Marcar" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Adicionar esta publicação aos seus marcadores" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Deixar de seguir" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Parar de acompanhar a atividade deste perfil" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Começar a acompanhar a atividade deste perfil" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Deixar de seguir grupo" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Parar de acompanhar este grupo ou canal" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Seguir grupo" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Começar a acompanhar este grupo ou canal" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "MUDO" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Bloquear toda atividade deste perfil para sempre" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Eliminar" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Apagar esta publicação" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Ocultar" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Ocultar esta publicação e suas respostas" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Editar..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Responder..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Truncada (muito extensa)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "segue você" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Afixada" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Marcada" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Enquete" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Votou" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Evento" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "impulsionou" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "em resposta a" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [CONTEÚDO SENSÍVEL]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Votar" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Encerrada" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Encerra em" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Vídeo" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Áudio" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Anexo" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Texto alternativo..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Canal ou comunidade de origem" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Horário: " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Anteriores..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "sobre este sítio eletrônico" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "movido por " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Dispensar" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Linha do tempo da lista '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Publicações afixadas" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Publicações marcadas" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Publicações em rascunho" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "Sem mais publicações não vistas" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Voltar ao topo" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "Histórico" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Mais..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Retirar restrição" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Permitir anúncios (impulsionamentos) deste perfil" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Restringir" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Bloquear anúncios (impulsionamentos) deste perfil" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Apagar este perfil" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Aprovar" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Aprovar esta solicitação de seguimento" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Descartar" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Descartar esta solicitação de seguimento" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Desbloquear" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Parar de bloquear as atividades deste perfil" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Bloquear toda atividade deste perfil" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Mensagem direta..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Confirmações de seguimento pendentes" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Pessoas que você segue" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Pessoas que seguem você" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Limpar tudo" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Menção" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Enquete encerrada" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Solicitação de seguimento" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Contexto" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Novas" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Já vistas" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Nenhuma" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Resultados da busca pela conta %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "Conta %s não encontrada" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Resultados da busca pela hashtag %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "Nada consta com hashtag %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados da busca por '%s' (pode haver mais)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Resultados da busca por '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "Sem mais combinações para '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "Nada consta com '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Exibindo linha do tempo da instância" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Exibindo linha do tempo da lista '%s'" @@ -689,15 +689,15 @@ msgstr "Resultados da busca pela hashtag #%s" msgid "Recent posts by users in this instance" msgstr "Publicações recentes de perfis desta instância" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Hashtags bloqueadas..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "URL opcional para a qual responder" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,30 +709,46 @@ msgstr "" "Opção 3...\n" "..." -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "Chave de API do robô" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "ID da conversa" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (exemplo: https://ntfy.sh/SeuTópico)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "Token ntfy - se necessário" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "afixadas" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "marcadores" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "rascunhos" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/ru.po b/po/ru.po index e3bdd2c..8877ab6 100644 --- a/po/ru.po +++ b/po/ru.po @@ -15,120 +15,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.0\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "Чувствительное содержимое: " -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "Описание чувствительного содержимого" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "Только для упомянутых людей: " -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "Ответ на (URL): " -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "Не отправлять, сохранить черновик" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "Черновик:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "Вложения..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "Файл:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "Очистите это поле, чтоб удалить вложение" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "Описание вложения" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "Опрос..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "Варианты ответа (один на строку, до 8 шт):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "Один выбор" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "Множественный выбор" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "Заканчивается через 5 минут" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "Заканчивается через 1 час" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "Заканчивается через 1 день" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "Отправить" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "Описание сайта" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "Почта админа" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "Учётная запись админа" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d подписан, %d подписчиков" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "личное" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "публичное" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "уведомления" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "люди" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "экземпляр" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -136,552 +136,552 @@ msgstr "" "Поиск сообщений по URL или содержимому (регулярное выражение), учетной " "записи вида @user@host, или #тегу" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "Поиск содержимого" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "проверенная ссылка" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "Местоположение: " -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "Новое сообщение..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "Что у вас на уме?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "Действия..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "Подписаться" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(по URL или user@host)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "Продвинуть" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(по URL)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "Лайкнуть" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "Пользовательские настройки..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "Отображаемое имя:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "Ваше имя" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "Аватар: " -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "Удалить текущий аватар" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "Заглавное изображение (баннер): " -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "Удалить текущее заглавное изображение" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "О себе:" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "Напишите что-нибудь про себя..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "Всегда показывать чувствительное содержимое" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "Почтовый адрес для уведомлений:" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Уведомления в Telegram (ключ бота и id чата):" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "уведомления в ntfy (сервер и токен ntfy):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "Максимальное время хранения сообщений (0: настройки сервера):" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "Отклонять личные сообщения от незнакомцев" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "Это аккаунт бота" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "Автоматически продвигать все упоминания этого аккаунта" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "Это закрытый аккаунт (сообщения не показываются в сети)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "Сворачивать обсуждения по умолчанию" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "Запросы подписки требуют подтверждения" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "Публиковать статистику подписок и подписчиков" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "Текущее метоположение:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "Метаданные профиля (пары ключ=значение, по одной на строку)" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "Язык интерфейса:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "Новый пароль:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "Повторите новый пароль:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "Обновить данные пользователя" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "Отслеживаемые хештеги..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "По одному на строку" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "Обновить хештеги" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "Отметить сообщение понравившимся" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "Больше не нравится" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "Не так уж и понравилось" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "Открепить" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "Открепить это сообщение из своей ленты" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "Закрепить" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "Закрепить это сообщение в своей ленте" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "Поделиться этим сообщением со своими подписчиками" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "Отменить продвижение" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "Не буду продвигать, пожалуй" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "Удалить из закладок" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "Удалить это сообщение из закладок" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "Добавить в закладки" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "Добавить сообщение в закладки" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "Отписаться" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "Отменить подписку на этого пользователя" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "Начать следовать за этим пользователем" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "Отписаться от группы" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "Отписаться от группы или канала" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "Подписаться на группу" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "Подписаться на группу или канал" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "Заглушить" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "Заглушить всю активность от этого пользователя, навсегда" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "Удалить" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "Удалить это сообщение" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "Скрыть" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "Скрыть это сообщение вместе с обсуждением" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "Редактировать..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "Ответить..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "Обрезано (слишком много)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "подписан на вас" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "Закреплено" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "Добавлено в закладки" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "Опрос" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "Проголосовано" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "Событие" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "поделился" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "в ответ на" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr " [ЧУВСТВИТЕЛЬНО СОДЕРЖИМОЕ]" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "Голос" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "Закрыт" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "Закрывается через" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "Видео" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "Аудио" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "Вложение" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "Описание..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "Исходный канал или сообщество" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "Время: " -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "Ранее..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "про этот сайт" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "на основе " -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "Скрыть" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "Ленты для списка '%s'" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "Закреплённые сообщения" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "Сообщения в закладках" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "Черновики сообщений" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "Всё просмотрено" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "Вернуться наверх" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "История" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "Ещё..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "Без ограничения" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "Разрешить продвижения от этого пользователя" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "Лимит" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "Запретить продвижения от этого пользователя" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "Удалить пользователя" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "Подтвердить" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "Подтвердить запрос на подписку" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "Отклонить" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "Отклонить этот запрос на подписку" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "Отменить глушение" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "Прекратить глушение действий этого пользователя" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "Заглушить все действия этого пользователя" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "Личное сообщение..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "Ожидающие запросы на подписку" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "Ваши подписки" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "Ваши подписчики" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "Очистить всё" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "Упоминание" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "Завершённый опрос" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "Запрос на подписку" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "Контекст" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "Новое" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "Уже просмотрено" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "Нет" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "Результаты поиска для учётной записи %s" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "Учётная запись %s не найдена" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "Результаты поиска тега %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "Ничего не найдено по тегу %s" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Результаты поиска для '%s' (возможно, есть ещё)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "Результаты поиска для '%s'" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "Больше нет совпадений для '%s'" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "Ничего не найдено для '%s'" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "Показываем ленту инстанции" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "Показываем ленты инстанции для списка '%s'" @@ -695,15 +695,15 @@ msgstr "Результаты поиска для тега #%s" msgid "Recent posts by users in this instance" msgstr "Последние сообщения на этой инстанции" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "Заблокированные теги..." -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "Необязательный URL для ответа" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -715,30 +715,46 @@ msgstr "" "Вариант 3...\n" "..." -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "Ключ API для бота" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "Id чата" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "полный URL сервера ntfy (например https://ntfy.sh/YourTopic)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "токен ntfy - если нужен" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "закреплено" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "закладки" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "черновики" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" diff --git a/po/zh.po b/po/zh.po index 8cf1587..9659ac7 100644 --- a/po/zh.po +++ b/po/zh.po @@ -8,672 +8,672 @@ msgstr "" "Language: zh\n" "Content-Type: text/plain; charset=UTF-8\n" -#: html.c:372 +#: html.c:384 msgid "Sensitive content: " msgstr "敏感内容:" -#: html.c:380 +#: html.c:392 msgid "Sensitive content description" msgstr "敏感内容描述" -#: html.c:393 +#: html.c:405 msgid "Only for mentioned people: " msgstr "只有提及到的人:" -#: html.c:416 +#: html.c:428 msgid "Reply to (URL): " msgstr "回复给(网址):" -#: html.c:425 +#: html.c:437 msgid "Don't send, but store as a draft" msgstr "不要发送,但是保存为草稿" -#: html.c:426 +#: html.c:438 msgid "Draft:" msgstr "草稿:" -#: html.c:446 +#: html.c:492 msgid "Attachments..." msgstr "附件..." -#: html.c:469 +#: html.c:515 msgid "File:" msgstr "文件:" -#: html.c:473 +#: html.c:519 msgid "Clear this field to delete the attachment" msgstr "清除此项以删除附件" -#: html.c:482 html.c:507 +#: html.c:528 html.c:553 msgid "Attachment description" msgstr "附件描述" -#: html.c:518 +#: html.c:564 msgid "Poll..." msgstr "投票..." -#: html.c:520 +#: html.c:566 msgid "Poll options (one per line, up to 8):" msgstr "投票选项(每项一行,最多八项):" -#: html.c:532 +#: html.c:578 msgid "One choice" msgstr "单选" -#: html.c:535 +#: html.c:581 msgid "Multiple choices" msgstr "多选" -#: html.c:541 +#: html.c:587 msgid "End in 5 minutes" msgstr "五分钟后结束" -#: html.c:545 +#: html.c:591 msgid "End in 1 hour" msgstr "一小时后结束" -#: html.c:548 +#: html.c:594 msgid "End in 1 day" msgstr "一天后结束" -#: html.c:556 +#: html.c:602 msgid "Post" msgstr "" -#: html.c:653 html.c:660 +#: html.c:699 html.c:706 msgid "Site description" msgstr "站点描述" -#: html.c:671 +#: html.c:717 msgid "Admin email" msgstr "管理员电子邮箱" -#: html.c:684 +#: html.c:730 msgid "Admin account" msgstr "管理员帐号" -#: html.c:752 html.c:1088 +#: html.c:798 html.c:1134 #, c-format msgid "%d following, %d followers" msgstr "%d 个正在关注,%d 个关注者" -#: html.c:842 +#: html.c:888 msgid "RSS" msgstr "RSS" -#: html.c:847 html.c:875 +#: html.c:893 html.c:921 msgid "private" msgstr "私密" -#: html.c:871 +#: html.c:917 msgid "public" msgstr "公开" -#: html.c:879 +#: html.c:925 msgid "notifications" msgstr "通知" -#: html.c:884 +#: html.c:930 msgid "people" msgstr "成员" -#: html.c:888 +#: html.c:934 msgid "instance" msgstr "实例" -#: html.c:897 +#: html.c:943 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" msgstr "" "通过网址、内容(正则表达式)、@用户@服务器 帐号,或者 #话题标签搜索贴子" -#: html.c:898 +#: html.c:944 msgid "Content search" msgstr "内容搜索" -#: html.c:1020 +#: html.c:1066 msgid "verified link" msgstr "已验证的链接" -#: html.c:1077 html.c:2459 html.c:2472 html.c:2481 +#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 msgid "Location: " msgstr "位置:" -#: html.c:1113 +#: html.c:1159 msgid "New Post..." msgstr "新贴子..." -#: html.c:1115 +#: html.c:1161 msgid "What's on your mind?" msgstr "你在想什么?" -#: html.c:1124 +#: html.c:1170 msgid "Operations..." msgstr "操作..." -#: html.c:1139 html.c:1714 html.c:3095 html.c:4412 +#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 msgid "Follow" msgstr "关注" -#: html.c:1141 +#: html.c:1187 msgid "(by URL or user@host)" msgstr "(通过网址或者 用户名@服务器)" -#: html.c:1156 html.c:1690 html.c:4364 +#: html.c:1202 html.c:1736 html.c:4497 msgid "Boost" msgstr "转发" -#: html.c:1158 html.c:1175 +#: html.c:1204 html.c:1221 msgid "(by URL)" msgstr "(通过网址)" -#: html.c:1173 html.c:1669 html.c:4355 +#: html.c:1219 html.c:1715 html.c:4488 msgid "Like" msgstr "点赞" -#: html.c:1278 +#: html.c:1324 msgid "User Settings..." msgstr "用户设置..." -#: html.c:1287 +#: html.c:1333 msgid "Display name:" msgstr "显示名字:" -#: html.c:1293 +#: html.c:1339 msgid "Your name" msgstr "你的名字" -#: html.c:1295 +#: html.c:1341 msgid "Avatar: " msgstr "头像:" -#: html.c:1303 +#: html.c:1349 msgid "Delete current avatar" msgstr "删除当前头像" -#: html.c:1305 +#: html.c:1351 msgid "Header image (banner): " msgstr "页眉图像(横幅)" -#: html.c:1313 +#: html.c:1359 msgid "Delete current header image" msgstr "删除当前的页眉图像" -#: html.c:1315 +#: html.c:1361 msgid "Bio:" msgstr "简介" -#: html.c:1321 +#: html.c:1367 msgid "Write about yourself here..." msgstr "在这里介绍你自己..." -#: html.c:1330 +#: html.c:1376 msgid "Always show sensitive content" msgstr "总是显示敏感内容" -#: html.c:1332 +#: html.c:1378 msgid "Email address for notifications:" msgstr "用于通知的电子邮箱地址" -#: html.c:1340 +#: html.c:1386 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram通知(bot密钥和聊天ID)" -#: html.c:1354 +#: html.c:1400 msgid "ntfy notifications (ntfy server and token):" msgstr "ntfy通知(ntfy服务器和令牌):" -#: html.c:1368 +#: html.c:1414 msgid "Maximum days to keep posts (0: server settings):" msgstr "保存贴子的最大天数(0:服务器设置)" -#: html.c:1382 +#: html.c:1428 msgid "Drop direct messages from people you don't follow" msgstr "丢弃你没有关注的人的私信" -#: html.c:1391 +#: html.c:1437 msgid "This account is a bot" msgstr "此帐号是机器人" -#: html.c:1400 +#: html.c:1446 msgid "Auto-boost all mentions to this account" msgstr "自动转发所有对此帐号的提及" -#: html.c:1409 +#: html.c:1455 msgid "This account is private (posts are not shown through the web)" msgstr "这是一个私密帐号(贴子不会在网页中显示)" -#: html.c:1419 +#: html.c:1465 msgid "Collapse top threads by default" msgstr "默认收起主题帖" -#: html.c:1428 +#: html.c:1474 msgid "Follow requests must be approved" msgstr "关注请求必须经过审批" -#: html.c:1437 +#: html.c:1483 msgid "Publish follower and following metrics" msgstr "展示关注者和正在关注的数量" -#: html.c:1439 +#: html.c:1485 msgid "Current location:" msgstr "当前位置:" -#: html.c:1453 +#: html.c:1499 msgid "Profile metadata (key=value pairs in each line):" msgstr "个人资料元数据(每行一条 键=值)" -#: html.c:1464 +#: html.c:1510 msgid "Web interface language:" msgstr "网页界面语言:" -#: html.c:1469 +#: html.c:1515 msgid "New password:" msgstr "新密码:" -#: html.c:1476 +#: html.c:1522 msgid "Repeat new password:" msgstr "重复新密码:" -#: html.c:1486 +#: html.c:1532 msgid "Update user info" msgstr "更新用户信息:" -#: html.c:1497 +#: html.c:1543 msgid "Followed hashtags..." msgstr "已关注的话题标签..." -#: html.c:1499 html.c:1531 +#: html.c:1545 html.c:1577 msgid "One hashtag per line" msgstr "每行一个话题标签" -#: html.c:1520 html.c:1552 +#: html.c:1566 html.c:1598 msgid "Update hashtags" msgstr "更新话题标签" -#: html.c:1669 +#: html.c:1715 msgid "Say you like this post" msgstr "说你喜欢这个贴子" -#: html.c:1674 html.c:4373 +#: html.c:1720 html.c:4506 msgid "Unlike" msgstr "不喜欢" -#: html.c:1674 +#: html.c:1720 msgid "Nah don't like it that much" msgstr "啊,不怎么喜欢这个" -#: html.c:1680 html.c:4505 +#: html.c:1726 html.c:4643 msgid "Unpin" msgstr "取消置顶" -#: html.c:1680 +#: html.c:1726 msgid "Unpin this post from your timeline" msgstr "从你的时间线上取消置顶这个贴子" -#: html.c:1683 html.c:4500 +#: html.c:1729 html.c:4638 msgid "Pin" msgstr "置顶" -#: html.c:1683 +#: html.c:1729 msgid "Pin this post to the top of your timeline" msgstr "把这条贴子置顶在你的时间线上" -#: html.c:1690 +#: html.c:1736 msgid "Announce this post to your followers" msgstr "向你的关注者宣布这条贴子" -#: html.c:1695 html.c:4381 +#: html.c:1741 html.c:4514 msgid "Unboost" msgstr "取消转发" -#: html.c:1695 +#: html.c:1741 msgid "I regret I boosted this" msgstr "我后悔转发这个了" -#: html.c:1701 html.c:4515 +#: html.c:1747 html.c:4653 msgid "Unbookmark" msgstr "取消收藏" -#: html.c:1701 +#: html.c:1747 msgid "Delete this post from your bookmarks" msgstr "从收藏夹中删除这个贴子" -#: html.c:1704 html.c:4510 +#: html.c:1750 html.c:4648 msgid "Bookmark" msgstr "收藏" -#: html.c:1704 +#: html.c:1750 msgid "Add this post to your bookmarks" msgstr "把这个贴子加入收藏夹" -#: html.c:1710 html.c:3081 html.c:3269 html.c:4425 +#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 msgid "Unfollow" msgstr "取消关注" -#: html.c:1710 html.c:3082 +#: html.c:1756 html.c:3152 msgid "Stop following this user's activity" msgstr "停止关注此用户的动态" -#: html.c:1714 html.c:3096 +#: html.c:1760 html.c:3166 msgid "Start following this user's activity" msgstr "开始关注此用户的动态" -#: html.c:1720 html.c:4455 +#: html.c:1766 html.c:4591 msgid "Unfollow Group" msgstr "取消关注群组" -#: html.c:1721 +#: html.c:1767 msgid "Stop following this group or channel" msgstr "取消关注这个群组或频道" -#: html.c:1725 html.c:4442 +#: html.c:1771 html.c:4578 msgid "Follow Group" msgstr "关注群组" -#: html.c:1726 +#: html.c:1772 msgid "Start following this group or channel" msgstr "开始关注这个群组或频道" -#: html.c:1731 html.c:3118 html.c:4389 +#: html.c:1777 html.c:3188 html.c:4522 msgid "MUTE" msgstr "静音" -#: html.c:1732 +#: html.c:1778 msgid "Block any activity from this user forever" msgstr "永久屏蔽来自这个用户的任何动态" -#: html.c:1737 html.c:3100 html.c:4472 +#: html.c:1783 html.c:3170 html.c:4608 msgid "Delete" msgstr "删除" -#: html.c:1737 +#: html.c:1783 msgid "Delete this post" msgstr "删除这条贴子" -#: html.c:1740 html.c:4397 +#: html.c:1786 html.c:4530 msgid "Hide" msgstr "隐藏" -#: html.c:1740 +#: html.c:1786 msgid "Hide this post and its children" msgstr "删除这条贴子及其回复" -#: html.c:1771 +#: html.c:1817 msgid "Edit..." msgstr "编辑..." -#: html.c:1790 +#: html.c:1837 msgid "Reply..." msgstr "回复..." -#: html.c:1841 +#: html.c:1888 msgid "Truncated (too deep)" msgstr "已被截断(太深了)" -#: html.c:1850 +#: html.c:1897 msgid "follows you" msgstr "关注了你" -#: html.c:1913 +#: html.c:1960 msgid "Pinned" msgstr "已置顶" -#: html.c:1921 +#: html.c:1968 msgid "Bookmarked" msgstr "已收藏" -#: html.c:1929 +#: html.c:1976 msgid "Poll" msgstr "投票" -#: html.c:1936 +#: html.c:1983 msgid "Voted" msgstr "已投票" -#: html.c:1945 +#: html.c:1992 msgid "Event" msgstr "事件" -#: html.c:1977 html.c:2006 +#: html.c:2024 html.c:2053 msgid "boosted" msgstr "已转发" -#: html.c:2022 +#: html.c:2069 msgid "in reply to" msgstr "回复给" -#: html.c:2073 +#: html.c:2120 msgid " [SENSITIVE CONTENT]" msgstr "【敏感内容】" -#: html.c:2250 +#: html.c:2297 msgid "Vote" msgstr "投票" -#: html.c:2260 +#: html.c:2307 msgid "Closed" msgstr "已关闭" -#: html.c:2285 +#: html.c:2332 msgid "Closes in" msgstr "距离关闭还有" -#: html.c:2366 +#: html.c:2413 msgid "Video" msgstr "视频" -#: html.c:2381 +#: html.c:2428 msgid "Audio" msgstr "音频" -#: html.c:2403 +#: html.c:2456 msgid "Attachment" msgstr "附件" -#: html.c:2417 +#: html.c:2470 msgid "Alt..." msgstr "描述..." -#: html.c:2430 +#: html.c:2483 msgid "Source channel or community" msgstr "来源频道或者社群" -#: html.c:2524 +#: html.c:2577 msgid "Time: " msgstr "时间:" -#: html.c:2605 +#: html.c:2658 msgid "Older..." msgstr "更早的..." -#: html.c:2702 +#: html.c:2760 msgid "about this site" msgstr "关于此站点" -#: html.c:2704 +#: html.c:2762 msgid "powered by " msgstr "驱动自" -#: html.c:2769 +#: html.c:2827 msgid "Dismiss" msgstr "忽略" -#: html.c:2786 +#: html.c:2844 #, c-format msgid "Timeline for list '%s'" msgstr "列表'%s'的时间线" -#: html.c:2805 html.c:3846 +#: html.c:2863 html.c:3916 msgid "Pinned posts" msgstr "置顶的贴子" -#: html.c:2817 html.c:3861 +#: html.c:2875 html.c:3931 msgid "Bookmarked posts" msgstr "收藏的贴子" -#: html.c:2829 html.c:3876 +#: html.c:2887 html.c:3946 msgid "Post drafts" msgstr "贴子草稿" -#: html.c:2888 +#: html.c:2958 msgid "No more unseen posts" msgstr "没有更多未读贴子了" -#: html.c:2892 html.c:2992 +#: html.c:2962 html.c:3062 msgid "Back to top" msgstr "返回顶部" -#: html.c:2945 +#: html.c:3015 msgid "History" msgstr "历史" -#: html.c:2997 html.c:3417 +#: html.c:3067 html.c:3487 msgid "More..." msgstr "更多..." -#: html.c:3086 html.c:4408 +#: html.c:3156 html.c:4544 msgid "Unlimit" msgstr "取消限制" -#: html.c:3087 +#: html.c:3157 msgid "Allow announces (boosts) from this user" msgstr "允许来自这个用户的通知(转发)" -#: html.c:3090 html.c:4404 +#: html.c:3160 html.c:4540 msgid "Limit" msgstr "限制" -#: html.c:3091 +#: html.c:3161 msgid "Block announces (boosts) from this user" msgstr "屏蔽来自这个用户的通知(转发)" -#: html.c:3100 +#: html.c:3170 msgid "Delete this user" msgstr "删除此用户" -#: html.c:3105 html.c:4520 +#: html.c:3175 html.c:4658 msgid "Approve" msgstr "允许" -#: html.c:3106 +#: html.c:3176 msgid "Approve this follow request" msgstr "允许这个关注请求" -#: html.c:3109 html.c:4544 +#: html.c:3179 html.c:4682 msgid "Discard" msgstr "丢弃" -#: html.c:3109 +#: html.c:3179 msgid "Discard this follow request" msgstr "丢弃这个关注请求" -#: html.c:3114 html.c:4393 +#: html.c:3184 html.c:4526 msgid "Unmute" msgstr "取消静音" -#: html.c:3115 +#: html.c:3185 msgid "Stop blocking activities from this user" msgstr "停止屏蔽来自此用户的动态" -#: html.c:3119 +#: html.c:3189 msgid "Block any activity from this user" msgstr "屏蔽来自此用户的任何动态" -#: html.c:3127 +#: html.c:3197 msgid "Direct Message..." msgstr "私信..." -#: html.c:3162 +#: html.c:3232 msgid "Pending follow confirmations" msgstr "待处理的关注确认" -#: html.c:3166 +#: html.c:3236 msgid "People you follow" msgstr "你关注的人" -#: html.c:3167 +#: html.c:3237 msgid "People that follow you" msgstr "关注你的人" -#: html.c:3206 +#: html.c:3276 msgid "Clear all" msgstr "清除全部" -#: html.c:3263 +#: html.c:3333 msgid "Mention" msgstr "提及" -#: html.c:3266 +#: html.c:3336 msgid "Finished poll" msgstr "结束投票" -#: html.c:3281 +#: html.c:3351 msgid "Follow Request" msgstr "关注请求" -#: html.c:3364 +#: html.c:3434 msgid "Context" msgstr "上下文" -#: html.c:3375 +#: html.c:3445 msgid "New" msgstr "新建" -#: html.c:3390 +#: html.c:3460 msgid "Already seen" msgstr "已经看过" -#: html.c:3405 +#: html.c:3475 msgid "None" msgstr "没有" -#: html.c:3671 +#: html.c:3741 #, c-format msgid "Search results for account %s" msgstr "账户 %s 的搜索结果" -#: html.c:3678 +#: html.c:3748 #, c-format msgid "Account %s not found" msgstr "没有找到账户 %s" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Search results for tag %s" msgstr "标签 %s 的搜索结果" -#: html.c:3709 +#: html.c:3779 #, c-format msgid "Nothing found for tag %s" msgstr "没有找到标签'%s'的结果" -#: html.c:3725 +#: html.c:3795 #, c-format msgid "Search results for '%s' (may be more)" msgstr "'%s'的搜索结果(可能还有更多)" -#: html.c:3728 +#: html.c:3798 #, c-format msgid "Search results for '%s'" msgstr "'%s'的搜索结果" -#: html.c:3731 +#: html.c:3801 #, c-format msgid "No more matches for '%s'" msgstr "没有更多匹配'%s'的结果了" -#: html.c:3733 +#: html.c:3803 #, c-format msgid "Nothing found for '%s'" msgstr "没有找到'%s'的结果" -#: html.c:3831 +#: html.c:3901 msgid "Showing instance timeline" msgstr "显示实例时间线" -#: html.c:3899 +#: html.c:3984 #, c-format msgid "Showing timeline for list '%s'" msgstr "显示列表'%s'的事件线" @@ -687,15 +687,15 @@ msgstr "标签 #%s 的搜索结果" msgid "Recent posts by users in this instance" msgstr "此实例上的用户最近的贴子" -#: html.c:1529 +#: html.c:1575 msgid "Blocked hashtags..." msgstr "已屏蔽的话题标签" -#: html.c:420 +#: html.c:432 msgid "Optional URL to reply to" msgstr "可选的回复的网址" -#: html.c:527 +#: html.c:573 msgid "" "Option 1...\n" "Option 2...\n" @@ -707,30 +707,46 @@ msgstr "" "选项3...\n" "..." -#: html.c:1346 +#: html.c:1392 msgid "Bot API key" msgstr "Bot API 密钥" -#: html.c:1352 +#: html.c:1398 msgid "Chat id" msgstr "聊天ID" -#: html.c:1360 +#: html.c:1406 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy服务器 - 完整网址(例如:https://ntft.sh/YourTopic)" -#: html.c:1366 +#: html.c:1412 msgid "ntfy token - if needed" msgstr "ntft令牌 - 如果需要的话" -#: html.c:2806 +#: html.c:2864 msgid "pinned" msgstr "置顶" -#: html.c:2818 +#: html.c:2876 msgid "bookmarks" msgstr "收藏夹" -#: html.c:2830 +#: html.c:2888 msgid "drafts" msgstr "草稿" + +#: html.c:462 +msgid "Scheduled post..." +msgstr "" + +#: html.c:464 +msgid "Post date and time:" +msgstr "" + +#: html.c:2899 html.c:3961 +msgid "Scheduled posts" +msgstr "" + +#: html.c:2900 +msgid "scheduled posts" +msgstr "" -- cgit v1.2.3 From 8d86cabb0f687a3f80633771b877c6ba3a2c4f70 Mon Sep 17 00:00:00 2001 From: default Date: Thu, 10 Apr 2025 18:10:29 +0200 Subject: Updated TODO. --- TODO.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO.md b/TODO.md index baa910a..db135d5 100644 --- a/TODO.md +++ b/TODO.md @@ -12,6 +12,8 @@ Important: deleting a follower should do more that just delete the object, see h ## Wishlist +Add account reporting. + The instance timeline should also show boosts from users. Mastoapi: implement /v1/conversations. -- cgit v1.2.3 From 9a238a937e31b36e7ee35109c09764019ee3af1f Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 09:23:43 +0200 Subject: Added some preliminary support for time zones (for scheduled posts). --- html.c | 10 ++++++--- xs_time.h | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/html.c b/html.c index b5d8946..afbc716 100644 --- a/html.c +++ b/html.c @@ -4359,19 +4359,23 @@ int html_post_handler(const xs_dict *req, const char *q_path, } if (xs_is_string(post_date) && *post_date) { - xs *local_pubdate = xs_fmt("%sT%s", post_date, + xs *post_pubdate = xs_fmt("%sT%s", post_date, xs_is_string(post_time) && *post_time ? post_time : "00:00:00"); - time_t t = xs_parse_iso_date(local_pubdate, 1); + time_t t = xs_parse_iso_date(post_pubdate, 0); if (t != 0) { + const char *tz = xs_dict_get_def(snac.config, "tz", "UTC"); + + t -= xs_tz_offset(tz); + xs *iso_date = xs_str_iso_date(t); msg = xs_dict_set(msg, "published", iso_date); snac_debug(&snac, 1, xs_fmt("Published date: [%s]", iso_date)); } else - snac_log(&snac, xs_fmt("Invalid post date: [%s]", local_pubdate)); + snac_log(&snac, xs_fmt("Invalid post date: [%s]", post_pubdate)); } /* is the published date from the future? */ diff --git a/xs_time.h b/xs_time.h index 0e004dc..eaced75 100644 --- a/xs_time.h +++ b/xs_time.h @@ -15,6 +15,8 @@ time_t xs_parse_time(const char *str, const char *fmt, int local); #define xs_parse_localtime(str, fmt) xs_parse_time(str, fmt, 1) #define xs_parse_utctime(str, fmt) xs_parse_time(str, fmt, 0) xs_str *xs_str_time_diff(time_t time_diff); +xs_list *xs_tz_list(void); +int xs_tz_offset(const char *tz); #ifdef XS_IMPLEMENTATION @@ -106,6 +108,75 @@ time_t xs_parse_iso_date(const char *iso_date, int local) } +/** timezones **/ + +/* intentionally dead simple */ + +struct { + const char *tz; /* timezone name */ + float h_offset; /* hour offset */ +} xs_tz[] = { + { "UTC", 0 }, + { "GMT", 0 }, + { "GMT+1", -1 }, + { "GMT+2", -2 }, + { "GMT+3", -3 }, + { "GMT+4", -4 }, + { "GMT+5", -5 }, + { "GMT+6", -6 }, + { "GMT+7", -7 }, + { "GMT+8", -8 }, + { "GMT+9", -9 }, + { "GMT+10", -10 }, + { "GMT+11", -11 }, + { "GMT+12", -12 }, + { "GMT-1", 1 }, + { "GMT-2", 2 }, + { "GMT-3", 3 }, + { "GMT-4", 4 }, + { "GMT-5", 5 }, + { "GMT-6", 6 }, + { "GMT-7", 7 }, + { "GMT-8", 8 }, + { "GMT-9", 9 }, + { "GMT-10", 10 }, + { "GMT-11", 11 }, + { "GMT-12", 12 }, + { "GMT-13", 13 }, + { "GMT-14", 14 }, + { "GMT-15", 15 }, + { "CET", -1 }, + { "CST", -6 }, + { "MST", -7 }, + { "PST", -8 }, + { NULL, 0 } +}; + + +xs_list *xs_tz_list(void) +/* returns the list of supported timezones */ +{ + xs_list *l = xs_list_new(); + + for (int n = 0; xs_tz[n].tz != NULL; n++) + l = xs_list_append(l, xs_tz[n].tz); + + return l; +} + + +int xs_tz_offset(const char *tz) +/* returns the offset in seconds from the specified Time Zone to UTC */ +{ + for (int n = 0; xs_tz[n].tz != NULL; n++) { + if (strcmp(xs_tz[n].tz, tz) == 0) + return xs_tz[n].h_offset * 3600; + } + + return 0; +} + + #endif /* XS_IMPLEMENTATION */ #endif /* _XS_TIME_H */ -- cgit v1.2.3 From f1f288699805b13bcd8f296667923ae5d2ae45ed Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 09:33:17 +0200 Subject: Fixed offset sign because I'm a MORON. --- html.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html.c b/html.c index afbc716..b04e001 100644 --- a/html.c +++ b/html.c @@ -4367,7 +4367,7 @@ int html_post_handler(const xs_dict *req, const char *q_path, if (t != 0) { const char *tz = xs_dict_get_def(snac.config, "tz", "UTC"); - t -= xs_tz_offset(tz); + t += xs_tz_offset(tz); xs *iso_date = xs_str_iso_date(t); msg = xs_dict_set(msg, "published", iso_date); -- cgit v1.2.3 From d78bd5a4f98fab9c7eb82837b0d783cdd28d00ca Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 09:51:44 +0200 Subject: Added more timezones. --- xs_time.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xs_time.h b/xs_time.h index eaced75..4da9463 100644 --- a/xs_time.h +++ b/xs_time.h @@ -145,7 +145,9 @@ struct { { "GMT-13", 13 }, { "GMT-14", 14 }, { "GMT-15", 15 }, + { "WET", 0 }, { "CET", -1 }, + { "AST", -4 }, { "CST", -6 }, { "MST", -7 }, { "PST", -8 }, -- cgit v1.2.3 From fb9e0fd21b7210e2ff71cc364b2285b1231fff60 Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 10:04:31 +0200 Subject: Mention the timezone in the 'post date and time' prompt. --- html.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/html.c b/html.c index b04e001..68a6b73 100644 --- a/html.c +++ b/html.c @@ -455,13 +455,15 @@ xs_html *html_note(snac *user, const char *summary, } if (edit_id == NULL || is_draft || is_scheduled(user, edit_id)) { + xs *pdat = xs_fmt(L("Post date and time (timezone: %s):"), xs_dict_get_def(user->config, "tz", "UTC")); + xs_html_add(form, xs_html_tag("p", xs_html_tag("details", xs_html_tag("summary", xs_html_text(L("Scheduled post..."))), xs_html_tag("p", - xs_html_text(L("Post date and time:")), + xs_html_text(pdat), xs_html_sctag("br", NULL), xs_html_sctag("input", xs_html_attr("type", "date"), -- cgit v1.2.3 From 29c9d6c166206f06c138c65b23c92f1b1db419a4 Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 10:06:21 +0200 Subject: Updated po files. --- po/cs.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/de_DE.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/el_GR.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/en.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/es.po | 349 ++++++++++++++++++++++++++++++------------------------------ po/es_AR.po | 349 ++++++++++++++++++++++++++++++------------------------------ po/es_UY.po | 349 ++++++++++++++++++++++++++++++------------------------------ po/fi.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/fr.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/it.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/pt_BR.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/ru.po | 346 ++++++++++++++++++++++++++++++----------------------------- po/zh.po | 346 ++++++++++++++++++++++++++++++----------------------------- 13 files changed, 2275 insertions(+), 2232 deletions(-) diff --git a/po/cs.po b/po/cs.po index f8812db..8bd9220 100644 --- a/po/cs.po +++ b/po/cs.po @@ -32,649 +32,649 @@ msgstr "Nesdílet, pouze uložit do rozepsaných" msgid "Draft:" msgstr "Rozepsané:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Přílohy..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Soubor:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Pro smazání přilohy vymažte toto pole" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Popisek přílohy" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Anketa..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Možnosti ankety (jedna na řádek, max 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Vyber jednu" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Vyber více možností" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Konec za 5 minut" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Konec za 1 hodinu" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Konec za 1 den" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Poslat" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Popisek stránky" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Email administrátora" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Účet adminitrátora" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d sledovaných, %d sledujících" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "soukromé" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "veřejné" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "upozornění" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "lidé" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "instance" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" msgstr "" "Vyhledejte příspěvek podle URL (regex), @uživatel@instance účtu, nebo #tagu" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Hledání obsahu" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "ověřený odkaz" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Místo: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Nový příspěvek..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "Co se vám honí hlavou?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Operace..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Sledovat" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(podle URL nebo @uživatel@instance)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Boostit" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(podle URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Líbí" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Nastavení..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Jméno:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Vaše jméno" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Smazat současný avatar" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Obrázek v záhlaví profilu: " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Smazat současný obrázek v záhlaví" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Bio:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Napište sem něco o sobě..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Vždy zobrazit příspěvky s varováním o citlivém obsahu" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Emailová adresa pro upozornění" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Upozornění na Telegram (bot klíč a chat id):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "ntfy notifikace (ntfy server a token):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "Životnost příspěvků ve dnech (0: nastavení serveru):" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Zahodit soukromé zprávy od lidí, které nesledujete" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Tenhle účet je robot" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Automaticky boostovat všechny zmíňky o tomto účtu" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "" "Tento účet je soukromý (příspěvky nejsou zobrazitelné napříč internetem)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Zobrazovat vlákna složená" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Žádosti o sledování je nutno manuálně potvrdit" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Zobraz údaje o počtu sledovaných a sledujících" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Geolokace:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata profilu (klíč=hodnota na jeden řádek):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Jazyk rozhraní:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Nové heslo:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Zopakujte nové heslo:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Uložit" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Sledované hashtagy..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Jeden hashtag na řádek" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Aktualizovat hashtagy" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Dejte najevo, že se vám příspěvek líbí" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "Nelíbí" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Vlastně se mi to zas tak nelíbí" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Odepnout" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Odepnout tento příspěvek z vaší osy" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Připnout" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Připnout tento příspěvěk na začátek vaší osy" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Ukázat tenhle příspěvek vašim sledujícím" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Odboostit" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Boostit to byl blbej nápad" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Zahodit" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Odstraň tenhle příspěvěk ze svých záložek" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Uložit" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Uložit tenhle příspěvek mezi záložky" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Přestat sledovat" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Přestat sledovat tohoto uživatele" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Začít sledovat tohoto uživatele" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Přestat Sledovat Skupinu" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Přestat sledovat tuto skupinu nebo kanál" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Sledovat Skupinu" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Začít sledovat tuto skupinu nebo kanál" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "ZTIŠIT" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Jednou provždy zablokovat všechno od tohoto uživatele" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Smazat" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Smazat tento příspěvek" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Schovat" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Schovat tento příspěvek a příspěvky pod ním" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Editovat..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Odpovědět..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Ořezáno (moc hluboké)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "sleduje vás" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Připnuto" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Zazáložkováno" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Anketa" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Odhlasováno" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Událost" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "boostuje" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "odpověď pro" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr "[CITLIVÝ OBSAH]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Hlasuj" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Uzavřeno" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Končí za" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Video" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Audio" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Příloha" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Popisek..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Čas:" -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Starší..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "o této stránce" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "pohání " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Zahodit" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Časová osa pro seznam '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Připnuté příspěvky" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Záložky" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Rozepsané příspěky" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "Nic víc nového" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Zpátky nahoru" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Historie" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Více..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Povolit boosty" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Zobrazovat boosty od tohoto uživatele" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Skrýt boosty" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Ztišit boosty od tohoto uživatele" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Smazat tohoto užiatele" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Schválit" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Schválit žádost o sledování" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Zahodit" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Zahodit žádost o sledování" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Zrušit ztišení" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Přestat blokovat tohoto uživatele" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Zablokovat všechno od tohoto uživatele" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Soukomá zpráva..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Dosud nepotvrzené žádosti o sledování" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Lidé, které sledujete" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Lidé, kteří vás sledují" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Smazat vše" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Zmínil vás" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Ukončená anketa" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Žádost o sledování" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Kontext" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Nové" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Zobrazeno dříve" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Nic" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Výsledky vyhledávání účtu %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "Účet %s nenalezen" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Výsledky k tagu %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "Nic k tagu %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Výsledky vyhledávání pro '%s' (může toho být víc)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Výsledky vyhledávání pro '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "Nic víc pro '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "Žádný výsledek pro '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Časová osa místní instance" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Časová osa pro seznam '%s'" @@ -688,7 +688,7 @@ msgstr "Výsledky vyhledávání tagu #%s" msgid "Recent posts by users in this instance" msgstr "Nedávné příspěvky od uživatelů této instance" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Blokované hashtagy..." @@ -696,7 +696,7 @@ msgstr "Blokované hashtagy..." msgid "Optional URL to reply to" msgstr "URL adresa příspěvku, na který odpovědět" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -708,46 +708,50 @@ msgstr "" "Možnost 3...\n" "..." -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "API klíč Bota" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "Chat id" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy server - celá URL adresa (např: https://ntfy.sh/VaseTema)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "ntfy token - pokud je zapotřebí" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "připnuté" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "záložky" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "rozepsané" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/de_DE.po b/po/de_DE.po index acd35a0..f14cde5 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -31,96 +31,96 @@ msgstr "Nicht senden, aber als Entwurf speichern" msgid "Draft:" msgstr "Entwurf: " -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Anhänge..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Datei:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Feld löschen, um den Anhang zu löschen" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Beschreibung des Anhangs" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Umfrage..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Umfrageoptionen (eine pro Zeile, bis zu 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Einfachauswahl" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Mehrfachauswahl" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Endet in 5 Minuten" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Endet in 1 Stunde" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Endet in 1 Tag" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Beitrag veröffentlichen" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Seitenbeschreibung" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Admin E-Mail" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Admin-Konto" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d Gefolgte, %d Folgende" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "Privat" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "Öffentlich" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "Benachrichtigungen" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "Personen" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "Instanz" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -128,554 +128,554 @@ msgstr "" "Durchsuche Beiträge nach URL oder Inhalt (regulärer Ausdruck), @user@host " "Konten, oder #tag" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Inhaltssuche" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "verifizierter Link" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Standort: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Neuer Beitrag..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "Was beschäftigt dich?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Aktionen..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Folgen" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(mit URL oder user@host)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Boosten" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(mit URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Gefällt mir" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Einstellungen..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Anzeigename:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Dein Name" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Aktuellen Avatar löschen" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Titelbild (Banner): " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Aktuelles Titelbild löschen" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Über dich:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Erzähle etwas von dir..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Sensible Inhalte immer anzeigen" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "E-Mail Adresse für Benachrichtigungen:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram Benachrichtigungen (Bot Schlüssel und Chat ID):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "NTFY Benachrichtigungen (ntfy Server und Token):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "Aufbewahrungsfrist der Beiträge in Tagen (0 = Serverstandard):" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Blocke Direktnachrichten von Personen denen du nicht folgst" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Dieses Konto ist ein Bot" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Automatisches Boosten bei Erwähnungen dieses Kontos" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "" "Dieses Konto ist privat (Beiträge werden nicht in der Weboberfläche " "angezeigt)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Themen standardmäßig einklappen" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Folgeanfragen müssen genehmigt werden" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Veröffentliche die Anzahl von Followern und Gefolgten." -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Standort:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Profil-Metadaten (Begriff=Wert Paare, einer pro Zeile):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Sprache der Weboberfläche:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Neues Passwort:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Neues Passwort wiederholen:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Benutzerinformationen aktualisieren" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Gefolgte Hashtags..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Ein Hashtag pro Zeile" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Hashtags aktualisieren" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Sag, dass dir dieser Beiträg gefällt" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "Gefällt mir zurücknehmen" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Nee, gefällt mir nicht so gut" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Pin entfernen" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Pin für diesen Beitrag aus deiner Zeitleiste entfernen" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Anpinnen" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Pinne diesen Beitrag an den Anfang deiner Zeitleiste" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Diesen Beitrag an deine Follower weiterschicken" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Boost zurücknehmen" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Ich bedauere, dass ich das weiterverschickt habe" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Lesezeichen entfernen" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Diesen Beitrag aus den Lesezeichen entfernen" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Lesezeichen" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Diesen Beitrag zu deinen Lesezeichen hinzufügen" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Nicht mehr folgen" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Aktivitäten dieses Benutzers nicht mehr folgen" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Folge den Aktivitäten dieses Benutzers" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Der Gruppe nicht mehr folgen" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Der Gruppe oder dem Kanal nicht mehr folgen" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Der Gruppe folgen" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Der Gruppe oder dem Kanal folgen" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "Stummschalten" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Alle Aktivitäten dieses Benutzers für immer blockieren" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Löschen" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Diesen Beitrag löschen" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Verstecken" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Verstecke diesen Beitrag und seine Kommentare" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Bearbeiten..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Antworten..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Abgeschnitten (zu tief)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "folgt dir" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Angeheftet" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Lesezeichen gesetzt" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Umfrage" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Abgestimmt" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Ereignis" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "teilte" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "als Antwort auf" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [SENSIBLER INHALT]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Abstimmen" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Geschlossen" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Beendet in" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Video" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Audio" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Anhang" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Alt.-Text..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Ursprungskanal oder -gemeinschaft" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Zeit: " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Älter..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "Über diese Seite" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "powered by " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Ablehnen" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Zeitleiste für Liste '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Angeheftete Beiträge" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Beiträge mit Lesezeichen" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Entwurf veröffentlichen" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "Keine weiteren ungesehenen Beiträge" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Nach oben" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Historie" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Mehr..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Nicht mehr limitieren" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Erlaube Boosts dieses Benutzers" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Limitieren" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Blocke Boosts dieses Benutzers" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Benutzer löschen" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Bestätigen" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Diese Folgeanfrage bestätigen" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Verwerfen" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Diese Folgeanfrage verwerfen" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Stummschaltung aufheben" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Aktivitäten dieses Benutzers nicht mehr blockieren" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Alle Aktivitäten dieses Benutzers blockieren" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Direktnachricht..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Ausstehende Folgebestätigungen" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Personen denen du folgst" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Personen die dir folgen" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Aufräumen" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Erwähnung" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Beendete Umfrage" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Folge-Anfrage" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Zusammenhang anzeigen" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Neu" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Bereits gesehen" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Nichts" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Suchergebnisse für Konto %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "Konto %s wurde nicht gefunden" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Suchergebnisse für Hashtag %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "Nicht gefunden zu Hashtag %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Suchergebnisse für '%s' (könnten mehr sein)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Keine Suchergebnisse für '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "Keine weiteren Treffer für '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "Nichts gefunden für '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Zeitleiste der Instanz anzeigen" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Zeitleiste der Liste '%s' anzeigen" @@ -689,7 +689,7 @@ msgstr "Suchergebnisse für Hashtag #%s" msgid "Recent posts by users in this instance" msgstr "Neueste Beiträge von Benutzern dieser Instanz" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Geblockte Hashtags..." @@ -697,7 +697,7 @@ msgstr "Geblockte Hashtags..." msgid "Optional URL to reply to" msgstr "Optionale URL zum Antworten" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,46 +709,50 @@ msgstr "" "Option 3...\n" "..." -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "Bot API Schlüssel" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "Chat ID" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy Server - vollständige URL (Bsp.: https://ntfy.sh/YourTopic)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "ntfy Token - falls nötig" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "Angeheftet" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "Lesezeichen" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "Entwürfe" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/el_GR.po b/po/el_GR.po index b66c238..0e45297 100644 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -38,96 +38,96 @@ msgstr "Μη δημοσιεύσεις, αλλά αποθήκευσε σαν πρ msgid "Draft:" msgstr "Προσχέδιο:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Επισυνάψεις..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Αρχείο:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Καθάρισε αυτό το πεδίο για να διαγράψεις την επισύναψη" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Περιγραφή επισύναψης" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Δημοσκόπηση..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Επιλογές δημοσκόπησης (μία ανά σειρά, μέχρι 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Μία επιλογή" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Πολλαπλές επιλογές" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Τελειώνει σε 5 λεπτά" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Τελειώνει σε 1 ώρα" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Τελειώνει σε 1 ημέρα" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Δημοσίευση" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Περιγραφή ιστότοπου" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Email διαχειριστή" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Διαχειριστής" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d ακολουθείτε, %d ακόλουθοι" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "ιδιωτικό" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "δημόσιο" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "ειδοποιήσεις" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "άνθρωποι" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "διακομιστής" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -135,554 +135,554 @@ msgstr "" "Αναζήτηση δημοσιεύσεων με URL ή περιεχόμενο (κανονική έκφραση), " "@χρήστης@διακομιστής, ή #ετικέτα" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Αναζήτηση περιεχομένου" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "πιστοποιημένος σύνδεσμος" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Τοποθεσία: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Νέα Δημοσίευση..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "Τι έχεις στο μυαλό σου;" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Λειτουργίες..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Ακολούθησε" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(με URL ή user@host)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Ενίσχυση" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(από URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Μου αρέσει" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Ρυθμίσεις Χρήστη..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Προβαλλόμενο όνομα:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Το όνομα σου" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Εικόνα προφίλ: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Διαγραφή τρέχουσας εικόνας προφίλ" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Εικόνα κεφαλίδας (banner): " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Διαγραφή τρέχουσας εικόνας κεφαλίδας" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Βιογραφικό:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Γράψε για τον εαυτό σου εδώ..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Πάντα πρόβαλε ευαίσθητο περιεχόμενο" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Διεύθυνση email για ειδοποιήσεις:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Ειδοποιήσεις Telegram (κλειδί bot και chat id):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "ειδοποιήσεις ntfy (διακομιστής ntfy και token):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "Διατήρηση δημοσιεύσεων για ημέρες (0: ρυθμίσεις διακομιστή):" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Απόρριψη άμεσων μηνυμάτων από άτομα που δεν ακολουθείτε" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Αυτός ο λογαριασμός είναι αυτοματοποιημένος (bot)" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Αυτόματη ενίσχυση όλων των αναφορών σε αυτό το λογαριασμό" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "" "Αυτός ο λογαριασμός είναι ιδιωτικός (οι δημοσιεύσεις δεν εμφανίζονται στο " "διαδίκτυο)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Αναδίπλωση κορυφαίων συζητήσεων εξ'ορισμού" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Τα αιτήματα ακόλουθων πρέπει να εγκρίνονται" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Δημοσίευση στατιστικών ακόλουθων και ακολουθούμενων" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Τρέχουσα τοποθεσία:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Μεταστοιχεία προφίλ (κλειδί=τιμή ζευγάρια σε κάθε γραμμή):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Γλώσσα περιβάλλοντος web:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Νέος κωδικός:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Επανάληψη νέου κωδικού:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Ενημέρωση στοιχείων χρήστη" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Ετικέτες που ακολουθείτε..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Μία ετικέτα ανά γραμμή" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Ενημέρωση ετικετών" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Ανάφερε ότι σου αρέσει αυτή η δημοσίευση" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "Αναίρεση μου αρέσει" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Μπα δεν μ' αρέσει τόσο" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Ξεκαρφίτσωμα" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Ξεκαρφίτσωμα αυτής της δημοσίευσης από τη ροή σας" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Καρφίτσωμα" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Καρφίτσωμα αυτής της δημοσίευσης στη κορυφή της ροής σας" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Ανακοίνωση αυτής της δημοσίευσης στους ακόλουθους σας" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Αφαίρεση ενίσχυσης" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Μετάνιωσα που το ενίσχυσα" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Αφαίρεση σελιδοδείκτη" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Διαγραφή αυτής της δημοσίευσης από τους σελιδοδείκτες σου" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Εισαγωγή σελιδοδείκτη" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Προσθήκη αυτής της δημοσίευσης στους σελιδοδείκτες σου" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Αναίρεση ακολουθίας" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Σταμάτα να ακολουθείς τη δραστηριότητα αυτού του χρήστη" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Ξεκίνα να ακολουθείς τη δραστηριότητα αυτού του χρήστη" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Αναίρεση ακολουθίας ομάδας" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Σταμάτα να ακολουθείς αυτή την ομάδα ή κανάλι" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Ακολούθησε την Ομάδα" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Ξεκίνα να ακολουθείς αυτή την ομάδα ή κανάλι" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "ΣΙΓΑΣΗ" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Αποκλεισμός οποιασδήποτε δραστηριότητας από αυτόν τον χρήστη για πάντα" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Διαγραφή" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Διαγραφή αυτής της δημοσίευσης" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Απόκρυψη" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Απόκρυψη αυτής της δημοσίευσης και των απαντήσεων της" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Επεξεργασία..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Απάντηση..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Έγινε περικοπή (πολύ βαθύ)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "σε ακολουθεί" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Καρφιτσωμένο" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Εισήχθηκε σελιδοδείκτης" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Δημοσκόπηση" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Ψήφισες" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Εκδήλωση" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "ενισχύθηκε" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "σε απάντηση του" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [ΕΥΑΙΣΘΗΤΟ ΠΕΡΙΕΧΟΜΕΝΟ]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Ψήφισε" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Έκλεισε" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Κλείνει σε" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Βίντεο" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Ήχος" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Επισύναψη" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Εναλλακτικό κείμενο..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Πηγή κανάλι ή κοινότητα" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Ώρα: " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Παλαιότερα..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "σχετικά με αυτό τον ιστότοπο" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "λειτουργεί με " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Απόρριψη" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Ροή για λίστα '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Καρφιτσωμένες δημοσιεύσεις" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Σελιδοδείκτες" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Προσχέδια δημοσιεύσεων" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "Δεν υπάρχουν άλλες αδιάβαστες δημοσιεύσεις" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Πίσω στη κορυφή" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Ιστορικό" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Περισσότερα..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Αφαίρεση περιορισμού" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Επέτρεψε ανακοινώσεις (ενισχύσεις) από αυτό το χρήστη" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Περιορισμός" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Απέκλεισε ανακοινώσεις (ενισχύσεις) από αυτό το χρήστη" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Διαγραφή αυτού του χρήστη" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Έγκριση" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Έγκριση αυτού του αιτήματος ακόλουθου" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Απόρριψη" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Απόρριψη αυτού του αιτήματος ακόλουθου" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Αφαίρεση σίγασης" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Διακοπή αποκλεισμού δραστηριοτήτων από αυτό το χρήστη" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Αποκλεισμός οποιασδήποτε δραστηριότητας από αυτό τον χρήστη" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Απευθείας Μήνυμα..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Εκκεμείς επιβεβαιώσεις ακολουθήσεων" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Άνθρωποι που ακολουθείτε" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Άνθρωποι που σας ακολουθούν" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Εκκαθάριση όλων" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Αναφορά" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Ολοκληρωμένη δημοσκόπηση" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Αίτημα Ακόλουθου" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Περιεχόμενο" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Νέο" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Έχει ήδη προβληθεί" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Κανένα" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Αποτελέσματα αναζήτηση για λογαριασμό %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "Ο λογαριασμός %s δεν βρέθηκε" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Αποτελέσματα αναζήτησης για ετικέτα %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "Δε βρέθηκε κάτι για ετικέτα %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Αποτελέσματα αναζήτησης για '%s' (μπορεί να υπάρχουν περισσότερα)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Αποτελέσματα αναζήτησης για '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "Δεν υπάρχουν άλλα αποτελέσματα για '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "Δε βρέθηκε κάτι για '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Προβάλλεται η ροή του διακομιστή" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Προβάλετε η ροή της λίστας '%s'" @@ -696,7 +696,7 @@ msgstr "Αποτελέσματα αναζήτησης για ετικέτα #%s" msgid "Recent posts by users in this instance" msgstr "Πρόσφατες αναρτήσεις από χρήστες σε αυτό τον ιστότοπο" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Αποκλεισμένες ετικέτες..." @@ -704,7 +704,7 @@ msgstr "Αποκλεισμένες ετικέτες..." msgid "Optional URL to reply to" msgstr "" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -712,46 +712,50 @@ msgid "" "..." msgstr "" -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/en.po b/po/en.po index 2273899..51c8266 100644 --- a/po/en.po +++ b/po/en.po @@ -32,647 +32,647 @@ msgstr "" msgid "Draft:" msgstr "" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "" -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "" -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" msgstr "" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "" -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "" -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "" -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "" -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "" -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "" -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "" -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "" -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "" -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "" -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr "" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "" -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "" -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "" -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "" -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "" -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "" -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "" @@ -686,7 +686,7 @@ msgstr "" msgid "Recent posts by users in this instance" msgstr "" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "" @@ -694,7 +694,7 @@ msgstr "" msgid "Optional URL to reply to" msgstr "" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -702,46 +702,50 @@ msgid "" "..." msgstr "" -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/es.po b/po/es.po index 50472d6..ffeac99 100644 --- a/po/es.po +++ b/po/es.po @@ -32,96 +32,96 @@ msgstr "No enviar. Guardar como borrador" msgid "Draft:" msgstr "Borrador:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Adjuntos..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Archivo:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Limpiar este campo para eliminar el adjunto" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Descripción del adjunto" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Encuesta..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Opciones de encuesta (una por línea, hasta 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Una opción" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Opciones múltiples" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Finalizar en 5 minutos" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Finalizar en 1 hora" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Finalizar en 1 día" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Publicar" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Descripción del sitio" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Email del Administrador" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Cuenta del Administrador" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d siguiendo, %d seguidores" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "privado" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "público" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "notificaciones" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "personas" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "instancia" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,554 +129,554 @@ msgstr "" "Buscar publicaciones por URL o contenido (expresiones regulares), cuenta " "@usuario@host , ó #etiqueta" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Buscar contenido" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "link verificado" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Ubicación: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Nueva Publicación..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "¿En qué estás pensando?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Operaciones..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Seguir" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Impulsar" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(por URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Me gusta" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Su nombre" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Bio:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "No me gusta" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Desanclar" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Anclar" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Marcador" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Eliminar" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Ocultar" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Editar..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Responder..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "te sigue" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Anclado" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Encuesta" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Votado" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Evento" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "impulsado" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Votar" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Cerrado" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Cierra en" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Video" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Audio" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Adjunto" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Alt..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Hora: " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "provisto por " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Descartar" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Historia" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Más..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Límite" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Aprobar" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Descartar" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Mención" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Contexto" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Nuevo" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Ya visto" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Ninguno" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,7 +690,7 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." @@ -698,7 +698,7 @@ msgstr "Etiquetas bloqueadas..." msgid "Optional URL to reply to" msgstr "URL opcional a la que responder" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,46 +709,47 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "Anclados" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "Marcados" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "Borradores" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "Envío programado..." -#: html.c:464 -msgid "Post date and time:" -msgstr "Fecha y hora de publicación:" - -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "Envíos programados" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "envíos programados" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "Fecha y hora de publicación (zona horaria: %s):" diff --git a/po/es_AR.po b/po/es_AR.po index 7b35009..ec7a85d 100644 --- a/po/es_AR.po +++ b/po/es_AR.po @@ -32,96 +32,96 @@ msgstr "No enviar. Guardar como borrador" msgid "Draft:" msgstr "Borrador:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Adjuntos..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Archivo:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Limpiar este campo para eliminar el adjunto" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Descripción del adjunto" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Encuesta..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Opciones de encuesta (una por línea, hasta 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Una opción" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Opciones múltiples" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Finalizar en 5 minutos" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Finalizar en 1 hora" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Finalizar en 1 día" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Publicar" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Descripción del sitio" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Email del Administrador" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Cuenta del Administrador" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d siguiendo, %d seguidores" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "privado" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "público" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "notificaciones" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "personas" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "instancia" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,554 +129,554 @@ msgstr "" "Buscar publicaciones por URL o contenido (expresiones regulares), cuenta " "@usuario@host , ó #etiqueta" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Buscar contenido" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "link verificado" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Ubicación: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Nueva Publicación..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "¿En qué estás pensando?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Operaciones..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Seguir" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Impulsar" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(por URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Me gusta" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Su nombre" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Bio:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "No me gusta" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Desanclar" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Anclar" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Marcador" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Eliminar" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Ocultar" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Editar..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Responder..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "te sigue" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Anclado" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Encuesta" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Votado" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Evento" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "impulsado" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Votar" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Cerrado" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Cierra en" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Video" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Audio" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Adjunto" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Alt..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Hora: " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "provisto por " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Descartar" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Historia" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Más..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Límite" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Aprobar" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Descartar" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Mención" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Contexto" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Nuevo" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Ya visto" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Ninguno" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,7 +690,7 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." @@ -698,7 +698,7 @@ msgstr "Etiquetas bloqueadas..." msgid "Optional URL to reply to" msgstr "URL opcional a la que responder" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,46 +709,47 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "Anclados" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "Marcados" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "Borradores" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "Envío programado..." -#: html.c:464 -msgid "Post date and time:" -msgstr "Fecha y hora de publicación:" - -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "Envíos programados" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "envíos programados" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "Fecha y hora de publicación (zona horaria: %s):" diff --git a/po/es_UY.po b/po/es_UY.po index 9561e26..9aa66f5 100644 --- a/po/es_UY.po +++ b/po/es_UY.po @@ -32,96 +32,96 @@ msgstr "No enviar. Guardar como borrador" msgid "Draft:" msgstr "Borrador:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Adjuntos..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Archivo:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Limpiar este campo para eliminar el adjunto" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Descripción del adjunto" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Encuesta..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Opciones de encuesta (una por línea, hasta 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Una opción" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Opciones múltiples" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Finalizar en 5 minutos" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Finalizar en 1 hora" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Finalizar en 1 día" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Publicar" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Descripción del sitio" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Email del Administrador" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Cuenta del Administrador" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d siguiendo, %d seguidores" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "privado" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "público" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "notificaciones" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "personas" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "instancia" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,554 +129,554 @@ msgstr "" "Buscar publicaciones por URL o contenido (expresiones regulares), cuenta " "@usuario@host , ó #etiqueta" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Buscar contenido" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "link verificado" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Ubicación: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Nueva Publicación..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "¿En qué estás pensando?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Operaciones..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Seguir" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Impulsar" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(por URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Me gusta" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Su nombre" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Bio:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "No me gusta" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Desanclar" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Anclar" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Marcador" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Eliminar" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Ocultar" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Editar..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Responder..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "te sigue" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Anclado" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Encuesta" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Votado" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Evento" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "impulsado" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Votar" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Cerrado" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Cierra en" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Video" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Audio" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Adjunto" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Alt..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Hora: " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "provisto por " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Descartar" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Historia" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Más..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Límite" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Aprobar" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Descartar" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Mención" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Contexto" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Nuevo" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Ya visto" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Ninguno" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,7 +690,7 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." @@ -698,7 +698,7 @@ msgstr "Etiquetas bloqueadas..." msgid "Optional URL to reply to" msgstr "URL opcional a la que responder" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,46 +709,47 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "Anclados" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "Marcados" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "Borradores" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "Envío programado..." -#: html.c:464 -msgid "Post date and time:" -msgstr "Fecha y hora de publicación:" - -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "Envíos programados" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "envíos programados" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "Fecha y hora de publicación (zona horaria: %s):" diff --git a/po/fi.po b/po/fi.po index 52e9608..48caf27 100644 --- a/po/fi.po +++ b/po/fi.po @@ -32,96 +32,96 @@ msgstr "Älä lähetä, tallenna luonnoksena" msgid "Draft:" msgstr "Luonnos:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Liitteet..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Tiedosto:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Tyhjennä kenttä poistaaksesi liiteen" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Liitteen kuvaus" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Kysely..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Kyselyn vaihtoehdot (riveittäin, korkeintaan 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Yksi valinta" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Monta valintaa" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Päättyy viiden minuutin päästä" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Päättyy tunnin päästä" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Päättyy päivän päästä" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Julkaise" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Sivuston kuvaus" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Ylläpitäjän sähköposti" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Ylläpitäjän tili" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "Seuraa %d, %d seuraajaa" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "yksityinen" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "julkinen" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "ilmoitukset" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "ihmiset" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "palvelin" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,552 +129,552 @@ msgstr "" "Etsi julkaisuja osoitteella tai sisällön perusteella, @käyttäjä@palvelin " "tai #tagi" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Sisälöhaku" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "varmistettu linkki" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Sijainti: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Uusi julkaisu..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "Mitä on mielessäsi?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Toiminnot..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Seuraa" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(osoite tai käyttäjä@palvelin)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Tehosta" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(osoite)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Tykkää" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Käyttäjäasetukset..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Näytetty nimi:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Nimesi" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Poista nykyinen avatar" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Otsikkokuva: " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Poista nykyinen otsikkokuva" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Kuvaus:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Kirjoita itsestäsi tähän..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Näytä arkaluontoinen sisältö aina" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Sähköposti ilmoituksille:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram-ilmoitukset (botin avain ja chat id):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "nfty-ilmoitukset (ntfy-palvelin ja token):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "Säilytä julkaisut korkeintaan (päivää, 0: palvelimen asetukset)" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Poista yksityisviestit ihmisiltä, joita et seuraa" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Tämä tili on botti" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Tehosta tilin maininnat automaattisesti" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "Tili on yksityinen (julkaisuja ei näytetä sivustolla)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Avaa säikeet automaattisesti" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Vaadi hyväksyntä seurantapyynnöille" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Julkaise seuraamistilastot" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Nykyinen sijainti:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Profiilin metadata (avain=arvo, riveittäin):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Käyttöliitymän kieli:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Uusi salasana:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Toista salasana:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Päivitä käyttäjätiedot" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Seuratut aihetunnisteet..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Aihetunnisteet, riveittäin" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Päivitä aihetunnisteet" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Tykkää tästä julkaisusta" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "Poista tykkäys" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Ei ole omaan makuuni" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Poista kiinnitys" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Poista julkaisun kiinnitys aikajanalle" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Kiinnitä" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Kiinnitä julkaisu aikajanasi alkuun" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Ilmoita julkaisusta seuraajillesi" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Poista tehostus" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Kadun tehostaneeni tätä" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Poista kirjanmerkki" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Poista julkaisu kirjanmerkeistäsi" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Lisää kirjanmerkki" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Lisää julkaisu kirjanmerkkeihisi" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Älä seuraa" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Lakkaa seuraamasta käyttäjän toimintaa" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Seuraa käyttäjän toimintaa" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Älä seuraa ryhmää" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Lopeta ryhnän tai kanavan seuraaminen" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Seuraa ryhmää" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Seuraa tätä ryhmää tai kanavaa" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "VAIMENNA" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Estä kaikki toiminta tältä käyttäjältä" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Poista" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Poista julkaisu" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Piilota" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Piilota julkaisu ja vastaukset" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Muokkaa..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Vastaa..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Katkaistu (liian syvä)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "seuraa sinua" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Kiinnitetty" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Kirjanmerkitty" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Kysely" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Äänestetty" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Tapahtuma" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "tehostettu" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "vastauksena" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [ARKALUONTOISTA SISÄLTÖÄ]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Äänestä" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Sulkeutunut" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Sulkeutuu" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Video" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Ääni" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Liite" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Kuvaus..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Lähdekanava tai -yhteisö" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Aika: " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Vanhemmat..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "tietoa sivustosta" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "moottorina " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Kuittaa" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Listan ”%s” aikajana" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Kiinnitetyt julkaisut" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Kirjanmerkit" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Vedokset" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "Ei lukemattonia julkaisuja" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Takaisin" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Historia" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Enemmän..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Poista rajoitus" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Salli tehostukset käyttäjältä" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Rajoita" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Kiellö tehostukset käyttäjältä" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Poista käyttäjä" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Hyväksy" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Hyväksy seurantapyyntö" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Hylkää" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Hylkää seurantapyyntö" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Poista vaimennus" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Salli toiminta käyttäjältä" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Estä kaikki toiminnat käyttäjältä" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Yksityisviesti..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Hyväksymistä odottavat seurantapyynnöt" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Seuraamasi ihniset" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Sinua seuraavat" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Tyhjennä" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Mainitse" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Päättynyt kysely" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Seurantapyyntö" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Konteksti" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Uusi" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Nähty" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Ei ilmoituksia" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Hakutulokset tilille %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "Tiliä %s ei löytynyt" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Hakutulokset aihetunnisteelle %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "Aihetunnisteella %s ei löytynyt tuloksia" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Tulokset haulle ”%s” (mahdollisesti enemmän tuloksia)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Tulokset haulle ”%s”" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "Ei enempää tuloksia haulle ”%s”" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "Haulla ”%s” ei löytynyt tuloksia" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Palvelimen aikajana" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Listan ”%s” aikajana" @@ -688,7 +688,7 @@ msgstr "Hakutulokset aihetunnisteelle #%s" msgid "Recent posts by users in this instance" msgstr "Viimeaikaisia julkaisuja tällä palvelimella" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Estetyt aihetunnisteet..." @@ -696,7 +696,7 @@ msgstr "Estetyt aihetunnisteet..." msgid "Optional URL to reply to" msgstr "Vastaus julkaisuun (osoite, valinnainen)" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -708,46 +708,50 @@ msgstr "" "Vaihtoehto 3...\n" "..." -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "botin API-avain" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "chat id" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy-palvelin - täydellinen osoite (esim: https://ntfy.sh/YourTopic)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "ntfy token - tarvittaessa" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "kiinnitetyt" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "kirjanmerkit" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "vedokset" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/fr.po b/po/fr.po index db2f23e..4da6b6b 100644 --- a/po/fr.po +++ b/po/fr.po @@ -32,96 +32,96 @@ msgstr "Ne pas envoyer, mais sauvegarder en tant que brouillon" msgid "Draft:" msgstr "Brouillon :" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Pièces jointes…" -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Fichier :" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Nettoyer ce champs pour supprimer l'attachement" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Description de l'attachement" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Sondage…" -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Options du sondage (une par ligne, jusqu'à 8) :" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Un seul choix" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Choix multiples" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Se termine dans 5 minutes" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Se termine dans 1 heure" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Se termine dans 1 jour" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Envoyer" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Description du site" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "email de l'admin" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "compte de l'admin" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "Suit %d, %d suiveurs" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "privé" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "public" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "notifications" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "personnes" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "instance" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,553 +129,553 @@ msgstr "" "Chercher les messages par URL ou contenu (expression régulière), comptes " "@utilisateur@hôte, ou #tag" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Recherche de contenu" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "Lien vérifié" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Emplacement : " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Nouveau message…" -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "Qu'avez-vous en tête ?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Opérations…" -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Suivre" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(par URL ou utilisateur@hôte)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "repartager" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(par URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Aime" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Réglages utilisateur…" -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Nom affiché :" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Votre nom" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar : " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Supprimer l'avatar actuel" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Image d'entête (bannière) : " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Supprimer l'image d'entête actuelle" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "CV :" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Décrivez-vous ici…" -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Toujours afficher le contenu sensible" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Adresse email pour les notifications :" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Notifications Telegram (clé de bot et ID de discussion) :" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "notifications ntfy (serveur et jeton ntfy) :" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Nombre de jours maximum de rétention des messages (0 : réglages du serveur) :" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Rejeter les messages directs des personnes que vous ne suivez pas" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Ce compte est un bot" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Auto-repartage de toutes les mentions de ce compte" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "Ce compte est privé (les messages ne sont pas affiché sur le web)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "replier les fils de discussion principaux par défaut" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Les demande de suivi doivent être approuvées" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Publier les suiveurs et les statistiques de suivis" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Localisation actuelle :" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Métadonnées du profile (paires clé=valeur à chaque ligne) :" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Langue de l'interface web :" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Nouveau mot de passe :" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Répétez le nouveau mot de passe :" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Mettre à jour les infos utilisateur" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "hashtags suivis…" -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Un hashtag par ligne" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Mettre à jour les hashtags" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Dire que vous aimez ce message" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "N'aime plus" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Nan, j'aime pas tant que ça" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Dés-épingler" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Dés-épingler ce message de votre chronologie" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Épingler" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Épingler ce message en haut de votre chronologie" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Annoncer ce message à vos suiveurs" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Dé-repartager" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Je regrette d'avoir repartagé ceci" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Retirer le signet" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Supprime ce message de vos signets" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Signet" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Ajouter ce message à vos signets" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Ne plus suivre" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Arrêter de suivre les activités de cet utilisateur" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Commencer à suivre les activité de cet utilisateur" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Ne plus suivre le Groupe" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Arrêter de suivre ce groupe ou canal" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Suivre le Groupe" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Commencer à suivre ce groupe ou canal" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "TAIRE" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Bloquer toute activité de cet utilisateur à jamais" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Supprimer" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Supprimer ce message" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Cacher" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Cacher ce message et ses réponses" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Éditer…" -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Répondre…" -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Tronqué (trop profond)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "vous suit" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Épinglé" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Ajouté au signets" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Sondage" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Voté" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Événement" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "Repartagé" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "En réponse à" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENU SENSIBLE]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Vote" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Terminé" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Termine dans" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Vidéo" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Audio" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Attachement" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Alt…" -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Canal ou communauté source" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Date : " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Plus anciens…" -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "à propos de ce site" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "fonctionne grace à " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Rejeter" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Chronologie pour la liste '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Messages épinglés" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Messages en signets" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Brouillons de messages" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "Pas d'avantage de message non vus" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Retourner en haut" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Historique" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Plus…" -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Illimité" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Permettre les annonces (repartages) par cet utilisateur" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Limite" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Bloquer les annonces (repartages) par cet utilisateur" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Supprimer cet utilisateur" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Approuver" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Approuver cette demande de suivit" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Rejeter" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Rejeter la demande suivante" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Ne plus taire" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Arrêter de bloquer les activités de cet utilisateur" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Bloque toutes les activités de cet utilisateur" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Message direct…" -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Confirmation de suivit en attente" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Personnes que vous suivez" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Personnes qui vous suivent" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Tout nettoyer" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Mention" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Sondage terminé" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Requête de suivit" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Contexte" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Nouveau" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Déjà vu" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Aucun" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Résultats de recher pour le compte %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "Compte %s non trouvé" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Résultats de recherche pour le tag %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "Rien n'a été trouvé pour le tag %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Résultats de recherche pour '%s' (il pourrait y en avoir d'avantage)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Résultats de recherche pour '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "Pas d'avantage de résultats pour '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "Rien n'a été trouvé pour '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Montrer la chronologie de l'instance" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Montrer le chronologie pour la liste '%s'" @@ -689,7 +689,7 @@ msgstr "Résultats de recherche pour le tag #%s" msgid "Recent posts by users in this instance" msgstr "Messages récents des utilisateurs de cette instance" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Hashtags bloqués…" @@ -697,7 +697,7 @@ msgstr "Hashtags bloqués…" msgid "Optional URL to reply to" msgstr "" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -705,46 +705,50 @@ msgid "" "..." msgstr "" -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/it.po b/po/it.po index 4b69a0b..fa62bf2 100644 --- a/po/it.po +++ b/po/it.po @@ -32,96 +32,96 @@ msgstr "Salva come bozza senza inviare" msgid "Draft:" msgstr "Bozza" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Allegati..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "File:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Pulisci ed elimina l'allegato" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Descrizione dell'allegato" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Sondaggio..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Scelte per il sondaggio (una per linea, massimo 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Una scelta" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Scelte multiple" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Termina in 5 minuti" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Termina in 1 ora" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Termina in 1 giorno" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Post" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Descrizione del sito web" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Email dell'amministratore" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Account amministratore" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d seguiti, %d seguenti" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "privato" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "pubblico" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "notifiche" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "persone" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "istanza" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -129,552 +129,552 @@ msgstr "" "Ricerca post per URL o contenuto (espressione regolare), @user@host " "accounts, #tag" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Ricerca contenuto" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "link verificato" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Posizione: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Nuovo post..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "Cosa stai pensando?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Operazioni..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Segui" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(per URL o user@host)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Annuncia" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(per URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Mi piace" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Impostazioni..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Nome visualizzato:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Il tuo nome" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Elimina l'avatar" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Immagine intestazione (banner): " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Elimina l'immagine d'intestazione" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Bio:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Descriviti qui..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Mostra sempre i contenuti sensibili" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Indirizzo email per le notifiche:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Notifiche Telegram (bot key e chat id):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "Notifiche ntfy (server ntfy e token)" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "Giorni di mantenimento dei post (0: impostazione server)" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Elimina i messaggi diretti delle persone non seguite" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Questo account è un bot" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Annuncio automatico delle citazioni a quest'account" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "Quest'account è privato (post invisibili nel web)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Tieni chiuse le discussioni" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Devi approvare le richieste dei seguenti" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Rendi pubblici seguenti e seguiti" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Posizione corrente:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Dati del profilo (coppie di chiave=valore per ogni linea):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Lingua dell'interfaccia web:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Nuova password:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Reinserisci la password:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Aggiorna dati utente" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Hashtag seguiti..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Un hashtag per linea" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Aggiorna hashtags" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Questo post ti piace" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "Non mi piace" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "No, non mi piace molto" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Sgancia" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Sgancia questo post dalla timeline" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Aggancia" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Aggancia questo post in cima alla timeline" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Annuncia questo post ai tuoi seguenti" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Rimuovi annuncio" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Mi pento di aver annunciato questo" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Elimina segnalibro" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Elimina questo post dai segnalibri" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Segnalibro" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Aggiungi questo post ai segnalibri" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Smetti di seguire" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Smetti di seguire l'utente" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Sequi l'utente" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Smetti di seguire il gruppo" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Smetti di seguire il gruppo o canale" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Segui grupp" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Segui il gruppo o canale" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "Silenzia" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Blocca l'utente" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Elimina" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Elimina questo post" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Nascondi" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Nascondi questo post completamente" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Modifica..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Rispondi..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Troncato (troppo lungo)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "Ti segue" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Aggancia" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Segnalibro" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Sondaggio" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Votato" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Evento" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "Annunciato" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "in risposta a" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENUTO SENSIBILE]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Vota" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Chiuso" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Chiude in" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Video" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Audio" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Allegato" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Testo alternativo..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Provenienza del canale o comunità" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Orario:" -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Vecchi..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "descrizione" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "gestito da " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Congeda" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Timeline per la lista '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Post appuntati" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Post segnati" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Bozze" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "Nessun ulteriore post" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Torna in cima" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Storico" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Ancora..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Senza limite" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Permetti annunci dall'utente" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Limite" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Blocca annunci dall'utente" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Elimina l'utente" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Approva" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Approva richiesta di seguirti" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Scarta" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Scarta richiesta di seguirti" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Rimuovi silenziamento" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Sblocca l'utente" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Blocca l'utente completamente" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Messaggio diretto..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Conferme di seguirti in attesa" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Persone che segui" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Persone che ti seguono" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Pulisci" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Citazione" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Sondaggio concluso" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Richiesta di seguire" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Contesto" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Nuovo" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Già visto" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Niente" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Risultati per account %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "Account %s non trovato" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Risultati per tag %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "Nessun risultato per il tag %S" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Risultati per tag %s (ancora...)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Risultati per %s" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "Nessuna corrispondenza per '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "Non trovato per '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Mostra la timeline dell'istanza" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostra la timeline della lista '%s'" @@ -688,7 +688,7 @@ msgstr "Risultati per tag #%s" msgid "Recent posts by users in this instance" msgstr "Post recenti in questa istanza" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Hashtag bloccati..." @@ -696,7 +696,7 @@ msgstr "Hashtag bloccati..." msgid "Optional URL to reply to" msgstr "URL facoltativo di risposta" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -708,46 +708,50 @@ msgstr "" "Scelta 3...\n" "..." -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "Chiave per le API del bot" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "Id della chat" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Server ntfy - URL completo (esempio: https://ntfy.sh/YourTopic)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "Token ntfy - se richiesto" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "appuntati" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "segnalibri" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "bozze" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index 3eaa17d..fae746c 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -33,96 +33,96 @@ msgstr "Não enviar, mas armazenar como rascunho" msgid "Draft:" msgstr "Rascunho:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Anexos..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Arquivo:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Limpe este campo para remover o anexo" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Descrição do anexo" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Enquete..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Alternativas da enquete (uma por linha, até 8):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Escolha única" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Escolhas múltiplas" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Encerrar em 5 minutos" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Encerrar em 1 hora" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Encerrar em 1 dia" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Publicar" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Descrição do sítio eletrônico" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "E-mail da administração" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Conta de quem administra" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d seguidos, %d seguidores" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "privado" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "público" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "notificações" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "pessoas" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "instância" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -130,552 +130,552 @@ msgstr "" "Procurar publicações por URL ou conteúdo (expressão regular), contas " "(@perfil@servidor) ou #tag" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Buscar conteúdo" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "ligação verificada" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Localização: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Nova publicação..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "O que tem em mente?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Operações..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Seguir" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(por URL ou conta@servidor)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Impulsionar" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(por URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Curtir" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Definições de uso..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Nome a ser exibido:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Seu nome" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Remover avatar atual" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Imagem de cabeçalho (capa): " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Remover imagem de cabeçalho atual" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "Biografia:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Escreva aqui sobre você..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Sempre exibir conteúdo sensível" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Endereço de e-mail para notificações:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificações Telegram (chave do robô e ID da conversa):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificações ntfy (servidor ntfy e token):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "Máximo de dias a preservar publicações (0: definições do servidor):" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensagens diretas de pessoas que você não segue" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Esta conta é robô" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Impulsionar automaticamente todas as menções a esta conta" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "Esta conta é privada (as publicações não são exibidas na Web)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Recolher por padrão as sequências de publicações" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Solicitações de seguimento precisam ser aprovadas" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Publicar métricas de seguidores e seguidos" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Localização atual:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadados do perfil (par de chave=valor em cada linha):" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Idioma da interface Web:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Nova senha:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Repita a nova senha:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Atualizar informações da conta" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Hashtags seguidas..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "Uma hashtag por linha" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Atualizar hashtags" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Declarar que gosta desta publicação" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "Descurtir" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Não gosto tanto assim disso" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Desafixar" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Desafixar esta publicação da sua linha do tempo" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Afixar" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Afixar esta publicação no topo de sua linha do tempo" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Anunciar esta publicação para seus seguidores" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Desimpulsionar" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Arrependo-me de ter impulsionado isso" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Desmarcar" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Remover esta publicação dos seus marcadores" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Marcar" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Adicionar esta publicação aos seus marcadores" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Deixar de seguir" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Parar de acompanhar a atividade deste perfil" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Começar a acompanhar a atividade deste perfil" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Deixar de seguir grupo" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Parar de acompanhar este grupo ou canal" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Seguir grupo" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Começar a acompanhar este grupo ou canal" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "MUDO" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Bloquear toda atividade deste perfil para sempre" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Eliminar" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Apagar esta publicação" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Ocultar" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Ocultar esta publicação e suas respostas" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Editar..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Responder..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Truncada (muito extensa)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "segue você" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Afixada" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Marcada" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Enquete" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Votou" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Evento" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "impulsionou" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "em resposta a" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [CONTEÚDO SENSÍVEL]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Votar" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Encerrada" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Encerra em" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Vídeo" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Áudio" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Anexo" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Texto alternativo..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Canal ou comunidade de origem" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Horário: " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Anteriores..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "sobre este sítio eletrônico" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "movido por " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Dispensar" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Linha do tempo da lista '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Publicações afixadas" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Publicações marcadas" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Publicações em rascunho" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "Sem mais publicações não vistas" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Voltar ao topo" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "Histórico" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Mais..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Retirar restrição" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Permitir anúncios (impulsionamentos) deste perfil" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Restringir" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Bloquear anúncios (impulsionamentos) deste perfil" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Apagar este perfil" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Aprovar" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Aprovar esta solicitação de seguimento" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Descartar" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Descartar esta solicitação de seguimento" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Desbloquear" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Parar de bloquear as atividades deste perfil" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Bloquear toda atividade deste perfil" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Mensagem direta..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Confirmações de seguimento pendentes" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Pessoas que você segue" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Pessoas que seguem você" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Limpar tudo" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Menção" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Enquete encerrada" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Solicitação de seguimento" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Contexto" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Novas" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Já vistas" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Nenhuma" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Resultados da busca pela conta %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "Conta %s não encontrada" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Resultados da busca pela hashtag %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "Nada consta com hashtag %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados da busca por '%s' (pode haver mais)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Resultados da busca por '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "Sem mais combinações para '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "Nada consta com '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Exibindo linha do tempo da instância" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Exibindo linha do tempo da lista '%s'" @@ -689,7 +689,7 @@ msgstr "Resultados da busca pela hashtag #%s" msgid "Recent posts by users in this instance" msgstr "Publicações recentes de perfis desta instância" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Hashtags bloqueadas..." @@ -697,7 +697,7 @@ msgstr "Hashtags bloqueadas..." msgid "Optional URL to reply to" msgstr "URL opcional para a qual responder" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -709,46 +709,50 @@ msgstr "" "Opção 3...\n" "..." -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "Chave de API do robô" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "ID da conversa" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (exemplo: https://ntfy.sh/SeuTópico)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "Token ntfy - se necessário" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "afixadas" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "marcadores" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "rascunhos" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/ru.po b/po/ru.po index 8877ab6..884babc 100644 --- a/po/ru.po +++ b/po/ru.po @@ -39,96 +39,96 @@ msgstr "Не отправлять, сохранить черновик" msgid "Draft:" msgstr "Черновик:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "Вложения..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "Файл:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "Очистите это поле, чтоб удалить вложение" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "Описание вложения" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "Опрос..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "Варианты ответа (один на строку, до 8 шт):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "Один выбор" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "Множественный выбор" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "Заканчивается через 5 минут" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "Заканчивается через 1 час" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "Заканчивается через 1 день" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "Отправить" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "Описание сайта" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "Почта админа" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "Учётная запись админа" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d подписан, %d подписчиков" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "личное" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "публичное" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "уведомления" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "люди" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "экземпляр" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" @@ -136,552 +136,552 @@ msgstr "" "Поиск сообщений по URL или содержимому (регулярное выражение), учетной " "записи вида @user@host, или #тегу" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "Поиск содержимого" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "проверенная ссылка" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "Местоположение: " -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "Новое сообщение..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "Что у вас на уме?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "Действия..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "Подписаться" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(по URL или user@host)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "Продвинуть" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(по URL)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "Лайкнуть" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "Пользовательские настройки..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "Отображаемое имя:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "Ваше имя" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "Аватар: " -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "Удалить текущий аватар" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "Заглавное изображение (баннер): " -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "Удалить текущее заглавное изображение" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "О себе:" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "Напишите что-нибудь про себя..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "Всегда показывать чувствительное содержимое" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "Почтовый адрес для уведомлений:" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Уведомления в Telegram (ключ бота и id чата):" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "уведомления в ntfy (сервер и токен ntfy):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "Максимальное время хранения сообщений (0: настройки сервера):" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "Отклонять личные сообщения от незнакомцев" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "Это аккаунт бота" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "Автоматически продвигать все упоминания этого аккаунта" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "Это закрытый аккаунт (сообщения не показываются в сети)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "Сворачивать обсуждения по умолчанию" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "Запросы подписки требуют подтверждения" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "Публиковать статистику подписок и подписчиков" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "Текущее метоположение:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "Метаданные профиля (пары ключ=значение, по одной на строку)" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "Язык интерфейса:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "Новый пароль:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "Повторите новый пароль:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "Обновить данные пользователя" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "Отслеживаемые хештеги..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "По одному на строку" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "Обновить хештеги" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "Отметить сообщение понравившимся" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "Больше не нравится" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "Не так уж и понравилось" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "Открепить" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "Открепить это сообщение из своей ленты" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "Закрепить" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "Закрепить это сообщение в своей ленте" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "Поделиться этим сообщением со своими подписчиками" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "Отменить продвижение" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "Не буду продвигать, пожалуй" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "Удалить из закладок" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "Удалить это сообщение из закладок" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "Добавить в закладки" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "Добавить сообщение в закладки" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "Отписаться" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "Отменить подписку на этого пользователя" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "Начать следовать за этим пользователем" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "Отписаться от группы" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "Отписаться от группы или канала" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "Подписаться на группу" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "Подписаться на группу или канал" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "Заглушить" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "Заглушить всю активность от этого пользователя, навсегда" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "Удалить" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "Удалить это сообщение" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "Скрыть" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "Скрыть это сообщение вместе с обсуждением" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "Редактировать..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "Ответить..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "Обрезано (слишком много)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "подписан на вас" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "Закреплено" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "Добавлено в закладки" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "Опрос" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "Проголосовано" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "Событие" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "поделился" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "в ответ на" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr " [ЧУВСТВИТЕЛЬНО СОДЕРЖИМОЕ]" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "Голос" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "Закрыт" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "Закрывается через" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "Видео" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "Аудио" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "Вложение" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "Описание..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "Исходный канал или сообщество" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "Время: " -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "Ранее..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "про этот сайт" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "на основе " -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "Скрыть" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "Ленты для списка '%s'" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "Закреплённые сообщения" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "Сообщения в закладках" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "Черновики сообщений" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "Всё просмотрено" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "Вернуться наверх" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "История" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "Ещё..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "Без ограничения" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "Разрешить продвижения от этого пользователя" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "Лимит" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "Запретить продвижения от этого пользователя" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "Удалить пользователя" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "Подтвердить" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "Подтвердить запрос на подписку" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "Отклонить" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "Отклонить этот запрос на подписку" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "Отменить глушение" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "Прекратить глушение действий этого пользователя" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "Заглушить все действия этого пользователя" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "Личное сообщение..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "Ожидающие запросы на подписку" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "Ваши подписки" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "Ваши подписчики" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "Очистить всё" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "Упоминание" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "Завершённый опрос" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "Запрос на подписку" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "Контекст" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "Новое" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "Уже просмотрено" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "Нет" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "Результаты поиска для учётной записи %s" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "Учётная запись %s не найдена" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "Результаты поиска тега %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "Ничего не найдено по тегу %s" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Результаты поиска для '%s' (возможно, есть ещё)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "Результаты поиска для '%s'" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "Больше нет совпадений для '%s'" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "Ничего не найдено для '%s'" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "Показываем ленту инстанции" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "Показываем ленты инстанции для списка '%s'" @@ -695,7 +695,7 @@ msgstr "Результаты поиска для тега #%s" msgid "Recent posts by users in this instance" msgstr "Последние сообщения на этой инстанции" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "Заблокированные теги..." @@ -703,7 +703,7 @@ msgstr "Заблокированные теги..." msgid "Optional URL to reply to" msgstr "Необязательный URL для ответа" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -715,46 +715,50 @@ msgstr "" "Вариант 3...\n" "..." -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "Ключ API для бота" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "Id чата" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "полный URL сервера ntfy (например https://ntfy.sh/YourTopic)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "токен ntfy - если нужен" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "закреплено" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "закладки" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "черновики" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" diff --git a/po/zh.po b/po/zh.po index 9659ac7..15e3a5c 100644 --- a/po/zh.po +++ b/po/zh.po @@ -32,648 +32,648 @@ msgstr "不要发送,但是保存为草稿" msgid "Draft:" msgstr "草稿:" -#: html.c:492 +#: html.c:494 msgid "Attachments..." msgstr "附件..." -#: html.c:515 +#: html.c:517 msgid "File:" msgstr "文件:" -#: html.c:519 +#: html.c:521 msgid "Clear this field to delete the attachment" msgstr "清除此项以删除附件" -#: html.c:528 html.c:553 +#: html.c:530 html.c:555 msgid "Attachment description" msgstr "附件描述" -#: html.c:564 +#: html.c:566 msgid "Poll..." msgstr "投票..." -#: html.c:566 +#: html.c:568 msgid "Poll options (one per line, up to 8):" msgstr "投票选项(每项一行,最多八项):" -#: html.c:578 +#: html.c:580 msgid "One choice" msgstr "单选" -#: html.c:581 +#: html.c:583 msgid "Multiple choices" msgstr "多选" -#: html.c:587 +#: html.c:589 msgid "End in 5 minutes" msgstr "五分钟后结束" -#: html.c:591 +#: html.c:593 msgid "End in 1 hour" msgstr "一小时后结束" -#: html.c:594 +#: html.c:596 msgid "End in 1 day" msgstr "一天后结束" -#: html.c:602 +#: html.c:604 msgid "Post" msgstr "" -#: html.c:699 html.c:706 +#: html.c:701 html.c:708 msgid "Site description" msgstr "站点描述" -#: html.c:717 +#: html.c:719 msgid "Admin email" msgstr "管理员电子邮箱" -#: html.c:730 +#: html.c:732 msgid "Admin account" msgstr "管理员帐号" -#: html.c:798 html.c:1134 +#: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" msgstr "%d 个正在关注,%d 个关注者" -#: html.c:888 +#: html.c:890 msgid "RSS" msgstr "RSS" -#: html.c:893 html.c:921 +#: html.c:895 html.c:923 msgid "private" msgstr "私密" -#: html.c:917 +#: html.c:919 msgid "public" msgstr "公开" -#: html.c:925 +#: html.c:927 msgid "notifications" msgstr "通知" -#: html.c:930 +#: html.c:932 msgid "people" msgstr "成员" -#: html.c:934 +#: html.c:936 msgid "instance" msgstr "实例" -#: html.c:943 +#: html.c:945 msgid "" "Search posts by URL or content (regular expression), @user@host accounts, or " "#tag" msgstr "" "通过网址、内容(正则表达式)、@用户@服务器 帐号,或者 #话题标签搜索贴子" -#: html.c:944 +#: html.c:946 msgid "Content search" msgstr "内容搜索" -#: html.c:1066 +#: html.c:1068 msgid "verified link" msgstr "已验证的链接" -#: html.c:1123 html.c:2512 html.c:2525 html.c:2534 +#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 msgid "Location: " msgstr "位置:" -#: html.c:1159 +#: html.c:1161 msgid "New Post..." msgstr "新贴子..." -#: html.c:1161 +#: html.c:1163 msgid "What's on your mind?" msgstr "你在想什么?" -#: html.c:1170 +#: html.c:1172 msgid "Operations..." msgstr "操作..." -#: html.c:1185 html.c:1760 html.c:3165 html.c:4548 +#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 msgid "Follow" msgstr "关注" -#: html.c:1187 +#: html.c:1189 msgid "(by URL or user@host)" msgstr "(通过网址或者 用户名@服务器)" -#: html.c:1202 html.c:1736 html.c:4497 +#: html.c:1204 html.c:1738 html.c:4503 msgid "Boost" msgstr "转发" -#: html.c:1204 html.c:1221 +#: html.c:1206 html.c:1223 msgid "(by URL)" msgstr "(通过网址)" -#: html.c:1219 html.c:1715 html.c:4488 +#: html.c:1221 html.c:1717 html.c:4494 msgid "Like" msgstr "点赞" -#: html.c:1324 +#: html.c:1326 msgid "User Settings..." msgstr "用户设置..." -#: html.c:1333 +#: html.c:1335 msgid "Display name:" msgstr "显示名字:" -#: html.c:1339 +#: html.c:1341 msgid "Your name" msgstr "你的名字" -#: html.c:1341 +#: html.c:1343 msgid "Avatar: " msgstr "头像:" -#: html.c:1349 +#: html.c:1351 msgid "Delete current avatar" msgstr "删除当前头像" -#: html.c:1351 +#: html.c:1353 msgid "Header image (banner): " msgstr "页眉图像(横幅)" -#: html.c:1359 +#: html.c:1361 msgid "Delete current header image" msgstr "删除当前的页眉图像" -#: html.c:1361 +#: html.c:1363 msgid "Bio:" msgstr "简介" -#: html.c:1367 +#: html.c:1369 msgid "Write about yourself here..." msgstr "在这里介绍你自己..." -#: html.c:1376 +#: html.c:1378 msgid "Always show sensitive content" msgstr "总是显示敏感内容" -#: html.c:1378 +#: html.c:1380 msgid "Email address for notifications:" msgstr "用于通知的电子邮箱地址" -#: html.c:1386 +#: html.c:1388 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram通知(bot密钥和聊天ID)" -#: html.c:1400 +#: html.c:1402 msgid "ntfy notifications (ntfy server and token):" msgstr "ntfy通知(ntfy服务器和令牌):" -#: html.c:1414 +#: html.c:1416 msgid "Maximum days to keep posts (0: server settings):" msgstr "保存贴子的最大天数(0:服务器设置)" -#: html.c:1428 +#: html.c:1430 msgid "Drop direct messages from people you don't follow" msgstr "丢弃你没有关注的人的私信" -#: html.c:1437 +#: html.c:1439 msgid "This account is a bot" msgstr "此帐号是机器人" -#: html.c:1446 +#: html.c:1448 msgid "Auto-boost all mentions to this account" msgstr "自动转发所有对此帐号的提及" -#: html.c:1455 +#: html.c:1457 msgid "This account is private (posts are not shown through the web)" msgstr "这是一个私密帐号(贴子不会在网页中显示)" -#: html.c:1465 +#: html.c:1467 msgid "Collapse top threads by default" msgstr "默认收起主题帖" -#: html.c:1474 +#: html.c:1476 msgid "Follow requests must be approved" msgstr "关注请求必须经过审批" -#: html.c:1483 +#: html.c:1485 msgid "Publish follower and following metrics" msgstr "展示关注者和正在关注的数量" -#: html.c:1485 +#: html.c:1487 msgid "Current location:" msgstr "当前位置:" -#: html.c:1499 +#: html.c:1501 msgid "Profile metadata (key=value pairs in each line):" msgstr "个人资料元数据(每行一条 键=值)" -#: html.c:1510 +#: html.c:1512 msgid "Web interface language:" msgstr "网页界面语言:" -#: html.c:1515 +#: html.c:1517 msgid "New password:" msgstr "新密码:" -#: html.c:1522 +#: html.c:1524 msgid "Repeat new password:" msgstr "重复新密码:" -#: html.c:1532 +#: html.c:1534 msgid "Update user info" msgstr "更新用户信息:" -#: html.c:1543 +#: html.c:1545 msgid "Followed hashtags..." msgstr "已关注的话题标签..." -#: html.c:1545 html.c:1577 +#: html.c:1547 html.c:1579 msgid "One hashtag per line" msgstr "每行一个话题标签" -#: html.c:1566 html.c:1598 +#: html.c:1568 html.c:1600 msgid "Update hashtags" msgstr "更新话题标签" -#: html.c:1715 +#: html.c:1717 msgid "Say you like this post" msgstr "说你喜欢这个贴子" -#: html.c:1720 html.c:4506 +#: html.c:1722 html.c:4512 msgid "Unlike" msgstr "不喜欢" -#: html.c:1720 +#: html.c:1722 msgid "Nah don't like it that much" msgstr "啊,不怎么喜欢这个" -#: html.c:1726 html.c:4643 +#: html.c:1728 html.c:4649 msgid "Unpin" msgstr "取消置顶" -#: html.c:1726 +#: html.c:1728 msgid "Unpin this post from your timeline" msgstr "从你的时间线上取消置顶这个贴子" -#: html.c:1729 html.c:4638 +#: html.c:1731 html.c:4644 msgid "Pin" msgstr "置顶" -#: html.c:1729 +#: html.c:1731 msgid "Pin this post to the top of your timeline" msgstr "把这条贴子置顶在你的时间线上" -#: html.c:1736 +#: html.c:1738 msgid "Announce this post to your followers" msgstr "向你的关注者宣布这条贴子" -#: html.c:1741 html.c:4514 +#: html.c:1743 html.c:4520 msgid "Unboost" msgstr "取消转发" -#: html.c:1741 +#: html.c:1743 msgid "I regret I boosted this" msgstr "我后悔转发这个了" -#: html.c:1747 html.c:4653 +#: html.c:1749 html.c:4659 msgid "Unbookmark" msgstr "取消收藏" -#: html.c:1747 +#: html.c:1749 msgid "Delete this post from your bookmarks" msgstr "从收藏夹中删除这个贴子" -#: html.c:1750 html.c:4648 +#: html.c:1752 html.c:4654 msgid "Bookmark" msgstr "收藏" -#: html.c:1750 +#: html.c:1752 msgid "Add this post to your bookmarks" msgstr "把这个贴子加入收藏夹" -#: html.c:1756 html.c:3151 html.c:3339 html.c:4561 +#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 msgid "Unfollow" msgstr "取消关注" -#: html.c:1756 html.c:3152 +#: html.c:1758 html.c:3154 msgid "Stop following this user's activity" msgstr "停止关注此用户的动态" -#: html.c:1760 html.c:3166 +#: html.c:1762 html.c:3168 msgid "Start following this user's activity" msgstr "开始关注此用户的动态" -#: html.c:1766 html.c:4591 +#: html.c:1768 html.c:4597 msgid "Unfollow Group" msgstr "取消关注群组" -#: html.c:1767 +#: html.c:1769 msgid "Stop following this group or channel" msgstr "取消关注这个群组或频道" -#: html.c:1771 html.c:4578 +#: html.c:1773 html.c:4584 msgid "Follow Group" msgstr "关注群组" -#: html.c:1772 +#: html.c:1774 msgid "Start following this group or channel" msgstr "开始关注这个群组或频道" -#: html.c:1777 html.c:3188 html.c:4522 +#: html.c:1779 html.c:3190 html.c:4528 msgid "MUTE" msgstr "静音" -#: html.c:1778 +#: html.c:1780 msgid "Block any activity from this user forever" msgstr "永久屏蔽来自这个用户的任何动态" -#: html.c:1783 html.c:3170 html.c:4608 +#: html.c:1785 html.c:3172 html.c:4614 msgid "Delete" msgstr "删除" -#: html.c:1783 +#: html.c:1785 msgid "Delete this post" msgstr "删除这条贴子" -#: html.c:1786 html.c:4530 +#: html.c:1788 html.c:4536 msgid "Hide" msgstr "隐藏" -#: html.c:1786 +#: html.c:1788 msgid "Hide this post and its children" msgstr "删除这条贴子及其回复" -#: html.c:1817 +#: html.c:1819 msgid "Edit..." msgstr "编辑..." -#: html.c:1837 +#: html.c:1839 msgid "Reply..." msgstr "回复..." -#: html.c:1888 +#: html.c:1890 msgid "Truncated (too deep)" msgstr "已被截断(太深了)" -#: html.c:1897 +#: html.c:1899 msgid "follows you" msgstr "关注了你" -#: html.c:1960 +#: html.c:1962 msgid "Pinned" msgstr "已置顶" -#: html.c:1968 +#: html.c:1970 msgid "Bookmarked" msgstr "已收藏" -#: html.c:1976 +#: html.c:1978 msgid "Poll" msgstr "投票" -#: html.c:1983 +#: html.c:1985 msgid "Voted" msgstr "已投票" -#: html.c:1992 +#: html.c:1994 msgid "Event" msgstr "事件" -#: html.c:2024 html.c:2053 +#: html.c:2026 html.c:2055 msgid "boosted" msgstr "已转发" -#: html.c:2069 +#: html.c:2071 msgid "in reply to" msgstr "回复给" -#: html.c:2120 +#: html.c:2122 msgid " [SENSITIVE CONTENT]" msgstr "【敏感内容】" -#: html.c:2297 +#: html.c:2299 msgid "Vote" msgstr "投票" -#: html.c:2307 +#: html.c:2309 msgid "Closed" msgstr "已关闭" -#: html.c:2332 +#: html.c:2334 msgid "Closes in" msgstr "距离关闭还有" -#: html.c:2413 +#: html.c:2415 msgid "Video" msgstr "视频" -#: html.c:2428 +#: html.c:2430 msgid "Audio" msgstr "音频" -#: html.c:2456 +#: html.c:2458 msgid "Attachment" msgstr "附件" -#: html.c:2470 +#: html.c:2472 msgid "Alt..." msgstr "描述..." -#: html.c:2483 +#: html.c:2485 msgid "Source channel or community" msgstr "来源频道或者社群" -#: html.c:2577 +#: html.c:2579 msgid "Time: " msgstr "时间:" -#: html.c:2658 +#: html.c:2660 msgid "Older..." msgstr "更早的..." -#: html.c:2760 +#: html.c:2762 msgid "about this site" msgstr "关于此站点" -#: html.c:2762 +#: html.c:2764 msgid "powered by " msgstr "驱动自" -#: html.c:2827 +#: html.c:2829 msgid "Dismiss" msgstr "忽略" -#: html.c:2844 +#: html.c:2846 #, c-format msgid "Timeline for list '%s'" msgstr "列表'%s'的时间线" -#: html.c:2863 html.c:3916 +#: html.c:2865 html.c:3918 msgid "Pinned posts" msgstr "置顶的贴子" -#: html.c:2875 html.c:3931 +#: html.c:2877 html.c:3933 msgid "Bookmarked posts" msgstr "收藏的贴子" -#: html.c:2887 html.c:3946 +#: html.c:2889 html.c:3948 msgid "Post drafts" msgstr "贴子草稿" -#: html.c:2958 +#: html.c:2960 msgid "No more unseen posts" msgstr "没有更多未读贴子了" -#: html.c:2962 html.c:3062 +#: html.c:2964 html.c:3064 msgid "Back to top" msgstr "返回顶部" -#: html.c:3015 +#: html.c:3017 msgid "History" msgstr "历史" -#: html.c:3067 html.c:3487 +#: html.c:3069 html.c:3489 msgid "More..." msgstr "更多..." -#: html.c:3156 html.c:4544 +#: html.c:3158 html.c:4550 msgid "Unlimit" msgstr "取消限制" -#: html.c:3157 +#: html.c:3159 msgid "Allow announces (boosts) from this user" msgstr "允许来自这个用户的通知(转发)" -#: html.c:3160 html.c:4540 +#: html.c:3162 html.c:4546 msgid "Limit" msgstr "限制" -#: html.c:3161 +#: html.c:3163 msgid "Block announces (boosts) from this user" msgstr "屏蔽来自这个用户的通知(转发)" -#: html.c:3170 +#: html.c:3172 msgid "Delete this user" msgstr "删除此用户" -#: html.c:3175 html.c:4658 +#: html.c:3177 html.c:4664 msgid "Approve" msgstr "允许" -#: html.c:3176 +#: html.c:3178 msgid "Approve this follow request" msgstr "允许这个关注请求" -#: html.c:3179 html.c:4682 +#: html.c:3181 html.c:4688 msgid "Discard" msgstr "丢弃" -#: html.c:3179 +#: html.c:3181 msgid "Discard this follow request" msgstr "丢弃这个关注请求" -#: html.c:3184 html.c:4526 +#: html.c:3186 html.c:4532 msgid "Unmute" msgstr "取消静音" -#: html.c:3185 +#: html.c:3187 msgid "Stop blocking activities from this user" msgstr "停止屏蔽来自此用户的动态" -#: html.c:3189 +#: html.c:3191 msgid "Block any activity from this user" msgstr "屏蔽来自此用户的任何动态" -#: html.c:3197 +#: html.c:3199 msgid "Direct Message..." msgstr "私信..." -#: html.c:3232 +#: html.c:3234 msgid "Pending follow confirmations" msgstr "待处理的关注确认" -#: html.c:3236 +#: html.c:3238 msgid "People you follow" msgstr "你关注的人" -#: html.c:3237 +#: html.c:3239 msgid "People that follow you" msgstr "关注你的人" -#: html.c:3276 +#: html.c:3278 msgid "Clear all" msgstr "清除全部" -#: html.c:3333 +#: html.c:3335 msgid "Mention" msgstr "提及" -#: html.c:3336 +#: html.c:3338 msgid "Finished poll" msgstr "结束投票" -#: html.c:3351 +#: html.c:3353 msgid "Follow Request" msgstr "关注请求" -#: html.c:3434 +#: html.c:3436 msgid "Context" msgstr "上下文" -#: html.c:3445 +#: html.c:3447 msgid "New" msgstr "新建" -#: html.c:3460 +#: html.c:3462 msgid "Already seen" msgstr "已经看过" -#: html.c:3475 +#: html.c:3477 msgid "None" msgstr "没有" -#: html.c:3741 +#: html.c:3743 #, c-format msgid "Search results for account %s" msgstr "账户 %s 的搜索结果" -#: html.c:3748 +#: html.c:3750 #, c-format msgid "Account %s not found" msgstr "没有找到账户 %s" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Search results for tag %s" msgstr "标签 %s 的搜索结果" -#: html.c:3779 +#: html.c:3781 #, c-format msgid "Nothing found for tag %s" msgstr "没有找到标签'%s'的结果" -#: html.c:3795 +#: html.c:3797 #, c-format msgid "Search results for '%s' (may be more)" msgstr "'%s'的搜索结果(可能还有更多)" -#: html.c:3798 +#: html.c:3800 #, c-format msgid "Search results for '%s'" msgstr "'%s'的搜索结果" -#: html.c:3801 +#: html.c:3803 #, c-format msgid "No more matches for '%s'" msgstr "没有更多匹配'%s'的结果了" -#: html.c:3803 +#: html.c:3805 #, c-format msgid "Nothing found for '%s'" msgstr "没有找到'%s'的结果" -#: html.c:3901 +#: html.c:3903 msgid "Showing instance timeline" msgstr "显示实例时间线" -#: html.c:3984 +#: html.c:3986 #, c-format msgid "Showing timeline for list '%s'" msgstr "显示列表'%s'的事件线" @@ -687,7 +687,7 @@ msgstr "标签 #%s 的搜索结果" msgid "Recent posts by users in this instance" msgstr "此实例上的用户最近的贴子" -#: html.c:1575 +#: html.c:1577 msgid "Blocked hashtags..." msgstr "已屏蔽的话题标签" @@ -695,7 +695,7 @@ msgstr "已屏蔽的话题标签" msgid "Optional URL to reply to" msgstr "可选的回复的网址" -#: html.c:573 +#: html.c:575 msgid "" "Option 1...\n" "Option 2...\n" @@ -707,46 +707,50 @@ msgstr "" "选项3...\n" "..." -#: html.c:1392 +#: html.c:1394 msgid "Bot API key" msgstr "Bot API 密钥" -#: html.c:1398 +#: html.c:1400 msgid "Chat id" msgstr "聊天ID" -#: html.c:1406 +#: html.c:1408 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy服务器 - 完整网址(例如:https://ntft.sh/YourTopic)" -#: html.c:1412 +#: html.c:1414 msgid "ntfy token - if needed" msgstr "ntft令牌 - 如果需要的话" -#: html.c:2864 +#: html.c:2866 msgid "pinned" msgstr "置顶" -#: html.c:2876 +#: html.c:2878 msgid "bookmarks" msgstr "收藏夹" -#: html.c:2888 +#: html.c:2890 msgid "drafts" msgstr "草稿" -#: html.c:462 +#: html.c:464 msgid "Scheduled post..." msgstr "" -#: html.c:464 msgid "Post date and time:" msgstr "" -#: html.c:2899 html.c:3961 +#: html.c:2901 html.c:3963 msgid "Scheduled posts" msgstr "" -#: html.c:2900 +#: html.c:2902 msgid "scheduled posts" msgstr "" + +#: html.c:458 +#, c-format +msgid "Post date and time (timezone: %s):" +msgstr "" -- cgit v1.2.3 From 81538904210e9092760ce7c6b043eaaa166509b6 Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 14:12:37 +0200 Subject: More timezone tweaks. --- html.c | 2 +- xs_time.h | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/html.c b/html.c index 68a6b73..a6f79de 100644 --- a/html.c +++ b/html.c @@ -4369,7 +4369,7 @@ int html_post_handler(const xs_dict *req, const char *q_path, if (t != 0) { const char *tz = xs_dict_get_def(snac.config, "tz", "UTC"); - t += xs_tz_offset(tz); + t -= xs_tz_offset(tz); xs *iso_date = xs_str_iso_date(t); msg = xs_dict_set(msg, "published", iso_date); diff --git a/xs_time.h b/xs_time.h index 4da9463..6872c51 100644 --- a/xs_time.h +++ b/xs_time.h @@ -116,7 +116,36 @@ struct { const char *tz; /* timezone name */ float h_offset; /* hour offset */ } xs_tz[] = { - { "UTC", 0 }, + { "UTC", 0 }, + { "WET (Western European Time)", 0 }, + { "WEST (Western European Summer Time)", 1 }, + { "CET (Central European Time)", 1 }, + { "CEST (Central European Summer Time)", 2 }, + { "EET (Eastern European Time)", 2 }, + { "EEST (Eastern European Summer Time)", 3 }, + { "MSK (Moskow Time Zone)", 3 }, + { "EST (Eastern Time Zone)", -5 }, + { "AST (Atlantic Time Zone)", -4 }, + { "ADT (Atlantic Daylight Time Zone)", -3 }, + { "CST (Central Time Zone)", -6 }, + { "CDT (Central Daylight Time Zone)", -5 }, + { "MST (Mountain Time Zone)", -7 }, + { "MDT (Mountain Daylight Time Zone)", -6 }, + { "PST (Pacific Time Zone)", -8 }, + { "PDT (Pacific Daylight Time Zone)", -7 }, + { "AKST (Alaska Time Zone)", -9 }, + { "AKDT (Alaska Daylight Time Zone)", -8 }, + { "China Time Zone", 8 }, + { "IST (Israel Standard Time)", 2 }, + { "IDT (Israel Daylight Standard Time)", 3 }, + { "WITA (Western Indonesia Time)", 8 }, + { "AWST (Australian Western Time)", 8 }, + { "ACST (Australian Eastern Time)", 9.5 }, + { "ACDT (Australian Daylight Eastern Time)", 10.5 }, + { "AEST (Australian Eastern Time)", 10 }, + { "AEDT (Australian Daylight Eastern Time)", 11 }, + { "NZST (New Zealand Time)", 12 }, + { "NZDT (New Zealand Daylight Time)", 13 }, { "GMT", 0 }, { "GMT+1", -1 }, { "GMT+2", -2 }, @@ -144,13 +173,6 @@ struct { { "GMT-12", 12 }, { "GMT-13", 13 }, { "GMT-14", 14 }, - { "GMT-15", 15 }, - { "WET", 0 }, - { "CET", -1 }, - { "AST", -4 }, - { "CST", -6 }, - { "MST", -7 }, - { "PST", -8 }, { NULL, 0 } }; -- cgit v1.2.3 From 848bd3e865fb2daf75d76cbb75a4a39f9b82b516 Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 14:30:50 +0200 Subject: Cache the timezone inside the snac struct. --- data.c | 2 ++ html.c | 6 ++---- snac.h | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/data.c b/data.c index 6661472..440e9df 100644 --- a/data.c +++ b/data.c @@ -282,6 +282,8 @@ int user_open(snac *user, const char *uid) } else srv_log(xs_fmt("error parsing '%s'", cfg_file)); + + user->tz = xs_dict_get_def(user->config, "tz", "UTC"); } else srv_debug(2, xs_fmt("error opening '%s' %d", cfg_file, errno)); diff --git a/html.c b/html.c index a6f79de..2e7f87c 100644 --- a/html.c +++ b/html.c @@ -455,7 +455,7 @@ xs_html *html_note(snac *user, const char *summary, } if (edit_id == NULL || is_draft || is_scheduled(user, edit_id)) { - xs *pdat = xs_fmt(L("Post date and time (timezone: %s):"), xs_dict_get_def(user->config, "tz", "UTC")); + xs *pdat = xs_fmt(L("Post date and time (timezone: %s):"), user->tz); xs_html_add(form, xs_html_tag("p", @@ -4367,9 +4367,7 @@ int html_post_handler(const xs_dict *req, const char *q_path, time_t t = xs_parse_iso_date(post_pubdate, 0); if (t != 0) { - const char *tz = xs_dict_get_def(snac.config, "tz", "UTC"); - - t -= xs_tz_offset(tz); + t -= xs_tz_offset(snac.tz); xs *iso_date = xs_str_iso_date(t); msg = xs_dict_set(msg, "published", iso_date); diff --git a/snac.h b/snac.h index 0d2aafe..5a19467 100644 --- a/snac.h +++ b/snac.h @@ -61,6 +61,7 @@ typedef struct { xs_str *actor; /* actor url */ xs_str *md5; /* actor url md5 */ const xs_dict *lang;/* string translation dict */ + const char *tz; /* configured timezone */ } snac; typedef struct { -- cgit v1.2.3 From 251d31e10e7ab70d9480b2e056d1d76260de7046 Mon Sep 17 00:00:00 2001 From: green Date: Sat, 22 Mar 2025 20:44:27 +0100 Subject: emoji in external bios (i hope) --- html.c | 1 + 1 file changed, 1 insertion(+) diff --git a/html.c b/html.c index 68a6b73..428d64e 100644 --- a/html.c +++ b/html.c @@ -3112,6 +3112,7 @@ xs_html *html_people_list(snac *user, xs_list *list, const char *header, const c if (!xs_is_null(c)) { xs *sc = sanitize(c); + sc = replace_shortnames(sc, xs_dict_get(actor, "tag"), 2, proxy); xs_html *snac_content = xs_html_tag("div", xs_html_attr("class", "snac-content")); -- cgit v1.2.3 From 7f10057cff51748f7fb96021dc755127991cdbf9 Mon Sep 17 00:00:00 2001 From: green Date: Sat, 22 Mar 2025 21:31:01 +0100 Subject: fixed broken emojis on akkoma --- html.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/html.c b/html.c index 428d64e..a70f303 100644 --- a/html.c +++ b/html.c @@ -91,8 +91,18 @@ xs_str *replace_shortnames(xs_str *s, const xs_list *tag, int ems, const char *p const char *u = xs_dict_get(i, "url"); const char *mt = xs_dict_get(i, "mediaType"); - if (xs_is_string(u) && xs_is_string(mt)) { - if (strcmp(mt, "image/svg+xml") == 0 && !xs_is_true(xs_dict_get(srv_config, "enable_svg"))) + if (xs_is_string(u)) { + // on akkoma instances mediaType is not present. + // but we need to to know if the image is an svg or not. + // for now, i just use the file extention, which may not be the most reliable... + int is_svg = 0; + if (xs_is_string(mt)) { + is_svg = (strcmp(mt, "image/svg+xml") == 0); + } else { + is_svg = xs_endswith(u, ".svg"); + } + + if (is_svg && !xs_is_true(xs_dict_get(srv_config, "enable_svg"))) s = xs_replace_i(s, n, ""); else { xs *url = make_url(u, proxy, 0); @@ -3112,6 +3122,10 @@ xs_html *html_people_list(snac *user, xs_list *list, const char *header, const c if (!xs_is_null(c)) { xs *sc = sanitize(c); + + // replace shortnames in bio + // bug: this somehow fires twice on one specific user + // @ielenia@ck.catwithaclari.net sc = replace_shortnames(sc, xs_dict_get(actor, "tag"), 2, proxy); xs_html *snac_content = xs_html_tag("div", -- cgit v1.2.3 From a28638b4c18abacabd02fef4a51dde80bf4d5db4 Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 14:39:46 +0200 Subject: More timezone work. --- html.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/html.c b/html.c index 2e7f87c..d807f4b 100644 --- a/html.c +++ b/html.c @@ -1318,6 +1318,27 @@ xs_html *html_top_controls(snac *user) xs_html_attr("value", lang))); } + /* timezone */ + xs_html *tz_select = xs_html_tag("select", + xs_html_attr("name", "tz")); + + xs *tzs = xs_tz_list(); + const char *tz; + + xs_list_foreach(tzs, tz) { + if (strcmp(tz, user->tz) == 0) + xs_html_add(tz_select, + xs_html_tag("option", + xs_html_text(tz), + xs_html_attr("value", tz), + xs_html_attr("selected", "selected"))); + else + xs_html_add(tz_select, + xs_html_tag("option", + xs_html_text(tz), + xs_html_attr("value", tz))); + } + xs *user_setup_action = xs_fmt("%s/admin/user-setup", user->actor); xs_html_add(top_controls, @@ -1513,6 +1534,11 @@ xs_html *html_top_controls(snac *user) xs_html_sctag("br", NULL), lang_select), + xs_html_tag("p", + xs_html_text(L("Time zone:")), + xs_html_sctag("br", NULL), + tz_select), + xs_html_tag("p", xs_html_text(L("New password:")), xs_html_sctag("br", NULL), @@ -4755,6 +4781,8 @@ int html_post_handler(const xs_dict *req, const char *q_path, snac.config = xs_dict_set(snac.config, "show_contact_metrics", xs_stock(XSTYPE_FALSE)); if ((v = xs_dict_get(p_vars, "web_ui_lang")) != NULL) snac.config = xs_dict_set(snac.config, "lang", v); + if ((v = xs_dict_get(p_vars, "tz")) != NULL) + snac.config = xs_dict_set(snac.config, "tz", v); snac.config = xs_dict_set(snac.config, "latitude", xs_dict_get_def(p_vars, "latitude", "")); snac.config = xs_dict_set(snac.config, "longitude", xs_dict_get_def(p_vars, "longitude", "")); -- cgit v1.2.3 From d19806a72db3585048c57f8940a74ec04f16e125 Mon Sep 17 00:00:00 2001 From: green Date: Mon, 24 Mar 2025 02:27:10 +0100 Subject: maybe a fix for username emojis --- activitypub.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/activitypub.c b/activitypub.c index 4c22c25..ee7c9b1 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1327,6 +1327,11 @@ xs_dict *msg_actor(snac *snac) msg = xs_dict_set(msg, "preferredUsername", snac->uid); msg = xs_dict_set(msg, "published", xs_dict_get(snac->config, "published")); + // this exists so we get the emoji tags from our name too. + // and then we just throw away the result, because it's kinda useless to have markdown in the dysplay name. + // right now, only emojies in bio actually work for local users + xs *name_dummy = not_really_markdown(xs_dict_get(snac->config, "name"), NULL, &tags); + xs *f_bio_2 = not_really_markdown(xs_dict_get(snac->config, "bio"), NULL, &tags); f_bio = process_tags(snac, f_bio_2, &tags); msg = xs_dict_set(msg, "summary", f_bio); -- cgit v1.2.3 From 5fd3823e14639931177656a51e71b74d886d4f9a Mon Sep 17 00:00:00 2001 From: green Date: Mon, 24 Mar 2025 02:44:58 +0100 Subject: emojis in usernames in web ui --- html.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/html.c b/html.c index a70f303..b31897b 100644 --- a/html.c +++ b/html.c @@ -980,10 +980,16 @@ static xs_html *html_user_body(snac *user, int read_only) xs_dict_get(user->config, "uid"), xs_dict_get(srv_config, "host")); + // also try to make emojis render in local usernames, specifically in the user info thing in the web ui + xs *name_tags = xs_list_new(); + xs *name1 = not_really_markdown(xs_dict_get(user->config, "name"), NULL, &name_tags); + xs *name2 = sanitize(name1); + name2 = replace_shortnames(name2, name_tags, 1, proxy); + xs_html_add(top_user, xs_html_tag("p", xs_html_attr("class", "p-name snac-top-user-name"), - xs_html_text(xs_dict_get(user->config, "name"))), + xs_html_raw(name2)), xs_html_tag("p", xs_html_attr("class", "snac-top-user-id"), xs_html_text(handle))); -- cgit v1.2.3 From 544a20fb2ae81fcdf1103f37d6c57428a8d401c4 Mon Sep 17 00:00:00 2001 From: green Date: Mon, 24 Mar 2025 11:24:39 +0100 Subject: EmojiReact notifications show up as emojis --- html.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/html.c b/html.c index b31897b..3c5903d 100644 --- a/html.c +++ b/html.c @@ -3350,7 +3350,8 @@ xs_str *html_notifications(snac *user, int skip, int show) continue; xs *a_name = actor_name(actor, proxy); - const char *label = type; + xs *label_sanatized = sanitize(type); + const char *label = label_sanatized; if (strcmp(type, "Create") == 0) label = L("Mention"); @@ -3365,7 +3366,8 @@ xs_str *html_notifications(snac *user, int skip, int show) const char *content = xs_dict_get_path(noti, "msg.content"); if (xs_type(content) == XSTYPE_STRING) { - wrk = xs_fmt("%s (%s)", type, content); + xs *emoji = replace_shortnames(xs_dup(content), xs_dict_get_path(noti, "msg.tag"), 1, proxy); + wrk = xs_fmt("%s (%s)", type, emoji); label = wrk; } } @@ -3377,7 +3379,7 @@ xs_str *html_notifications(snac *user, int skip, int show) xs_html *this_html_label = xs_html_container( xs_html_tag("b", - xs_html_text(label), + xs_html_raw(label), xs_html_text(" by "), xs_html_tag("a", xs_html_attr("href", actor_id), -- cgit v1.2.3 From 4408859f8dcb8f83670d75f1128e1120ea318ec9 Mon Sep 17 00:00:00 2001 From: green Date: Mon, 24 Mar 2025 12:47:15 +0100 Subject: also display the emoji for likes --- html.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html.c b/html.c index 3c5903d..103ce3d 100644 --- a/html.c +++ b/html.c @@ -3362,7 +3362,7 @@ xs_str *html_notifications(snac *user, int skip, int show) if (strcmp(type, "Undo") == 0 && strcmp(utype, "Follow") == 0) label = L("Unfollow"); else - if (strcmp(type, "EmojiReact") == 0) { + if (strcmp(type, "EmojiReact") == 0 || strcmp(type, "Like") == 0) { const char *content = xs_dict_get_path(noti, "msg.content"); if (xs_type(content) == XSTYPE_STRING) { -- cgit v1.2.3 From fbd81b604315f569ce5714fdc9d3caa78daaa83a Mon Sep 17 00:00:00 2001 From: green Date: Wed, 26 Mar 2025 01:40:14 +0100 Subject: mime types for apng and svg check --- html.c | 10 +++------- xs_mime.h | 1 + 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/html.c b/html.c index 103ce3d..c8015a1 100644 --- a/html.c +++ b/html.c @@ -95,14 +95,10 @@ xs_str *replace_shortnames(xs_str *s, const xs_list *tag, int ems, const char *p // on akkoma instances mediaType is not present. // but we need to to know if the image is an svg or not. // for now, i just use the file extention, which may not be the most reliable... - int is_svg = 0; - if (xs_is_string(mt)) { - is_svg = (strcmp(mt, "image/svg+xml") == 0); - } else { - is_svg = xs_endswith(u, ".svg"); - } + if (!xs_is_string(mt)) + mt = xs_mime_by_ext(u); - if (is_svg && !xs_is_true(xs_dict_get(srv_config, "enable_svg"))) + if (strcmp(mt, "image/svg+xml") == 0 && !xs_is_true(xs_dict_get(srv_config, "enable_svg"))) s = xs_replace_i(s, n, ""); else { xs *url = make_url(u, proxy, 0); diff --git a/xs_mime.h b/xs_mime.h index 6f65382..5f70922 100644 --- a/xs_mime.h +++ b/xs_mime.h @@ -38,6 +38,7 @@ const char *xs_mime_types[] = { "ogv", "video/ogg", "opus", "audio/ogg", "png", "image/png", + "apng", "image/apng", "svg", "image/svg+xml", "svgz", "image/svg+xml", "txt", "text/plain", -- cgit v1.2.3 From 8c2abef699a98652c290bafd844f8ae2c25eef7f Mon Sep 17 00:00:00 2001 From: green Date: Wed, 26 Mar 2025 01:44:20 +0100 Subject: the fucking list is sotted. oopps --- xs_mime.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs_mime.h b/xs_mime.h index 5f70922..0146385 100644 --- a/xs_mime.h +++ b/xs_mime.h @@ -16,6 +16,7 @@ extern const char *xs_mime_types[]; const char *xs_mime_types[] = { "3gp", "video/3gpp", "aac", "audio/aac", + "apng", "image/apng", "avif", "image/avif", "css", "text/css", "flac", "audio/flac", @@ -38,7 +39,6 @@ const char *xs_mime_types[] = { "ogv", "video/ogg", "opus", "audio/ogg", "png", "image/png", - "apng", "image/apng", "svg", "image/svg+xml", "svgz", "image/svg+xml", "txt", "text/plain", -- cgit v1.2.3 From e251c61382d4cd39ed89876a37962acab1122f84 Mon Sep 17 00:00:00 2001 From: green Date: Tue, 1 Apr 2025 23:08:48 +0200 Subject: allow emoji urls with no extension --- format.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/format.c b/format.c index b2b585d..43dd638 100644 --- a/format.c +++ b/format.c @@ -385,7 +385,8 @@ xs_str *not_really_markdown(const char *content, xs_list **attach, xs_list **tag const char *t = NULL; /* is it an URL to an image? */ - if (xs_startswith(v, "https:/" "/") && xs_startswith((t = xs_mime_by_ext(v)), "image/")) { + if (xs_startswith(v, "https:/" "/") && + (xs_startswith((t = xs_mime_by_ext(v)), "image/") || strrchr(v, '.') == NULL)) { if (tag && xs_str_in(s, k) != -1) { /* add the emoji to the tag list */ xs *e = xs_dict_new(); -- cgit v1.2.3 From 15100ad81941c967ce34cc7534bf9b6d7b585e91 Mon Sep 17 00:00:00 2001 From: green Date: Tue, 1 Apr 2025 23:12:21 +0200 Subject: check the extension in a different way --- format.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/format.c b/format.c index 43dd638..1bb2cf1 100644 --- a/format.c +++ b/format.c @@ -10,6 +10,7 @@ #include "xs_match.h" #include "snac.h" +#include /* emoticons, people laughing and such */ const char *smileys[] = { @@ -382,11 +383,11 @@ xs_str *not_really_markdown(const char *content, xs_list **attach, xs_list **tag const char *k, *v; while (xs_dict_next(d, &k, &v, &c)) { - const char *t = NULL; + const char *t = xs_mime_by_ext(v); /* is it an URL to an image? */ if (xs_startswith(v, "https:/" "/") && - (xs_startswith((t = xs_mime_by_ext(v)), "image/") || strrchr(v, '.') == NULL)) { + (xs_startswith(t, "image/") || strcmp(t, "application/octet-stream") == 0)) { if (tag && xs_str_in(s, k) != -1) { /* add the emoji to the tag list */ xs *e = xs_dict_new(); -- cgit v1.2.3 From 21a99e55081a58f1396d49fb70824f91a8e7c2ab Mon Sep 17 00:00:00 2001 From: green Date: Wed, 9 Apr 2025 03:09:53 +0200 Subject: emoji: refactor + emoji in display names on front page --- html.c | 39 +++++++++++++++++++++++++-------------- httpd.c | 4 +++- snac.h | 1 + 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/html.c b/html.c index c8015a1..f3d5ee9 100644 --- a/html.c +++ b/html.c @@ -143,6 +143,26 @@ xs_str *actor_name(xs_dict *actor, const char *proxy) } +xs_str *format_text_with_emoji(snac *user, const char *text, int ems, const char *proxy) +/* needed when we have local text with no tags attached */ +{ + xs *tags = xs_list_new(); + xs *name1 = not_really_markdown(text, NULL, &tags); + + xs_str *name3; + if (user) { + xs *name2 = process_tags(user, name1, &tags); + name3 = sanitize(name2); + } + else { + name3 = sanitize(name1); + name3 = xs_replace_i(name3, "
", ""); + } + + return replace_shortnames(name3, tags, ems, proxy); +} + + xs_html *html_actor_icon(snac *user, xs_dict *actor, const char *date, const char *udate, const char *url, int priv, int in_people, const char *proxy, const char *lang, @@ -976,16 +996,12 @@ static xs_html *html_user_body(snac *user, int read_only) xs_dict_get(user->config, "uid"), xs_dict_get(srv_config, "host")); - // also try to make emojis render in local usernames, specifically in the user info thing in the web ui - xs *name_tags = xs_list_new(); - xs *name1 = not_really_markdown(xs_dict_get(user->config, "name"), NULL, &name_tags); - xs *name2 = sanitize(name1); - name2 = replace_shortnames(name2, name_tags, 1, proxy); + xs *display_name = format_text_with_emoji(NULL, xs_dict_get(user->config, "name"), 1, proxy); xs_html_add(top_user, xs_html_tag("p", xs_html_attr("class", "p-name snac-top-user-name"), - xs_html_raw(name2)), + xs_html_raw(display_name)), xs_html_tag("p", xs_html_attr("class", "snac-top-user-id"), xs_html_text(handle))); @@ -1013,16 +1029,11 @@ static xs_html *html_user_body(snac *user, int read_only) } if (read_only) { - xs *tags = xs_list_new(); - xs *bio1 = not_really_markdown(xs_dict_get(user->config, "bio"), NULL, &tags); - xs *bio2 = process_tags(user, bio1, &tags); - xs *bio3 = sanitize(bio2); - - bio3 = replace_shortnames(bio3, tags, 2, proxy); + xs *bio = format_text_with_emoji(user, xs_dict_get(user->config, "bio"), 2, proxy); xs_html *top_user_bio = xs_html_tag("div", xs_html_attr("class", "p-note snac-top-user-bio"), - xs_html_raw(bio3)); /* already sanitized */ + xs_html_raw(bio)); /* already sanitized */ xs_html_add(top_user, top_user_bio); @@ -3675,7 +3686,7 @@ int html_get_handler(const xs_dict *req, const char *q_path, if (xs_is_true(xs_dict_get(srv_config, "strict_public_timelines"))) list = timeline_simple_list(&snac, "public", skip, show, &more); - else + else list = timeline_list(&snac, "public", skip, show, &more); xs *pins = pinned_list(&snac); diff --git a/httpd.c b/httpd.c index 22a148d..836c256 100644 --- a/httpd.c +++ b/httpd.c @@ -139,6 +139,8 @@ static xs_str *greeting_html(void) snac user; if (strcmp(uid, "relay") && user_open(&user, uid)) { + xs *formatted_name = format_text_with_emoji(NULL, xs_dict_get(user.config, "name"), 1, NULL); + xs_html_add(ul, xs_html_tag("li", xs_html_tag("a", @@ -148,7 +150,7 @@ static xs_str *greeting_html(void) xs_html_text("@"), xs_html_text(host), xs_html_text(" ("), - xs_html_text(xs_dict_get(user.config, "name")), + xs_html_raw(formatted_name), xs_html_text(")")))); user_free(&user); diff --git a/snac.h b/snac.h index 0d2aafe..90f8bd8 100644 --- a/snac.h +++ b/snac.h @@ -373,6 +373,7 @@ int activitypub_post_handler(const xs_dict *req, const char *q_path, char **body, int *b_size, char **ctype); xs_dict *emojis(void); +xs_str *format_text_with_emoji(snac *user, const char *text, int ems, const char *proxy); xs_str *not_really_markdown(const char *content, xs_list **attach, xs_list **tag); xs_str *sanitize(const char *content); xs_str *encode_html(const char *str); -- cgit v1.2.3 From f8243cbc6b21d9abe6df447415a08da1ce1592ae Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 14:45:09 +0200 Subject: Updated documentation. --- doc/snac.1 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/snac.1 b/doc/snac.1 index 601ce6d..2f1ccfe 100644 --- a/doc/snac.1 +++ b/doc/snac.1 @@ -163,6 +163,9 @@ lists of accounts are never published). .It Web interface language If the administrator has installed any language file, it can be selected here. +.It Time zone +The time zone the user is on (default: UTC). Only +used for scheduled posts. .It Password Write the same string in these two fields to change your password. Don't write anything if you don't want to do this. -- cgit v1.2.3 From bd95fc0dd124d788b6bc1f7a4dddfc21e98d83f2 Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 14:47:47 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 4ca15e4..70106fb 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,8 @@ Added support for scheduled posts. +The user can now select a working time zone. This will be used to correctly parse the local date and time of a scheduled post. + Fixed incorrect poll vote format, which was causing problems in platforms like GotoSocial. Mastodon API: added support for `/api/v1/instance/peers`. -- cgit v1.2.3 From 1a6c3c5e815933e42f1b0be0e0fa2d44ac78036b Mon Sep 17 00:00:00 2001 From: green Date: Sun, 23 Mar 2025 02:32:47 +0100 Subject: better control over the emoji class --- html.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html.c b/html.c index f3d5ee9..be89453 100644 --- a/html.c +++ b/html.c @@ -69,6 +69,7 @@ xs_str *replace_shortnames(xs_str *s, const xs_list *tag, int ems, const char *p } xs *style = xs_fmt("height: %dem; width: %dem; vertical-align: middle;", ems, ems); + xs *class = xs_fmt("snac-emoji snac-emoji-%d-em", ems); const xs_dict *v; int c = 0; @@ -108,7 +109,7 @@ xs_str *replace_shortnames(xs_str *s, const xs_list *tag, int ems, const char *p xs_html_attr("src", url), xs_html_attr("alt", n), xs_html_attr("title", n), - xs_html_attr("class", "snac-emoji"), + xs_html_attr("class", class), xs_html_attr("style", style)); xs *s1 = xs_html_render(img); -- cgit v1.2.3 From 8fc6c0363a3e3fb3bb26e3e7f889f07ef1e8cb0b Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 15:02:57 +0200 Subject: Updated po files. --- po/cs.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/de_DE.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/el_GR.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/en.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/es.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/es_AR.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/es_UY.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/fi.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/fr.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/it.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/pt_BR.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/ru.po | 280 ++++++++++++++++++++++++++++++------------------------------ po/zh.po | 280 ++++++++++++++++++++++++++++++------------------------------ 13 files changed, 1846 insertions(+), 1794 deletions(-) diff --git a/po/cs.po b/po/cs.po index 8bd9220..759342b 100644 --- a/po/cs.po +++ b/po/cs.po @@ -136,7 +136,7 @@ msgstr "Hledání obsahu" msgid "verified link" msgstr "ověřený odkaz" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Místo: " @@ -152,7 +152,7 @@ msgstr "Co se vám honí hlavou?" msgid "Operations..." msgstr "Operace..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Sledovat" @@ -160,7 +160,7 @@ msgstr "Sledovat" msgid "(by URL or user@host)" msgstr "(podle URL nebo @uživatel@instance)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Boostit" @@ -168,513 +168,513 @@ msgstr "Boostit" msgid "(by URL)" msgstr "(podle URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Líbí" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Nastavení..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Jméno:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Vaše jméno" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Smazat současný avatar" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Obrázek v záhlaví profilu: " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Smazat současný obrázek v záhlaví" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Bio:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Napište sem něco o sobě..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Vždy zobrazit příspěvky s varováním o citlivém obsahu" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Emailová adresa pro upozornění" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Upozornění na Telegram (bot klíč a chat id):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "ntfy notifikace (ntfy server a token):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "Životnost příspěvků ve dnech (0: nastavení serveru):" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Zahodit soukromé zprávy od lidí, které nesledujete" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Tenhle účet je robot" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Automaticky boostovat všechny zmíňky o tomto účtu" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "" "Tento účet je soukromý (příspěvky nejsou zobrazitelné napříč internetem)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Zobrazovat vlákna složená" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Žádosti o sledování je nutno manuálně potvrdit" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Zobraz údaje o počtu sledovaných a sledujících" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Geolokace:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata profilu (klíč=hodnota na jeden řádek):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Jazyk rozhraní:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Nové heslo:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Zopakujte nové heslo:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Uložit" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Sledované hashtagy..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Jeden hashtag na řádek" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Aktualizovat hashtagy" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Dejte najevo, že se vám příspěvek líbí" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "Nelíbí" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Vlastně se mi to zas tak nelíbí" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Odepnout" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Odepnout tento příspěvek z vaší osy" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Připnout" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Připnout tento příspěvěk na začátek vaší osy" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Ukázat tenhle příspěvek vašim sledujícím" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Odboostit" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Boostit to byl blbej nápad" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Zahodit" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Odstraň tenhle příspěvěk ze svých záložek" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Uložit" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Uložit tenhle příspěvek mezi záložky" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Přestat sledovat" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Přestat sledovat tohoto uživatele" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Začít sledovat tohoto uživatele" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Přestat Sledovat Skupinu" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Přestat sledovat tuto skupinu nebo kanál" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Sledovat Skupinu" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Začít sledovat tuto skupinu nebo kanál" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "ZTIŠIT" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Jednou provždy zablokovat všechno od tohoto uživatele" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Smazat" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Smazat tento příspěvek" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Schovat" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Schovat tento příspěvek a příspěvky pod ním" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Editovat..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Odpovědět..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Ořezáno (moc hluboké)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "sleduje vás" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Připnuto" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Zazáložkováno" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Anketa" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Odhlasováno" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Událost" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "boostuje" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "odpověď pro" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr "[CITLIVÝ OBSAH]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Hlasuj" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Uzavřeno" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Končí za" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Video" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Audio" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Příloha" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Popisek..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Čas:" -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Starší..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "o této stránce" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "pohání " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Zahodit" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Časová osa pro seznam '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Připnuté příspěvky" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Záložky" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Rozepsané příspěky" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "Nic víc nového" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Zpátky nahoru" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Historie" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Více..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Povolit boosty" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Zobrazovat boosty od tohoto uživatele" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Skrýt boosty" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Ztišit boosty od tohoto uživatele" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Smazat tohoto užiatele" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Schválit" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Schválit žádost o sledování" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Zahodit" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Zahodit žádost o sledování" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Zrušit ztišení" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Přestat blokovat tohoto uživatele" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Zablokovat všechno od tohoto uživatele" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Soukomá zpráva..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Dosud nepotvrzené žádosti o sledování" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Lidé, které sledujete" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Lidé, kteří vás sledují" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Smazat vše" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Zmínil vás" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Ukončená anketa" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Žádost o sledování" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Kontext" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Nové" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Zobrazeno dříve" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Nic" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Výsledky vyhledávání účtu %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "Účet %s nenalezen" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Výsledky k tagu %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "Nic k tagu %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Výsledky vyhledávání pro '%s' (může toho být víc)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Výsledky vyhledávání pro '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "Nic víc pro '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "Žádný výsledek pro '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Časová osa místní instance" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Časová osa pro seznam '%s'" @@ -688,7 +688,7 @@ msgstr "Výsledky vyhledávání tagu #%s" msgid "Recent posts by users in this instance" msgstr "Nedávné příspěvky od uživatelů této instance" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Blokované hashtagy..." @@ -708,31 +708,31 @@ msgstr "" "Možnost 3...\n" "..." -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "API klíč Bota" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "Chat id" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy server - celá URL adresa (např: https://ntfy.sh/VaseTema)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "ntfy token - pokud je zapotřebí" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "připnuté" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "záložky" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "rozepsané" @@ -743,11 +743,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -755,3 +755,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/de_DE.po b/po/de_DE.po index f14cde5..4d7cbdd 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -136,7 +136,7 @@ msgstr "Inhaltssuche" msgid "verified link" msgstr "verifizierter Link" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Standort: " @@ -152,7 +152,7 @@ msgstr "Was beschäftigt dich?" msgid "Operations..." msgstr "Aktionen..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Folgen" @@ -160,7 +160,7 @@ msgstr "Folgen" msgid "(by URL or user@host)" msgstr "(mit URL oder user@host)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Boosten" @@ -168,514 +168,514 @@ msgstr "Boosten" msgid "(by URL)" msgstr "(mit URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Gefällt mir" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Einstellungen..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Anzeigename:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Dein Name" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Aktuellen Avatar löschen" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Titelbild (Banner): " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Aktuelles Titelbild löschen" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Über dich:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Erzähle etwas von dir..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Sensible Inhalte immer anzeigen" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "E-Mail Adresse für Benachrichtigungen:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram Benachrichtigungen (Bot Schlüssel und Chat ID):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "NTFY Benachrichtigungen (ntfy Server und Token):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "Aufbewahrungsfrist der Beiträge in Tagen (0 = Serverstandard):" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Blocke Direktnachrichten von Personen denen du nicht folgst" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Dieses Konto ist ein Bot" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Automatisches Boosten bei Erwähnungen dieses Kontos" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "" "Dieses Konto ist privat (Beiträge werden nicht in der Weboberfläche " "angezeigt)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Themen standardmäßig einklappen" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Folgeanfragen müssen genehmigt werden" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Veröffentliche die Anzahl von Followern und Gefolgten." -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Standort:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Profil-Metadaten (Begriff=Wert Paare, einer pro Zeile):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Sprache der Weboberfläche:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Neues Passwort:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Neues Passwort wiederholen:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Benutzerinformationen aktualisieren" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Gefolgte Hashtags..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Ein Hashtag pro Zeile" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Hashtags aktualisieren" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Sag, dass dir dieser Beiträg gefällt" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "Gefällt mir zurücknehmen" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Nee, gefällt mir nicht so gut" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Pin entfernen" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Pin für diesen Beitrag aus deiner Zeitleiste entfernen" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Anpinnen" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Pinne diesen Beitrag an den Anfang deiner Zeitleiste" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Diesen Beitrag an deine Follower weiterschicken" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Boost zurücknehmen" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Ich bedauere, dass ich das weiterverschickt habe" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Lesezeichen entfernen" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Diesen Beitrag aus den Lesezeichen entfernen" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Lesezeichen" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Diesen Beitrag zu deinen Lesezeichen hinzufügen" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Nicht mehr folgen" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Aktivitäten dieses Benutzers nicht mehr folgen" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Folge den Aktivitäten dieses Benutzers" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Der Gruppe nicht mehr folgen" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Der Gruppe oder dem Kanal nicht mehr folgen" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Der Gruppe folgen" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Der Gruppe oder dem Kanal folgen" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "Stummschalten" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Alle Aktivitäten dieses Benutzers für immer blockieren" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Löschen" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Diesen Beitrag löschen" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Verstecken" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Verstecke diesen Beitrag und seine Kommentare" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Bearbeiten..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Antworten..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Abgeschnitten (zu tief)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "folgt dir" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Angeheftet" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Lesezeichen gesetzt" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Umfrage" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Abgestimmt" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Ereignis" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "teilte" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "als Antwort auf" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [SENSIBLER INHALT]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Abstimmen" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Geschlossen" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Beendet in" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Video" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Audio" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Anhang" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Alt.-Text..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Ursprungskanal oder -gemeinschaft" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Zeit: " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Älter..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "Über diese Seite" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "powered by " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Ablehnen" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Zeitleiste für Liste '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Angeheftete Beiträge" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Beiträge mit Lesezeichen" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Entwurf veröffentlichen" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "Keine weiteren ungesehenen Beiträge" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Nach oben" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Historie" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Mehr..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Nicht mehr limitieren" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Erlaube Boosts dieses Benutzers" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Limitieren" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Blocke Boosts dieses Benutzers" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Benutzer löschen" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Bestätigen" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Diese Folgeanfrage bestätigen" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Verwerfen" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Diese Folgeanfrage verwerfen" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Stummschaltung aufheben" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Aktivitäten dieses Benutzers nicht mehr blockieren" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Alle Aktivitäten dieses Benutzers blockieren" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Direktnachricht..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Ausstehende Folgebestätigungen" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Personen denen du folgst" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Personen die dir folgen" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Aufräumen" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Erwähnung" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Beendete Umfrage" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Folge-Anfrage" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Zusammenhang anzeigen" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Neu" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Bereits gesehen" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Nichts" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Suchergebnisse für Konto %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "Konto %s wurde nicht gefunden" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Suchergebnisse für Hashtag %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "Nicht gefunden zu Hashtag %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Suchergebnisse für '%s' (könnten mehr sein)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Keine Suchergebnisse für '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "Keine weiteren Treffer für '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "Nichts gefunden für '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Zeitleiste der Instanz anzeigen" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Zeitleiste der Liste '%s' anzeigen" @@ -689,7 +689,7 @@ msgstr "Suchergebnisse für Hashtag #%s" msgid "Recent posts by users in this instance" msgstr "Neueste Beiträge von Benutzern dieser Instanz" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Geblockte Hashtags..." @@ -709,31 +709,31 @@ msgstr "" "Option 3...\n" "..." -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "Bot API Schlüssel" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "Chat ID" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy Server - vollständige URL (Bsp.: https://ntfy.sh/YourTopic)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "ntfy Token - falls nötig" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "Angeheftet" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "Lesezeichen" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "Entwürfe" @@ -744,11 +744,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -756,3 +756,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/el_GR.po b/po/el_GR.po index 0e45297..d5f51b6 100644 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -143,7 +143,7 @@ msgstr "Αναζήτηση περιεχομένου" msgid "verified link" msgstr "πιστοποιημένος σύνδεσμος" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Τοποθεσία: " @@ -159,7 +159,7 @@ msgstr "Τι έχεις στο μυαλό σου;" msgid "Operations..." msgstr "Λειτουργίες..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Ακολούθησε" @@ -167,7 +167,7 @@ msgstr "Ακολούθησε" msgid "(by URL or user@host)" msgstr "(με URL ή user@host)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Ενίσχυση" @@ -175,514 +175,514 @@ msgstr "Ενίσχυση" msgid "(by URL)" msgstr "(από URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Μου αρέσει" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Ρυθμίσεις Χρήστη..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Προβαλλόμενο όνομα:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Το όνομα σου" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Εικόνα προφίλ: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Διαγραφή τρέχουσας εικόνας προφίλ" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Εικόνα κεφαλίδας (banner): " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Διαγραφή τρέχουσας εικόνας κεφαλίδας" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Βιογραφικό:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Γράψε για τον εαυτό σου εδώ..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Πάντα πρόβαλε ευαίσθητο περιεχόμενο" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Διεύθυνση email για ειδοποιήσεις:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Ειδοποιήσεις Telegram (κλειδί bot και chat id):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "ειδοποιήσεις ntfy (διακομιστής ntfy και token):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "Διατήρηση δημοσιεύσεων για ημέρες (0: ρυθμίσεις διακομιστή):" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Απόρριψη άμεσων μηνυμάτων από άτομα που δεν ακολουθείτε" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Αυτός ο λογαριασμός είναι αυτοματοποιημένος (bot)" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Αυτόματη ενίσχυση όλων των αναφορών σε αυτό το λογαριασμό" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "" "Αυτός ο λογαριασμός είναι ιδιωτικός (οι δημοσιεύσεις δεν εμφανίζονται στο " "διαδίκτυο)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Αναδίπλωση κορυφαίων συζητήσεων εξ'ορισμού" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Τα αιτήματα ακόλουθων πρέπει να εγκρίνονται" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Δημοσίευση στατιστικών ακόλουθων και ακολουθούμενων" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Τρέχουσα τοποθεσία:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Μεταστοιχεία προφίλ (κλειδί=τιμή ζευγάρια σε κάθε γραμμή):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Γλώσσα περιβάλλοντος web:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Νέος κωδικός:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Επανάληψη νέου κωδικού:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Ενημέρωση στοιχείων χρήστη" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Ετικέτες που ακολουθείτε..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Μία ετικέτα ανά γραμμή" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Ενημέρωση ετικετών" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Ανάφερε ότι σου αρέσει αυτή η δημοσίευση" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "Αναίρεση μου αρέσει" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Μπα δεν μ' αρέσει τόσο" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Ξεκαρφίτσωμα" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Ξεκαρφίτσωμα αυτής της δημοσίευσης από τη ροή σας" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Καρφίτσωμα" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Καρφίτσωμα αυτής της δημοσίευσης στη κορυφή της ροής σας" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Ανακοίνωση αυτής της δημοσίευσης στους ακόλουθους σας" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Αφαίρεση ενίσχυσης" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Μετάνιωσα που το ενίσχυσα" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Αφαίρεση σελιδοδείκτη" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Διαγραφή αυτής της δημοσίευσης από τους σελιδοδείκτες σου" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Εισαγωγή σελιδοδείκτη" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Προσθήκη αυτής της δημοσίευσης στους σελιδοδείκτες σου" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Αναίρεση ακολουθίας" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Σταμάτα να ακολουθείς τη δραστηριότητα αυτού του χρήστη" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Ξεκίνα να ακολουθείς τη δραστηριότητα αυτού του χρήστη" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Αναίρεση ακολουθίας ομάδας" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Σταμάτα να ακολουθείς αυτή την ομάδα ή κανάλι" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Ακολούθησε την Ομάδα" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Ξεκίνα να ακολουθείς αυτή την ομάδα ή κανάλι" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "ΣΙΓΑΣΗ" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Αποκλεισμός οποιασδήποτε δραστηριότητας από αυτόν τον χρήστη για πάντα" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Διαγραφή" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Διαγραφή αυτής της δημοσίευσης" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Απόκρυψη" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Απόκρυψη αυτής της δημοσίευσης και των απαντήσεων της" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Επεξεργασία..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Απάντηση..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Έγινε περικοπή (πολύ βαθύ)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "σε ακολουθεί" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Καρφιτσωμένο" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Εισήχθηκε σελιδοδείκτης" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Δημοσκόπηση" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Ψήφισες" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Εκδήλωση" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "ενισχύθηκε" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "σε απάντηση του" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [ΕΥΑΙΣΘΗΤΟ ΠΕΡΙΕΧΟΜΕΝΟ]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Ψήφισε" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Έκλεισε" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Κλείνει σε" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Βίντεο" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Ήχος" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Επισύναψη" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Εναλλακτικό κείμενο..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Πηγή κανάλι ή κοινότητα" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Ώρα: " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Παλαιότερα..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "σχετικά με αυτό τον ιστότοπο" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "λειτουργεί με " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Απόρριψη" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Ροή για λίστα '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Καρφιτσωμένες δημοσιεύσεις" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Σελιδοδείκτες" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Προσχέδια δημοσιεύσεων" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "Δεν υπάρχουν άλλες αδιάβαστες δημοσιεύσεις" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Πίσω στη κορυφή" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Ιστορικό" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Περισσότερα..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Αφαίρεση περιορισμού" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Επέτρεψε ανακοινώσεις (ενισχύσεις) από αυτό το χρήστη" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Περιορισμός" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Απέκλεισε ανακοινώσεις (ενισχύσεις) από αυτό το χρήστη" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Διαγραφή αυτού του χρήστη" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Έγκριση" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Έγκριση αυτού του αιτήματος ακόλουθου" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Απόρριψη" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Απόρριψη αυτού του αιτήματος ακόλουθου" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Αφαίρεση σίγασης" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Διακοπή αποκλεισμού δραστηριοτήτων από αυτό το χρήστη" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Αποκλεισμός οποιασδήποτε δραστηριότητας από αυτό τον χρήστη" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Απευθείας Μήνυμα..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Εκκεμείς επιβεβαιώσεις ακολουθήσεων" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Άνθρωποι που ακολουθείτε" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Άνθρωποι που σας ακολουθούν" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Εκκαθάριση όλων" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Αναφορά" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Ολοκληρωμένη δημοσκόπηση" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Αίτημα Ακόλουθου" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Περιεχόμενο" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Νέο" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Έχει ήδη προβληθεί" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Κανένα" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Αποτελέσματα αναζήτηση για λογαριασμό %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "Ο λογαριασμός %s δεν βρέθηκε" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Αποτελέσματα αναζήτησης για ετικέτα %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "Δε βρέθηκε κάτι για ετικέτα %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Αποτελέσματα αναζήτησης για '%s' (μπορεί να υπάρχουν περισσότερα)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Αποτελέσματα αναζήτησης για '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "Δεν υπάρχουν άλλα αποτελέσματα για '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "Δε βρέθηκε κάτι για '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Προβάλλεται η ροή του διακομιστή" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Προβάλετε η ροή της λίστας '%s'" @@ -696,7 +696,7 @@ msgstr "Αποτελέσματα αναζήτησης για ετικέτα #%s" msgid "Recent posts by users in this instance" msgstr "Πρόσφατες αναρτήσεις από χρήστες σε αυτό τον ιστότοπο" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Αποκλεισμένες ετικέτες..." @@ -712,31 +712,31 @@ msgid "" "..." msgstr "" -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "" @@ -747,11 +747,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -759,3 +759,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/en.po b/po/en.po index 51c8266..1cb7778 100644 --- a/po/en.po +++ b/po/en.po @@ -135,7 +135,7 @@ msgstr "" msgid "verified link" msgstr "" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "" @@ -151,7 +151,7 @@ msgstr "" msgid "Operations..." msgstr "" -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "" @@ -159,7 +159,7 @@ msgstr "" msgid "(by URL or user@host)" msgstr "" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "" @@ -167,512 +167,512 @@ msgstr "" msgid "(by URL)" msgstr "" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "" -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "" -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "" -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "" -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "" -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "" -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "" -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr "" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "" -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "" -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "" -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "" -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "" -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "" -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "" @@ -686,7 +686,7 @@ msgstr "" msgid "Recent posts by users in this instance" msgstr "" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "" @@ -702,31 +702,31 @@ msgid "" "..." msgstr "" -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "" @@ -737,11 +737,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -749,3 +749,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/es.po b/po/es.po index ffeac99..875ead5 100644 --- a/po/es.po +++ b/po/es.po @@ -137,7 +137,7 @@ msgstr "Buscar contenido" msgid "verified link" msgstr "link verificado" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Ubicación: " @@ -153,7 +153,7 @@ msgstr "¿En qué estás pensando?" msgid "Operations..." msgstr "Operaciones..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Seguir" @@ -161,7 +161,7 @@ msgstr "Seguir" msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Impulsar" @@ -169,514 +169,514 @@ msgstr "Impulsar" msgid "(by URL)" msgstr "(por URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Me gusta" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Su nombre" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Bio:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "No me gusta" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Desanclar" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Anclar" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Marcador" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Eliminar" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Ocultar" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Editar..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Responder..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "te sigue" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Anclado" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Encuesta" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Votado" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Evento" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "impulsado" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Votar" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Cerrado" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Cierra en" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Video" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Audio" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Adjunto" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Alt..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Hora: " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "provisto por " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Descartar" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Historia" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Más..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Límite" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Aprobar" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Descartar" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Mención" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Contexto" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Nuevo" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Ya visto" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Ninguno" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,7 +690,7 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." @@ -709,31 +709,31 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "Anclados" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "Marcados" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "Borradores" @@ -741,11 +741,11 @@ msgstr "Borradores" msgid "Scheduled post..." msgstr "Envío programado..." -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "Envíos programados" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "envíos programados" @@ -753,3 +753,7 @@ msgstr "envíos programados" #, c-format msgid "Post date and time (timezone: %s):" msgstr "Fecha y hora de publicación (zona horaria: %s):" + +#: html.c:1538 +msgid "Time zone:" +msgstr "Zona horaria:" diff --git a/po/es_AR.po b/po/es_AR.po index ec7a85d..06e970f 100644 --- a/po/es_AR.po +++ b/po/es_AR.po @@ -137,7 +137,7 @@ msgstr "Buscar contenido" msgid "verified link" msgstr "link verificado" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Ubicación: " @@ -153,7 +153,7 @@ msgstr "¿En qué estás pensando?" msgid "Operations..." msgstr "Operaciones..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Seguir" @@ -161,7 +161,7 @@ msgstr "Seguir" msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Impulsar" @@ -169,514 +169,514 @@ msgstr "Impulsar" msgid "(by URL)" msgstr "(por URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Me gusta" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Su nombre" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Bio:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "No me gusta" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Desanclar" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Anclar" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Marcador" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Eliminar" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Ocultar" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Editar..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Responder..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "te sigue" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Anclado" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Encuesta" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Votado" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Evento" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "impulsado" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Votar" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Cerrado" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Cierra en" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Video" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Audio" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Adjunto" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Alt..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Hora: " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "provisto por " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Descartar" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Historia" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Más..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Límite" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Aprobar" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Descartar" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Mención" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Contexto" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Nuevo" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Ya visto" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Ninguno" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,7 +690,7 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." @@ -709,31 +709,31 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "Anclados" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "Marcados" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "Borradores" @@ -741,11 +741,11 @@ msgstr "Borradores" msgid "Scheduled post..." msgstr "Envío programado..." -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "Envíos programados" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "envíos programados" @@ -753,3 +753,7 @@ msgstr "envíos programados" #, c-format msgid "Post date and time (timezone: %s):" msgstr "Fecha y hora de publicación (zona horaria: %s):" + +#: html.c:1538 +msgid "Time zone:" +msgstr "Zona horaria:" diff --git a/po/es_UY.po b/po/es_UY.po index 9aa66f5..a24d834 100644 --- a/po/es_UY.po +++ b/po/es_UY.po @@ -137,7 +137,7 @@ msgstr "Buscar contenido" msgid "verified link" msgstr "link verificado" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Ubicación: " @@ -153,7 +153,7 @@ msgstr "¿En qué estás pensando?" msgid "Operations..." msgstr "Operaciones..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Seguir" @@ -161,7 +161,7 @@ msgstr "Seguir" msgid "(by URL or user@host)" msgstr "(por URL o usuario@host)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Impulsar" @@ -169,514 +169,514 @@ msgstr "Impulsar" msgid "(by URL)" msgstr "(por URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Me gusta" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Configuración de usuario..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Nombre para mostrar:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Su nombre" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Eliminar avatar" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Imagen de cabecera (banner): " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Eliminar imagen de cabecera" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Bio:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Escriba algo sobre usted aquí..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Siempre mostrar contenido sensible" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Cuenta de email para las notificaciones:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificaciones en Telegram (llave del bot e id del chat):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificaciones en ntfy (servidor ntfy y token):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Plazo máximo de conservación de publicaciones en días (0: usar configuración " "del servidor):" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensajes directos de personas a las que no sigue" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Esta cuenta es un bot" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Impulsar automáticamente todas las menciones a esta cuenta" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "Esta cuenta es privada (las publicaciones no se muestran en la web)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Contraer hilo de publicaciones por defecto" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Las solicitudes de seguimiento deben ser aprobadas" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Mostrar cantidad de seguidores y seguidos" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Ubicación actual:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadata del perfil (pares llave=valor en cada línea):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Idioma de la interfaz Web:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Nueva contraseña:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Repetir nueva contraseña:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Actualizar información de usuario" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Etiquetas en seguimiento..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Una etiqueta por línea" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Actualizar etiquetas" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Decir que te gusta esta publicación" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "No me gusta" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Nah, no me gusta tanto" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Desanclar" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Desanclar esta publicación de su línea de tiempo" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Anclar" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Anclar esta publicación al inicio de su línea de tiempo" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Anunciar esta publicación a sus seguidores" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Eliminar impulso" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Me arrepiento de haber impulsado esto" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Eliminar marcador" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Eliminar marcador de esta publicación" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Marcador" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Agregar esta publicación a mis marcadores" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Dejar de seguir" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Dejar de seguir la actividad de este usuario" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Seguir la actividad de este usuario" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Dejar de seguir este Grupo" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Dejar de seguir este grupo o canal" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Seguir Grupo" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Seguir grupo o canal" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "SILENCIAR" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Bloquear toda la actividad de este usuario para siempre" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Eliminar" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Eliminar esta publicación" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Ocultar" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Ocultar esta publicación y sus respuestas" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Editar..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Responder..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Truncado (demasiado profundo)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "te sigue" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Anclado" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Marcado" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Encuesta" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Votado" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Evento" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "impulsado" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "en respuesta a" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENIDO SENSIBLE]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Votar" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Cerrado" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Cierra en" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Video" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Audio" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Adjunto" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Alt..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Canal o comunidad de origen" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Hora: " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Más antiguo..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "acerca de este sitio" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "provisto por " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Descartar" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Línea de tiempo de la lista '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Publicaciones ancladas" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Publicaciones marcadas" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Borradores de publicaciones" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "No quedan publicaciones sin ver" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Volver al inicio" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Historia" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Más..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Sin límite" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Permitir anuncios (impulsos) de este usuario" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Límite" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Bloquear anuncios (impulsos) de este usuario" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Eliminar este usuario" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Aprobar" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Aprobar solicitud de seguimiento" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Descartar" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Descartar solicitud de seguimiento" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Dejar de SILENCIAR" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Dejar de bloquear actividad de este usuario" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Bloquear toda actividad de este usuario" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Mensaje Directo..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Confirmaciones de seguimiento pendientes" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Personas que sigues" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Personas que te siguen" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Limpiar todo" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Mención" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Encuesta finalizada" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Solicitud de Seguimiento" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Contexto" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Nuevo" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Ya visto" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Ninguno" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Buscar resultados para la cuenta %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "No se encontró la cuenta %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Buscar resultados para la etiqueta %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "No se encontró nada con la etiqueta %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados de búsqueda para '%s' (puede haber más)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Resultados de búsqueda para '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "No hay más coincidencias para '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "No se encontró nada para '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Mostrando línea de tiempo de la instancia" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostrando línea de tiempo de la lista '%s'" @@ -690,7 +690,7 @@ msgstr "Resultado de búsqueda para la etiqueta #%s" msgid "Recent posts by users in this instance" msgstr "Publicaciones recientes de los usuarios de esta instancia" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Etiquetas bloqueadas..." @@ -709,31 +709,31 @@ msgstr "" "Opción 2...\n" "Opción 3...\n" -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "Clave del API del Bot" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "Identificador de chat" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (example: https://ntfy.sh/YourTopic)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "Token ntft - si es necesario" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "Anclados" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "Marcados" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "Borradores" @@ -741,11 +741,11 @@ msgstr "Borradores" msgid "Scheduled post..." msgstr "Envío programado..." -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "Envíos programados" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "envíos programados" @@ -753,3 +753,7 @@ msgstr "envíos programados" #, c-format msgid "Post date and time (timezone: %s):" msgstr "Fecha y hora de publicación (zona horaria: %s):" + +#: html.c:1538 +msgid "Time zone:" +msgstr "Zona horaria:" diff --git a/po/fi.po b/po/fi.po index 48caf27..7ee4557 100644 --- a/po/fi.po +++ b/po/fi.po @@ -137,7 +137,7 @@ msgstr "Sisälöhaku" msgid "verified link" msgstr "varmistettu linkki" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Sijainti: " @@ -153,7 +153,7 @@ msgstr "Mitä on mielessäsi?" msgid "Operations..." msgstr "Toiminnot..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Seuraa" @@ -161,7 +161,7 @@ msgstr "Seuraa" msgid "(by URL or user@host)" msgstr "(osoite tai käyttäjä@palvelin)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Tehosta" @@ -169,512 +169,512 @@ msgstr "Tehosta" msgid "(by URL)" msgstr "(osoite)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Tykkää" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Käyttäjäasetukset..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Näytetty nimi:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Nimesi" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Poista nykyinen avatar" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Otsikkokuva: " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Poista nykyinen otsikkokuva" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Kuvaus:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Kirjoita itsestäsi tähän..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Näytä arkaluontoinen sisältö aina" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Sähköposti ilmoituksille:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram-ilmoitukset (botin avain ja chat id):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "nfty-ilmoitukset (ntfy-palvelin ja token):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "Säilytä julkaisut korkeintaan (päivää, 0: palvelimen asetukset)" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Poista yksityisviestit ihmisiltä, joita et seuraa" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Tämä tili on botti" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Tehosta tilin maininnat automaattisesti" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "Tili on yksityinen (julkaisuja ei näytetä sivustolla)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Avaa säikeet automaattisesti" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Vaadi hyväksyntä seurantapyynnöille" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Julkaise seuraamistilastot" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Nykyinen sijainti:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Profiilin metadata (avain=arvo, riveittäin):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Käyttöliitymän kieli:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Uusi salasana:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Toista salasana:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Päivitä käyttäjätiedot" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Seuratut aihetunnisteet..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Aihetunnisteet, riveittäin" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Päivitä aihetunnisteet" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Tykkää tästä julkaisusta" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "Poista tykkäys" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Ei ole omaan makuuni" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Poista kiinnitys" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Poista julkaisun kiinnitys aikajanalle" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Kiinnitä" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Kiinnitä julkaisu aikajanasi alkuun" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Ilmoita julkaisusta seuraajillesi" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Poista tehostus" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Kadun tehostaneeni tätä" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Poista kirjanmerkki" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Poista julkaisu kirjanmerkeistäsi" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Lisää kirjanmerkki" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Lisää julkaisu kirjanmerkkeihisi" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Älä seuraa" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Lakkaa seuraamasta käyttäjän toimintaa" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Seuraa käyttäjän toimintaa" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Älä seuraa ryhmää" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Lopeta ryhnän tai kanavan seuraaminen" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Seuraa ryhmää" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Seuraa tätä ryhmää tai kanavaa" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "VAIMENNA" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Estä kaikki toiminta tältä käyttäjältä" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Poista" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Poista julkaisu" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Piilota" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Piilota julkaisu ja vastaukset" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Muokkaa..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Vastaa..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Katkaistu (liian syvä)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "seuraa sinua" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Kiinnitetty" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Kirjanmerkitty" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Kysely" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Äänestetty" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Tapahtuma" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "tehostettu" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "vastauksena" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [ARKALUONTOISTA SISÄLTÖÄ]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Äänestä" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Sulkeutunut" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Sulkeutuu" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Video" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Ääni" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Liite" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Kuvaus..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Lähdekanava tai -yhteisö" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Aika: " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Vanhemmat..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "tietoa sivustosta" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "moottorina " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Kuittaa" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Listan ”%s” aikajana" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Kiinnitetyt julkaisut" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Kirjanmerkit" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Vedokset" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "Ei lukemattonia julkaisuja" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Takaisin" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Historia" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Enemmän..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Poista rajoitus" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Salli tehostukset käyttäjältä" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Rajoita" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Kiellö tehostukset käyttäjältä" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Poista käyttäjä" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Hyväksy" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Hyväksy seurantapyyntö" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Hylkää" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Hylkää seurantapyyntö" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Poista vaimennus" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Salli toiminta käyttäjältä" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Estä kaikki toiminnat käyttäjältä" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Yksityisviesti..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Hyväksymistä odottavat seurantapyynnöt" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Seuraamasi ihniset" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Sinua seuraavat" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Tyhjennä" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Mainitse" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Päättynyt kysely" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Seurantapyyntö" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Konteksti" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Uusi" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Nähty" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Ei ilmoituksia" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Hakutulokset tilille %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "Tiliä %s ei löytynyt" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Hakutulokset aihetunnisteelle %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "Aihetunnisteella %s ei löytynyt tuloksia" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Tulokset haulle ”%s” (mahdollisesti enemmän tuloksia)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Tulokset haulle ”%s”" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "Ei enempää tuloksia haulle ”%s”" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "Haulla ”%s” ei löytynyt tuloksia" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Palvelimen aikajana" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Listan ”%s” aikajana" @@ -688,7 +688,7 @@ msgstr "Hakutulokset aihetunnisteelle #%s" msgid "Recent posts by users in this instance" msgstr "Viimeaikaisia julkaisuja tällä palvelimella" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Estetyt aihetunnisteet..." @@ -708,31 +708,31 @@ msgstr "" "Vaihtoehto 3...\n" "..." -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "botin API-avain" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "chat id" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy-palvelin - täydellinen osoite (esim: https://ntfy.sh/YourTopic)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "ntfy token - tarvittaessa" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "kiinnitetyt" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "kirjanmerkit" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "vedokset" @@ -743,11 +743,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -755,3 +755,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/fr.po b/po/fr.po index 4da6b6b..e049ab7 100644 --- a/po/fr.po +++ b/po/fr.po @@ -137,7 +137,7 @@ msgstr "Recherche de contenu" msgid "verified link" msgstr "Lien vérifié" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Emplacement : " @@ -153,7 +153,7 @@ msgstr "Qu'avez-vous en tête ?" msgid "Operations..." msgstr "Opérations…" -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Suivre" @@ -161,7 +161,7 @@ msgstr "Suivre" msgid "(by URL or user@host)" msgstr "(par URL ou utilisateur@hôte)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "repartager" @@ -169,513 +169,513 @@ msgstr "repartager" msgid "(by URL)" msgstr "(par URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Aime" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Réglages utilisateur…" -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Nom affiché :" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Votre nom" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar : " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Supprimer l'avatar actuel" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Image d'entête (bannière) : " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Supprimer l'image d'entête actuelle" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "CV :" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Décrivez-vous ici…" -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Toujours afficher le contenu sensible" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Adresse email pour les notifications :" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Notifications Telegram (clé de bot et ID de discussion) :" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "notifications ntfy (serveur et jeton ntfy) :" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "" "Nombre de jours maximum de rétention des messages (0 : réglages du serveur) :" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Rejeter les messages directs des personnes que vous ne suivez pas" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Ce compte est un bot" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Auto-repartage de toutes les mentions de ce compte" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "Ce compte est privé (les messages ne sont pas affiché sur le web)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "replier les fils de discussion principaux par défaut" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Les demande de suivi doivent être approuvées" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Publier les suiveurs et les statistiques de suivis" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Localisation actuelle :" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Métadonnées du profile (paires clé=valeur à chaque ligne) :" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Langue de l'interface web :" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Nouveau mot de passe :" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Répétez le nouveau mot de passe :" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Mettre à jour les infos utilisateur" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "hashtags suivis…" -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Un hashtag par ligne" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Mettre à jour les hashtags" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Dire que vous aimez ce message" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "N'aime plus" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Nan, j'aime pas tant que ça" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Dés-épingler" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Dés-épingler ce message de votre chronologie" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Épingler" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Épingler ce message en haut de votre chronologie" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Annoncer ce message à vos suiveurs" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Dé-repartager" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Je regrette d'avoir repartagé ceci" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Retirer le signet" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Supprime ce message de vos signets" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Signet" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Ajouter ce message à vos signets" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Ne plus suivre" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Arrêter de suivre les activités de cet utilisateur" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Commencer à suivre les activité de cet utilisateur" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Ne plus suivre le Groupe" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Arrêter de suivre ce groupe ou canal" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Suivre le Groupe" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Commencer à suivre ce groupe ou canal" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "TAIRE" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Bloquer toute activité de cet utilisateur à jamais" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Supprimer" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Supprimer ce message" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Cacher" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Cacher ce message et ses réponses" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Éditer…" -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Répondre…" -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Tronqué (trop profond)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "vous suit" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Épinglé" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Ajouté au signets" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Sondage" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Voté" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Événement" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "Repartagé" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "En réponse à" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENU SENSIBLE]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Vote" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Terminé" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Termine dans" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Vidéo" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Audio" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Attachement" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Alt…" -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Canal ou communauté source" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Date : " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Plus anciens…" -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "à propos de ce site" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "fonctionne grace à " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Rejeter" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Chronologie pour la liste '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Messages épinglés" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Messages en signets" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Brouillons de messages" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "Pas d'avantage de message non vus" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Retourner en haut" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Historique" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Plus…" -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Illimité" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Permettre les annonces (repartages) par cet utilisateur" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Limite" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Bloquer les annonces (repartages) par cet utilisateur" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Supprimer cet utilisateur" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Approuver" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Approuver cette demande de suivit" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Rejeter" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Rejeter la demande suivante" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Ne plus taire" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Arrêter de bloquer les activités de cet utilisateur" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Bloque toutes les activités de cet utilisateur" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Message direct…" -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Confirmation de suivit en attente" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Personnes que vous suivez" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Personnes qui vous suivent" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Tout nettoyer" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Mention" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Sondage terminé" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Requête de suivit" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Contexte" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Nouveau" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Déjà vu" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Aucun" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Résultats de recher pour le compte %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "Compte %s non trouvé" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Résultats de recherche pour le tag %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "Rien n'a été trouvé pour le tag %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Résultats de recherche pour '%s' (il pourrait y en avoir d'avantage)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Résultats de recherche pour '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "Pas d'avantage de résultats pour '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "Rien n'a été trouvé pour '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Montrer la chronologie de l'instance" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Montrer le chronologie pour la liste '%s'" @@ -689,7 +689,7 @@ msgstr "Résultats de recherche pour le tag #%s" msgid "Recent posts by users in this instance" msgstr "Messages récents des utilisateurs de cette instance" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Hashtags bloqués…" @@ -705,31 +705,31 @@ msgid "" "..." msgstr "" -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "" @@ -740,11 +740,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -752,3 +752,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/it.po b/po/it.po index fa62bf2..595bf38 100644 --- a/po/it.po +++ b/po/it.po @@ -137,7 +137,7 @@ msgstr "Ricerca contenuto" msgid "verified link" msgstr "link verificato" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Posizione: " @@ -153,7 +153,7 @@ msgstr "Cosa stai pensando?" msgid "Operations..." msgstr "Operazioni..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Segui" @@ -161,7 +161,7 @@ msgstr "Segui" msgid "(by URL or user@host)" msgstr "(per URL o user@host)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Annuncia" @@ -169,512 +169,512 @@ msgstr "Annuncia" msgid "(by URL)" msgstr "(per URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Mi piace" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Impostazioni..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Nome visualizzato:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Il tuo nome" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Elimina l'avatar" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Immagine intestazione (banner): " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Elimina l'immagine d'intestazione" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Bio:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Descriviti qui..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Mostra sempre i contenuti sensibili" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Indirizzo email per le notifiche:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Notifiche Telegram (bot key e chat id):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "Notifiche ntfy (server ntfy e token)" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "Giorni di mantenimento dei post (0: impostazione server)" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Elimina i messaggi diretti delle persone non seguite" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Questo account è un bot" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Annuncio automatico delle citazioni a quest'account" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "Quest'account è privato (post invisibili nel web)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Tieni chiuse le discussioni" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Devi approvare le richieste dei seguenti" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Rendi pubblici seguenti e seguiti" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Posizione corrente:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Dati del profilo (coppie di chiave=valore per ogni linea):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Lingua dell'interfaccia web:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Nuova password:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Reinserisci la password:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Aggiorna dati utente" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Hashtag seguiti..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Un hashtag per linea" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Aggiorna hashtags" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Questo post ti piace" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "Non mi piace" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "No, non mi piace molto" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Sgancia" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Sgancia questo post dalla timeline" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Aggancia" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Aggancia questo post in cima alla timeline" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Annuncia questo post ai tuoi seguenti" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Rimuovi annuncio" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Mi pento di aver annunciato questo" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Elimina segnalibro" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Elimina questo post dai segnalibri" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Segnalibro" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Aggiungi questo post ai segnalibri" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Smetti di seguire" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Smetti di seguire l'utente" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Sequi l'utente" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Smetti di seguire il gruppo" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Smetti di seguire il gruppo o canale" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Segui grupp" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Segui il gruppo o canale" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "Silenzia" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Blocca l'utente" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Elimina" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Elimina questo post" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Nascondi" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Nascondi questo post completamente" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Modifica..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Rispondi..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Troncato (troppo lungo)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "Ti segue" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Aggancia" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Segnalibro" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Sondaggio" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Votato" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Evento" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "Annunciato" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "in risposta a" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [CONTENUTO SENSIBILE]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Vota" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Chiuso" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Chiude in" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Video" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Audio" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Allegato" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Testo alternativo..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Provenienza del canale o comunità" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Orario:" -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Vecchi..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "descrizione" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "gestito da " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Congeda" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Timeline per la lista '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Post appuntati" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Post segnati" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Bozze" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "Nessun ulteriore post" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Torna in cima" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Storico" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Ancora..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Senza limite" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Permetti annunci dall'utente" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Limite" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Blocca annunci dall'utente" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Elimina l'utente" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Approva" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Approva richiesta di seguirti" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Scarta" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Scarta richiesta di seguirti" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Rimuovi silenziamento" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Sblocca l'utente" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Blocca l'utente completamente" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Messaggio diretto..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Conferme di seguirti in attesa" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Persone che segui" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Persone che ti seguono" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Pulisci" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Citazione" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Sondaggio concluso" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Richiesta di seguire" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Contesto" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Nuovo" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Già visto" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Niente" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Risultati per account %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "Account %s non trovato" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Risultati per tag %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "Nessun risultato per il tag %S" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Risultati per tag %s (ancora...)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Risultati per %s" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "Nessuna corrispondenza per '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "Non trovato per '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Mostra la timeline dell'istanza" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Mostra la timeline della lista '%s'" @@ -688,7 +688,7 @@ msgstr "Risultati per tag #%s" msgid "Recent posts by users in this instance" msgstr "Post recenti in questa istanza" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Hashtag bloccati..." @@ -708,31 +708,31 @@ msgstr "" "Scelta 3...\n" "..." -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "Chiave per le API del bot" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "Id della chat" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Server ntfy - URL completo (esempio: https://ntfy.sh/YourTopic)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "Token ntfy - se richiesto" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "appuntati" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "segnalibri" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "bozze" @@ -743,11 +743,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -755,3 +755,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index fae746c..ca48946 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -138,7 +138,7 @@ msgstr "Buscar conteúdo" msgid "verified link" msgstr "ligação verificada" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Localização: " @@ -154,7 +154,7 @@ msgstr "O que tem em mente?" msgid "Operations..." msgstr "Operações..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Seguir" @@ -162,7 +162,7 @@ msgstr "Seguir" msgid "(by URL or user@host)" msgstr "(por URL ou conta@servidor)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Impulsionar" @@ -170,512 +170,512 @@ msgstr "Impulsionar" msgid "(by URL)" msgstr "(por URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Curtir" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Definições de uso..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Nome a ser exibido:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Seu nome" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Avatar: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Remover avatar atual" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Imagem de cabeçalho (capa): " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Remover imagem de cabeçalho atual" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "Biografia:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Escreva aqui sobre você..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Sempre exibir conteúdo sensível" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Endereço de e-mail para notificações:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Notificações Telegram (chave do robô e ID da conversa):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "Notificações ntfy (servidor ntfy e token):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "Máximo de dias a preservar publicações (0: definições do servidor):" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Descartar mensagens diretas de pessoas que você não segue" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Esta conta é robô" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Impulsionar automaticamente todas as menções a esta conta" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "Esta conta é privada (as publicações não são exibidas na Web)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Recolher por padrão as sequências de publicações" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Solicitações de seguimento precisam ser aprovadas" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Publicar métricas de seguidores e seguidos" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Localização atual:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Metadados do perfil (par de chave=valor em cada linha):" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Idioma da interface Web:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Nova senha:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Repita a nova senha:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Atualizar informações da conta" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Hashtags seguidas..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "Uma hashtag por linha" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Atualizar hashtags" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Declarar que gosta desta publicação" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "Descurtir" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Não gosto tanto assim disso" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Desafixar" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Desafixar esta publicação da sua linha do tempo" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Afixar" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Afixar esta publicação no topo de sua linha do tempo" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Anunciar esta publicação para seus seguidores" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Desimpulsionar" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Arrependo-me de ter impulsionado isso" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Desmarcar" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Remover esta publicação dos seus marcadores" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Marcar" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Adicionar esta publicação aos seus marcadores" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Deixar de seguir" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Parar de acompanhar a atividade deste perfil" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Começar a acompanhar a atividade deste perfil" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Deixar de seguir grupo" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Parar de acompanhar este grupo ou canal" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Seguir grupo" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Começar a acompanhar este grupo ou canal" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "MUDO" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Bloquear toda atividade deste perfil para sempre" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Eliminar" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Apagar esta publicação" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Ocultar" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Ocultar esta publicação e suas respostas" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Editar..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Responder..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Truncada (muito extensa)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "segue você" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Afixada" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Marcada" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Enquete" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Votou" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Evento" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "impulsionou" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "em resposta a" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [CONTEÚDO SENSÍVEL]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Votar" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Encerrada" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Encerra em" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Vídeo" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Áudio" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Anexo" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Texto alternativo..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Canal ou comunidade de origem" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Horário: " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Anteriores..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "sobre este sítio eletrônico" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "movido por " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Dispensar" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Linha do tempo da lista '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Publicações afixadas" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Publicações marcadas" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Publicações em rascunho" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "Sem mais publicações não vistas" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Voltar ao topo" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "Histórico" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Mais..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Retirar restrição" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Permitir anúncios (impulsionamentos) deste perfil" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Restringir" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Bloquear anúncios (impulsionamentos) deste perfil" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Apagar este perfil" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Aprovar" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Aprovar esta solicitação de seguimento" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Descartar" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Descartar esta solicitação de seguimento" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Desbloquear" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Parar de bloquear as atividades deste perfil" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Bloquear toda atividade deste perfil" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Mensagem direta..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Confirmações de seguimento pendentes" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Pessoas que você segue" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Pessoas que seguem você" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Limpar tudo" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Menção" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Enquete encerrada" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Solicitação de seguimento" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Contexto" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Novas" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Já vistas" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Nenhuma" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Resultados da busca pela conta %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "Conta %s não encontrada" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Resultados da busca pela hashtag %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "Nada consta com hashtag %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Resultados da busca por '%s' (pode haver mais)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Resultados da busca por '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "Sem mais combinações para '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "Nada consta com '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Exibindo linha do tempo da instância" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Exibindo linha do tempo da lista '%s'" @@ -689,7 +689,7 @@ msgstr "Resultados da busca pela hashtag #%s" msgid "Recent posts by users in this instance" msgstr "Publicações recentes de perfis desta instância" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Hashtags bloqueadas..." @@ -709,31 +709,31 @@ msgstr "" "Opção 3...\n" "..." -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "Chave de API do robô" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "ID da conversa" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "Servidor ntfy - URL completa (exemplo: https://ntfy.sh/SeuTópico)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "Token ntfy - se necessário" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "afixadas" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "marcadores" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "rascunhos" @@ -744,11 +744,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -756,3 +756,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/ru.po b/po/ru.po index 884babc..df53ebe 100644 --- a/po/ru.po +++ b/po/ru.po @@ -144,7 +144,7 @@ msgstr "Поиск содержимого" msgid "verified link" msgstr "проверенная ссылка" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "Местоположение: " @@ -160,7 +160,7 @@ msgstr "Что у вас на уме?" msgid "Operations..." msgstr "Действия..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "Подписаться" @@ -168,7 +168,7 @@ msgstr "Подписаться" msgid "(by URL or user@host)" msgstr "(по URL или user@host)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "Продвинуть" @@ -176,512 +176,512 @@ msgstr "Продвинуть" msgid "(by URL)" msgstr "(по URL)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "Лайкнуть" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "Пользовательские настройки..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "Отображаемое имя:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "Ваше имя" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "Аватар: " -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "Удалить текущий аватар" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "Заглавное изображение (баннер): " -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "Удалить текущее заглавное изображение" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "О себе:" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "Напишите что-нибудь про себя..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "Всегда показывать чувствительное содержимое" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "Почтовый адрес для уведомлений:" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Уведомления в Telegram (ключ бота и id чата):" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "уведомления в ntfy (сервер и токен ntfy):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "Максимальное время хранения сообщений (0: настройки сервера):" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "Отклонять личные сообщения от незнакомцев" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "Это аккаунт бота" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "Автоматически продвигать все упоминания этого аккаунта" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "Это закрытый аккаунт (сообщения не показываются в сети)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "Сворачивать обсуждения по умолчанию" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "Запросы подписки требуют подтверждения" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "Публиковать статистику подписок и подписчиков" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "Текущее метоположение:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "Метаданные профиля (пары ключ=значение, по одной на строку)" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "Язык интерфейса:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "Новый пароль:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "Повторите новый пароль:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "Обновить данные пользователя" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "Отслеживаемые хештеги..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "По одному на строку" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "Обновить хештеги" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "Отметить сообщение понравившимся" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "Больше не нравится" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "Не так уж и понравилось" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "Открепить" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "Открепить это сообщение из своей ленты" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "Закрепить" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "Закрепить это сообщение в своей ленте" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "Поделиться этим сообщением со своими подписчиками" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "Отменить продвижение" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "Не буду продвигать, пожалуй" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "Удалить из закладок" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "Удалить это сообщение из закладок" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "Добавить в закладки" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "Добавить сообщение в закладки" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "Отписаться" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "Отменить подписку на этого пользователя" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "Начать следовать за этим пользователем" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "Отписаться от группы" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "Отписаться от группы или канала" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "Подписаться на группу" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "Подписаться на группу или канал" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "Заглушить" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "Заглушить всю активность от этого пользователя, навсегда" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "Удалить" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "Удалить это сообщение" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "Скрыть" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "Скрыть это сообщение вместе с обсуждением" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "Редактировать..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "Ответить..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "Обрезано (слишком много)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "подписан на вас" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "Закреплено" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "Добавлено в закладки" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "Опрос" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "Проголосовано" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "Событие" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "поделился" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "в ответ на" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr " [ЧУВСТВИТЕЛЬНО СОДЕРЖИМОЕ]" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "Голос" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "Закрыт" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "Закрывается через" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "Видео" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "Аудио" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "Вложение" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "Описание..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "Исходный канал или сообщество" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "Время: " -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "Ранее..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "про этот сайт" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "на основе " -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "Скрыть" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "Ленты для списка '%s'" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "Закреплённые сообщения" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "Сообщения в закладках" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "Черновики сообщений" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "Всё просмотрено" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "Вернуться наверх" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "История" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "Ещё..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "Без ограничения" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "Разрешить продвижения от этого пользователя" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "Лимит" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "Запретить продвижения от этого пользователя" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "Удалить пользователя" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "Подтвердить" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "Подтвердить запрос на подписку" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "Отклонить" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "Отклонить этот запрос на подписку" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "Отменить глушение" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "Прекратить глушение действий этого пользователя" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "Заглушить все действия этого пользователя" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "Личное сообщение..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "Ожидающие запросы на подписку" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "Ваши подписки" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "Ваши подписчики" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "Очистить всё" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "Упоминание" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "Завершённый опрос" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "Запрос на подписку" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "Контекст" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "Новое" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "Уже просмотрено" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "Нет" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "Результаты поиска для учётной записи %s" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "Учётная запись %s не найдена" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "Результаты поиска тега %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "Ничего не найдено по тегу %s" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "Результаты поиска для '%s' (возможно, есть ещё)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "Результаты поиска для '%s'" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "Больше нет совпадений для '%s'" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "Ничего не найдено для '%s'" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "Показываем ленту инстанции" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "Показываем ленты инстанции для списка '%s'" @@ -695,7 +695,7 @@ msgstr "Результаты поиска для тега #%s" msgid "Recent posts by users in this instance" msgstr "Последние сообщения на этой инстанции" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "Заблокированные теги..." @@ -715,31 +715,31 @@ msgstr "" "Вариант 3...\n" "..." -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "Ключ API для бота" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "Id чата" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "полный URL сервера ntfy (например https://ntfy.sh/YourTopic)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "токен ntfy - если нужен" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "закреплено" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "закладки" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "черновики" @@ -750,11 +750,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -762,3 +762,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" diff --git a/po/zh.po b/po/zh.po index 15e3a5c..8c2b0bb 100644 --- a/po/zh.po +++ b/po/zh.po @@ -136,7 +136,7 @@ msgstr "内容搜索" msgid "verified link" msgstr "已验证的链接" -#: html.c:1125 html.c:2514 html.c:2527 html.c:2536 +#: html.c:1125 html.c:2540 html.c:2553 html.c:2562 msgid "Location: " msgstr "位置:" @@ -152,7 +152,7 @@ msgstr "你在想什么?" msgid "Operations..." msgstr "操作..." -#: html.c:1187 html.c:1762 html.c:3167 html.c:4554 +#: html.c:1187 html.c:1788 html.c:3193 html.c:4578 msgid "Follow" msgstr "关注" @@ -160,7 +160,7 @@ msgstr "关注" msgid "(by URL or user@host)" msgstr "(通过网址或者 用户名@服务器)" -#: html.c:1204 html.c:1738 html.c:4503 +#: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" msgstr "转发" @@ -168,512 +168,512 @@ msgstr "转发" msgid "(by URL)" msgstr "(通过网址)" -#: html.c:1221 html.c:1717 html.c:4494 +#: html.c:1221 html.c:1743 html.c:4518 msgid "Like" msgstr "点赞" -#: html.c:1326 +#: html.c:1347 msgid "User Settings..." msgstr "用户设置..." -#: html.c:1335 +#: html.c:1356 msgid "Display name:" msgstr "显示名字:" -#: html.c:1341 +#: html.c:1362 msgid "Your name" msgstr "你的名字" -#: html.c:1343 +#: html.c:1364 msgid "Avatar: " msgstr "头像:" -#: html.c:1351 +#: html.c:1372 msgid "Delete current avatar" msgstr "删除当前头像" -#: html.c:1353 +#: html.c:1374 msgid "Header image (banner): " msgstr "页眉图像(横幅)" -#: html.c:1361 +#: html.c:1382 msgid "Delete current header image" msgstr "删除当前的页眉图像" -#: html.c:1363 +#: html.c:1384 msgid "Bio:" msgstr "简介" -#: html.c:1369 +#: html.c:1390 msgid "Write about yourself here..." msgstr "在这里介绍你自己..." -#: html.c:1378 +#: html.c:1399 msgid "Always show sensitive content" msgstr "总是显示敏感内容" -#: html.c:1380 +#: html.c:1401 msgid "Email address for notifications:" msgstr "用于通知的电子邮箱地址" -#: html.c:1388 +#: html.c:1409 msgid "Telegram notifications (bot key and chat id):" msgstr "Telegram通知(bot密钥和聊天ID)" -#: html.c:1402 +#: html.c:1423 msgid "ntfy notifications (ntfy server and token):" msgstr "ntfy通知(ntfy服务器和令牌):" -#: html.c:1416 +#: html.c:1437 msgid "Maximum days to keep posts (0: server settings):" msgstr "保存贴子的最大天数(0:服务器设置)" -#: html.c:1430 +#: html.c:1451 msgid "Drop direct messages from people you don't follow" msgstr "丢弃你没有关注的人的私信" -#: html.c:1439 +#: html.c:1460 msgid "This account is a bot" msgstr "此帐号是机器人" -#: html.c:1448 +#: html.c:1469 msgid "Auto-boost all mentions to this account" msgstr "自动转发所有对此帐号的提及" -#: html.c:1457 +#: html.c:1478 msgid "This account is private (posts are not shown through the web)" msgstr "这是一个私密帐号(贴子不会在网页中显示)" -#: html.c:1467 +#: html.c:1488 msgid "Collapse top threads by default" msgstr "默认收起主题帖" -#: html.c:1476 +#: html.c:1497 msgid "Follow requests must be approved" msgstr "关注请求必须经过审批" -#: html.c:1485 +#: html.c:1506 msgid "Publish follower and following metrics" msgstr "展示关注者和正在关注的数量" -#: html.c:1487 +#: html.c:1508 msgid "Current location:" msgstr "当前位置:" -#: html.c:1501 +#: html.c:1522 msgid "Profile metadata (key=value pairs in each line):" msgstr "个人资料元数据(每行一条 键=值)" -#: html.c:1512 +#: html.c:1533 msgid "Web interface language:" msgstr "网页界面语言:" -#: html.c:1517 +#: html.c:1543 msgid "New password:" msgstr "新密码:" -#: html.c:1524 +#: html.c:1550 msgid "Repeat new password:" msgstr "重复新密码:" -#: html.c:1534 +#: html.c:1560 msgid "Update user info" msgstr "更新用户信息:" -#: html.c:1545 +#: html.c:1571 msgid "Followed hashtags..." msgstr "已关注的话题标签..." -#: html.c:1547 html.c:1579 +#: html.c:1573 html.c:1605 msgid "One hashtag per line" msgstr "每行一个话题标签" -#: html.c:1568 html.c:1600 +#: html.c:1594 html.c:1626 msgid "Update hashtags" msgstr "更新话题标签" -#: html.c:1717 +#: html.c:1743 msgid "Say you like this post" msgstr "说你喜欢这个贴子" -#: html.c:1722 html.c:4512 +#: html.c:1748 html.c:4536 msgid "Unlike" msgstr "不喜欢" -#: html.c:1722 +#: html.c:1748 msgid "Nah don't like it that much" msgstr "啊,不怎么喜欢这个" -#: html.c:1728 html.c:4649 +#: html.c:1754 html.c:4673 msgid "Unpin" msgstr "取消置顶" -#: html.c:1728 +#: html.c:1754 msgid "Unpin this post from your timeline" msgstr "从你的时间线上取消置顶这个贴子" -#: html.c:1731 html.c:4644 +#: html.c:1757 html.c:4668 msgid "Pin" msgstr "置顶" -#: html.c:1731 +#: html.c:1757 msgid "Pin this post to the top of your timeline" msgstr "把这条贴子置顶在你的时间线上" -#: html.c:1738 +#: html.c:1764 msgid "Announce this post to your followers" msgstr "向你的关注者宣布这条贴子" -#: html.c:1743 html.c:4520 +#: html.c:1769 html.c:4544 msgid "Unboost" msgstr "取消转发" -#: html.c:1743 +#: html.c:1769 msgid "I regret I boosted this" msgstr "我后悔转发这个了" -#: html.c:1749 html.c:4659 +#: html.c:1775 html.c:4683 msgid "Unbookmark" msgstr "取消收藏" -#: html.c:1749 +#: html.c:1775 msgid "Delete this post from your bookmarks" msgstr "从收藏夹中删除这个贴子" -#: html.c:1752 html.c:4654 +#: html.c:1778 html.c:4678 msgid "Bookmark" msgstr "收藏" -#: html.c:1752 +#: html.c:1778 msgid "Add this post to your bookmarks" msgstr "把这个贴子加入收藏夹" -#: html.c:1758 html.c:3153 html.c:3341 html.c:4567 +#: html.c:1784 html.c:3179 html.c:3367 html.c:4591 msgid "Unfollow" msgstr "取消关注" -#: html.c:1758 html.c:3154 +#: html.c:1784 html.c:3180 msgid "Stop following this user's activity" msgstr "停止关注此用户的动态" -#: html.c:1762 html.c:3168 +#: html.c:1788 html.c:3194 msgid "Start following this user's activity" msgstr "开始关注此用户的动态" -#: html.c:1768 html.c:4597 +#: html.c:1794 html.c:4621 msgid "Unfollow Group" msgstr "取消关注群组" -#: html.c:1769 +#: html.c:1795 msgid "Stop following this group or channel" msgstr "取消关注这个群组或频道" -#: html.c:1773 html.c:4584 +#: html.c:1799 html.c:4608 msgid "Follow Group" msgstr "关注群组" -#: html.c:1774 +#: html.c:1800 msgid "Start following this group or channel" msgstr "开始关注这个群组或频道" -#: html.c:1779 html.c:3190 html.c:4528 +#: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" msgstr "静音" -#: html.c:1780 +#: html.c:1806 msgid "Block any activity from this user forever" msgstr "永久屏蔽来自这个用户的任何动态" -#: html.c:1785 html.c:3172 html.c:4614 +#: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" msgstr "删除" -#: html.c:1785 +#: html.c:1811 msgid "Delete this post" msgstr "删除这条贴子" -#: html.c:1788 html.c:4536 +#: html.c:1814 html.c:4560 msgid "Hide" msgstr "隐藏" -#: html.c:1788 +#: html.c:1814 msgid "Hide this post and its children" msgstr "删除这条贴子及其回复" -#: html.c:1819 +#: html.c:1845 msgid "Edit..." msgstr "编辑..." -#: html.c:1839 +#: html.c:1865 msgid "Reply..." msgstr "回复..." -#: html.c:1890 +#: html.c:1916 msgid "Truncated (too deep)" msgstr "已被截断(太深了)" -#: html.c:1899 +#: html.c:1925 msgid "follows you" msgstr "关注了你" -#: html.c:1962 +#: html.c:1988 msgid "Pinned" msgstr "已置顶" -#: html.c:1970 +#: html.c:1996 msgid "Bookmarked" msgstr "已收藏" -#: html.c:1978 +#: html.c:2004 msgid "Poll" msgstr "投票" -#: html.c:1985 +#: html.c:2011 msgid "Voted" msgstr "已投票" -#: html.c:1994 +#: html.c:2020 msgid "Event" msgstr "事件" -#: html.c:2026 html.c:2055 +#: html.c:2052 html.c:2081 msgid "boosted" msgstr "已转发" -#: html.c:2071 +#: html.c:2097 msgid "in reply to" msgstr "回复给" -#: html.c:2122 +#: html.c:2148 msgid " [SENSITIVE CONTENT]" msgstr "【敏感内容】" -#: html.c:2299 +#: html.c:2325 msgid "Vote" msgstr "投票" -#: html.c:2309 +#: html.c:2335 msgid "Closed" msgstr "已关闭" -#: html.c:2334 +#: html.c:2360 msgid "Closes in" msgstr "距离关闭还有" -#: html.c:2415 +#: html.c:2441 msgid "Video" msgstr "视频" -#: html.c:2430 +#: html.c:2456 msgid "Audio" msgstr "音频" -#: html.c:2458 +#: html.c:2484 msgid "Attachment" msgstr "附件" -#: html.c:2472 +#: html.c:2498 msgid "Alt..." msgstr "描述..." -#: html.c:2485 +#: html.c:2511 msgid "Source channel or community" msgstr "来源频道或者社群" -#: html.c:2579 +#: html.c:2605 msgid "Time: " msgstr "时间:" -#: html.c:2660 +#: html.c:2686 msgid "Older..." msgstr "更早的..." -#: html.c:2762 +#: html.c:2788 msgid "about this site" msgstr "关于此站点" -#: html.c:2764 +#: html.c:2790 msgid "powered by " msgstr "驱动自" -#: html.c:2829 +#: html.c:2855 msgid "Dismiss" msgstr "忽略" -#: html.c:2846 +#: html.c:2872 #, c-format msgid "Timeline for list '%s'" msgstr "列表'%s'的时间线" -#: html.c:2865 html.c:3918 +#: html.c:2891 html.c:3944 msgid "Pinned posts" msgstr "置顶的贴子" -#: html.c:2877 html.c:3933 +#: html.c:2903 html.c:3959 msgid "Bookmarked posts" msgstr "收藏的贴子" -#: html.c:2889 html.c:3948 +#: html.c:2915 html.c:3974 msgid "Post drafts" msgstr "贴子草稿" -#: html.c:2960 +#: html.c:2986 msgid "No more unseen posts" msgstr "没有更多未读贴子了" -#: html.c:2964 html.c:3064 +#: html.c:2990 html.c:3090 msgid "Back to top" msgstr "返回顶部" -#: html.c:3017 +#: html.c:3043 msgid "History" msgstr "历史" -#: html.c:3069 html.c:3489 +#: html.c:3095 html.c:3515 msgid "More..." msgstr "更多..." -#: html.c:3158 html.c:4550 +#: html.c:3184 html.c:4574 msgid "Unlimit" msgstr "取消限制" -#: html.c:3159 +#: html.c:3185 msgid "Allow announces (boosts) from this user" msgstr "允许来自这个用户的通知(转发)" -#: html.c:3162 html.c:4546 +#: html.c:3188 html.c:4570 msgid "Limit" msgstr "限制" -#: html.c:3163 +#: html.c:3189 msgid "Block announces (boosts) from this user" msgstr "屏蔽来自这个用户的通知(转发)" -#: html.c:3172 +#: html.c:3198 msgid "Delete this user" msgstr "删除此用户" -#: html.c:3177 html.c:4664 +#: html.c:3203 html.c:4688 msgid "Approve" msgstr "允许" -#: html.c:3178 +#: html.c:3204 msgid "Approve this follow request" msgstr "允许这个关注请求" -#: html.c:3181 html.c:4688 +#: html.c:3207 html.c:4712 msgid "Discard" msgstr "丢弃" -#: html.c:3181 +#: html.c:3207 msgid "Discard this follow request" msgstr "丢弃这个关注请求" -#: html.c:3186 html.c:4532 +#: html.c:3212 html.c:4556 msgid "Unmute" msgstr "取消静音" -#: html.c:3187 +#: html.c:3213 msgid "Stop blocking activities from this user" msgstr "停止屏蔽来自此用户的动态" -#: html.c:3191 +#: html.c:3217 msgid "Block any activity from this user" msgstr "屏蔽来自此用户的任何动态" -#: html.c:3199 +#: html.c:3225 msgid "Direct Message..." msgstr "私信..." -#: html.c:3234 +#: html.c:3260 msgid "Pending follow confirmations" msgstr "待处理的关注确认" -#: html.c:3238 +#: html.c:3264 msgid "People you follow" msgstr "你关注的人" -#: html.c:3239 +#: html.c:3265 msgid "People that follow you" msgstr "关注你的人" -#: html.c:3278 +#: html.c:3304 msgid "Clear all" msgstr "清除全部" -#: html.c:3335 +#: html.c:3361 msgid "Mention" msgstr "提及" -#: html.c:3338 +#: html.c:3364 msgid "Finished poll" msgstr "结束投票" -#: html.c:3353 +#: html.c:3379 msgid "Follow Request" msgstr "关注请求" -#: html.c:3436 +#: html.c:3462 msgid "Context" msgstr "上下文" -#: html.c:3447 +#: html.c:3473 msgid "New" msgstr "新建" -#: html.c:3462 +#: html.c:3488 msgid "Already seen" msgstr "已经看过" -#: html.c:3477 +#: html.c:3503 msgid "None" msgstr "没有" -#: html.c:3743 +#: html.c:3769 #, c-format msgid "Search results for account %s" msgstr "账户 %s 的搜索结果" -#: html.c:3750 +#: html.c:3776 #, c-format msgid "Account %s not found" msgstr "没有找到账户 %s" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Search results for tag %s" msgstr "标签 %s 的搜索结果" -#: html.c:3781 +#: html.c:3807 #, c-format msgid "Nothing found for tag %s" msgstr "没有找到标签'%s'的结果" -#: html.c:3797 +#: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" msgstr "'%s'的搜索结果(可能还有更多)" -#: html.c:3800 +#: html.c:3826 #, c-format msgid "Search results for '%s'" msgstr "'%s'的搜索结果" -#: html.c:3803 +#: html.c:3829 #, c-format msgid "No more matches for '%s'" msgstr "没有更多匹配'%s'的结果了" -#: html.c:3805 +#: html.c:3831 #, c-format msgid "Nothing found for '%s'" msgstr "没有找到'%s'的结果" -#: html.c:3903 +#: html.c:3929 msgid "Showing instance timeline" msgstr "显示实例时间线" -#: html.c:3986 +#: html.c:4012 #, c-format msgid "Showing timeline for list '%s'" msgstr "显示列表'%s'的事件线" @@ -687,7 +687,7 @@ msgstr "标签 #%s 的搜索结果" msgid "Recent posts by users in this instance" msgstr "此实例上的用户最近的贴子" -#: html.c:1577 +#: html.c:1603 msgid "Blocked hashtags..." msgstr "已屏蔽的话题标签" @@ -707,31 +707,31 @@ msgstr "" "选项3...\n" "..." -#: html.c:1394 +#: html.c:1415 msgid "Bot API key" msgstr "Bot API 密钥" -#: html.c:1400 +#: html.c:1421 msgid "Chat id" msgstr "聊天ID" -#: html.c:1408 +#: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" msgstr "ntfy服务器 - 完整网址(例如:https://ntft.sh/YourTopic)" -#: html.c:1414 +#: html.c:1435 msgid "ntfy token - if needed" msgstr "ntft令牌 - 如果需要的话" -#: html.c:2866 +#: html.c:2892 msgid "pinned" msgstr "置顶" -#: html.c:2878 +#: html.c:2904 msgid "bookmarks" msgstr "收藏夹" -#: html.c:2890 +#: html.c:2916 msgid "drafts" msgstr "草稿" @@ -742,11 +742,11 @@ msgstr "" msgid "Post date and time:" msgstr "" -#: html.c:2901 html.c:3963 +#: html.c:2927 html.c:3989 msgid "Scheduled posts" msgstr "" -#: html.c:2902 +#: html.c:2928 msgid "scheduled posts" msgstr "" @@ -754,3 +754,7 @@ msgstr "" #, c-format msgid "Post date and time (timezone: %s):" msgstr "" + +#: html.c:1538 +msgid "Time zone:" +msgstr "" -- cgit v1.2.3 From 13c9306abe425eeea710bc11e08da8d3fddbeaf2 Mon Sep 17 00:00:00 2001 From: green Date: Sun, 13 Apr 2025 15:04:19 +0200 Subject: emoji variant selector in react notifications --- html.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html.c b/html.c index be89453..1cd9dd9 100644 --- a/html.c +++ b/html.c @@ -3375,7 +3375,7 @@ xs_str *html_notifications(snac *user, int skip, int show) if (xs_type(content) == XSTYPE_STRING) { xs *emoji = replace_shortnames(xs_dup(content), xs_dict_get_path(noti, "msg.tag"), 1, proxy); - wrk = xs_fmt("%s (%s)", type, emoji); + wrk = xs_fmt("%s (%s️)", type, emoji); label = wrk; } } -- cgit v1.2.3 From 0c03e6c9d9a6b65fede94cc9eab34a05746f8d5e Mon Sep 17 00:00:00 2001 From: green Date: Sun, 13 Apr 2025 15:44:24 +0200 Subject: cleaned up old changes and outdated comments --- activitypub.c | 5 ++--- format.c | 1 - html.c | 4 ---- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/activitypub.c b/activitypub.c index ee7c9b1..2403a62 100644 --- a/activitypub.c +++ b/activitypub.c @@ -34,7 +34,7 @@ const char *susie_cool = "+ZcgN7wF7ZVihXkfSlWIVzIA6dbQzaygllpNuTX" "ZmmFNlvxADX1+o0cUPMbAAAAAElFTkSuQmCC"; -const char *susie_muertos = +const char *susie_muertos = "iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQAAAAC" "CEkxzAAAAV0lEQVQoz4XQsQ0AMQxCUW/A/lv+DT" "ic6zGRolekIMyMELNp8PiCEw6Q4w4NoAt53IH5m" @@ -1328,8 +1328,7 @@ xs_dict *msg_actor(snac *snac) msg = xs_dict_set(msg, "published", xs_dict_get(snac->config, "published")); // this exists so we get the emoji tags from our name too. - // and then we just throw away the result, because it's kinda useless to have markdown in the dysplay name. - // right now, only emojies in bio actually work for local users + // and then we just throw away the result, because it's kinda useless to have markdown in the display name. xs *name_dummy = not_really_markdown(xs_dict_get(snac->config, "name"), NULL, &tags); xs *f_bio_2 = not_really_markdown(xs_dict_get(snac->config, "bio"), NULL, &tags); diff --git a/format.c b/format.c index 1bb2cf1..3089955 100644 --- a/format.c +++ b/format.c @@ -10,7 +10,6 @@ #include "xs_match.h" #include "snac.h" -#include /* emoticons, people laughing and such */ const char *smileys[] = { diff --git a/html.c b/html.c index 1cd9dd9..b9f2419 100644 --- a/html.c +++ b/html.c @@ -3136,10 +3136,6 @@ xs_html *html_people_list(snac *user, xs_list *list, const char *header, const c if (!xs_is_null(c)) { xs *sc = sanitize(c); - - // replace shortnames in bio - // bug: this somehow fires twice on one specific user - // @ielenia@ck.catwithaclari.net sc = replace_shortnames(sc, xs_dict_get(actor, "tag"), 2, proxy); xs_html *snac_content = xs_html_tag("div", -- cgit v1.2.3 From 7349c626cfd66d0b7f4bff1c4bb698adbf291ecb Mon Sep 17 00:00:00 2001 From: default Date: Sun, 13 Apr 2025 16:17:19 +0200 Subject: Updated timezones. --- xs_time.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xs_time.h b/xs_time.h index 6872c51..4347e09 100644 --- a/xs_time.h +++ b/xs_time.h @@ -138,7 +138,9 @@ struct { { "China Time Zone", 8 }, { "IST (Israel Standard Time)", 2 }, { "IDT (Israel Daylight Standard Time)", 3 }, - { "WITA (Western Indonesia Time)", 8 }, + { "WIB (Western Indonesia Time)", 7 }, + { "WITA (Central Indonesia Time)", 8 }, + { "WIT (Eastern Indonesia Time)", 9 }, { "AWST (Australian Western Time)", 8 }, { "ACST (Australian Eastern Time)", 9.5 }, { "ACDT (Australian Daylight Eastern Time)", 10.5 }, -- cgit v1.2.3 From 1a1035b5867774e2a9b230380bf68b7333a4da40 Mon Sep 17 00:00:00 2001 From: default Date: Mon, 14 Apr 2025 06:18:46 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 70106fb..0cbb69b 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,8 +1,8 @@ # Release Notes -## UNRELEASED +## UNRELEASED "Time Is On My Side" -Added support for scheduled posts. +Added support for scheduled posts (for this to work correctly, users will have to set their time zone, see below). The user can now select a working time zone. This will be used to correctly parse the local date and time of a scheduled post. @@ -10,7 +10,11 @@ Fixed incorrect poll vote format, which was causing problems in platforms like G Mastodon API: added support for `/api/v1/instance/peers`. -Some Czech and Russian translation fixes. +Added a new `snac-admin` helper script (contributed by shtrophic). + +In the web UI, posts are separated by the `` tag; it's invisible in graphical browsers, but it separates post clearly in text-based browsers. + +Some Spanish, Czech and Russian translation updates and fixes. ## 2.74 "The Days of Nicole, the Fediverse Chick" -- cgit v1.2.3 From c7763dc7e9b6d78d525d3d7158811d7d08e45316 Mon Sep 17 00:00:00 2001 From: Santtu Lakkala Date: Mon, 14 Apr 2025 12:58:55 +0300 Subject: Add missing Finnish translations --- po/fi.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/fi.po b/po/fi.po index 7ee4557..7a1d7f7 100644 --- a/po/fi.po +++ b/po/fi.po @@ -738,24 +738,24 @@ msgstr "vedokset" #: html.c:464 msgid "Scheduled post..." -msgstr "" +msgstr "Ajastettu julkaisu..." msgid "Post date and time:" -msgstr "" +msgstr "Julkaisuajankohta:" #: html.c:2927 html.c:3989 msgid "Scheduled posts" -msgstr "" +msgstr "Ajastetut julkaisut" #: html.c:2928 msgid "scheduled posts" -msgstr "" +msgstr "ajastetut julkaisut" #: html.c:458 #, c-format msgid "Post date and time (timezone: %s):" -msgstr "" +msgstr "Julkaisuajankohta (aikavyöhyke: %s):" #: html.c:1538 msgid "Time zone:" -msgstr "" +msgstr "Aikavyöhyke: " -- cgit v1.2.3 From c1cf7b28cf85e698993468e5b8dcb18d9f5d7a74 Mon Sep 17 00:00:00 2001 From: default Date: Mon, 14 Apr 2025 14:42:32 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 0cbb69b..e74e9ac 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -14,7 +14,7 @@ Added a new `snac-admin` helper script (contributed by shtrophic). In the web UI, posts are separated by the `` tag; it's invisible in graphical browsers, but it separates post clearly in text-based browsers. -Some Spanish, Czech and Russian translation updates and fixes. +Some Finnish, Spanish, Czech and Russian translation updates and fixes. ## 2.74 "The Days of Nicole, the Fediverse Chick" -- cgit v1.2.3 From aa2539104d1a2c0c0bc985d269255fe7c3e00715 Mon Sep 17 00:00:00 2001 From: default Date: Wed, 16 Apr 2025 05:05:51 +0200 Subject: Also added UTC+... timezones. --- xs_time.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/xs_time.h b/xs_time.h index 4347e09..a5792bc 100644 --- a/xs_time.h +++ b/xs_time.h @@ -148,6 +148,33 @@ struct { { "AEDT (Australian Daylight Eastern Time)", 11 }, { "NZST (New Zealand Time)", 12 }, { "NZDT (New Zealand Daylight Time)", 13 }, + { "UTC", 0 }, + { "UTC+1", 1 }, + { "UTC+2", 2 }, + { "UTC+3", 3 }, + { "UTC+4", 4 }, + { "UTC+5", 5 }, + { "UTC+6", 6 }, + { "UTC+7", 7 }, + { "UTC+8", 8 }, + { "UTC+9", 9 }, + { "UTC+10", 10 }, + { "UTC+11", 11 }, + { "UTC+12", 12 }, + { "UTC-1", -1 }, + { "UTC-2", -2 }, + { "UTC-3", -3 }, + { "UTC-4", -4 }, + { "UTC-5", -5 }, + { "UTC-6", -6 }, + { "UTC-7", -7 }, + { "UTC-8", -8 }, + { "UTC-9", -9 }, + { "UTC-10", -10 }, + { "UTC-11", -11 }, + { "UTC-12", -12 }, + { "UTC-13", -13 }, + { "UTC-14", -14 }, { "GMT", 0 }, { "GMT+1", -1 }, { "GMT+2", -2 }, -- cgit v1.2.3 From 81d0704b4fe71d7af4b58e6dc82850996849b6b8 Mon Sep 17 00:00:00 2001 From: default Date: Wed, 16 Apr 2025 09:38:18 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index e74e9ac..13cdfb0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,6 @@ # Release Notes -## UNRELEASED "Time Is On My Side" +## 2.75 "Time Is On My Side" Added support for scheduled posts (for this to work correctly, users will have to set their time zone, see below). -- cgit v1.2.3 From 8fbc8a3e14da59b9aa0640e5cc70d7556cf27c8d Mon Sep 17 00:00:00 2001 From: default Date: Wed, 16 Apr 2025 09:40:13 +0200 Subject: Version 2.75 RELEASED. --- snac.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snac.h b/snac.h index 5a19467..9626c8b 100644 --- a/snac.h +++ b/snac.h @@ -1,7 +1,7 @@ /* snac - A simple, minimalistic ActivityPub instance */ /* copyright (c) 2022 - 2025 grunfink et al. / MIT license */ -#define VERSION "2.75-dev" +#define VERSION "2.75" #define USER_AGENT "snac/" VERSION -- cgit v1.2.3 From d11d03787fa5f45926859e780d9c8c0bf56bf5ee Mon Sep 17 00:00:00 2001 From: default Date: Fri, 18 Apr 2025 08:44:47 +0200 Subject: New command-line options 'lists' and 'list_members'. --- data.c | 13 +++++++++++++ main.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/data.c b/data.c index 440e9df..53f38e9 100644 --- a/data.c +++ b/data.c @@ -2340,6 +2340,19 @@ xs_val *list_maint(snac *user, const char *list, int op) } break; + + case 4: /** find list id by name **/ + if (xs_is_string(list)) { + xs *lol = list_maint(user, NULL, 0); + const xs_list *li; + + xs_list_foreach(lol, li) { + if (strcmp(list, xs_list_get(li, 1)) == 0) { + l = xs_dup(xs_list_get(li, 0)); + break; + } + } + } } return l; diff --git a/main.c b/main.c index 3cd4524..7632032 100644 --- a/main.c +++ b/main.c @@ -59,6 +59,8 @@ int usage(void) printf("import_csv {basedir} {uid} Imports data from CSV files\n"); printf("import_list {basedir} {uid} {file} Imports a Mastodon CSV list file\n"); printf("import_block_list {basedir} {uid} {file} Imports a Mastodon CSV block list file\n"); + printf("lists {basedir} {uid} Returns the names of the lists created by the user\n"); + printf("list_members {basedir} {uid} {name} Returns the list of accounts inside a list\n"); return 1; } @@ -282,9 +284,41 @@ int main(int argc, char *argv[]) return migrate_account(&snac); } + if (strcmp(cmd, "lists") == 0) { /** **/ + xs *lol = list_maint(&snac, NULL, 0); + const xs_list *l; + + xs_list_foreach(lol, l) { + printf("%s (%s)\n", xs_list_get(l, 1), xs_list_get(l, 0)); + } + + return 0; + } + if ((url = GET_ARGV()) == NULL) return usage(); + if (strcmp(cmd, "list_members") == 0) { /** **/ + xs *lid = list_maint(&snac, url, 4); + + if (lid != NULL) { + xs *lcont = list_content(&snac, lid, NULL, 0); + const char *md5; + + xs_list_foreach(lcont, md5) { + xs *actor = NULL; + + if (valid_status(object_get_by_md5(md5, &actor))) { + printf("%s (%s)\n", xs_dict_get(actor, "id"), xs_dict_get_def(actor, "preferredUsername", "")); + } + } + } + else + fprintf(stderr, "Cannot find list named '%s'\n", url); + + return 0; + } + if (strcmp(cmd, "alias") == 0) { /** **/ xs *actor = NULL; xs *uid = NULL; -- cgit v1.2.3 From 99230ba053238d7ad80b7793c7a8a8752e7b7049 Mon Sep 17 00:00:00 2001 From: default Date: Fri, 18 Apr 2025 08:55:32 +0200 Subject: New command-line options 'create_list' and 'delete_list'. --- main.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 7632032..54da610 100644 --- a/main.c +++ b/main.c @@ -314,7 +314,33 @@ int main(int argc, char *argv[]) } } else - fprintf(stderr, "Cannot find list named '%s'\n", url); + fprintf(stderr, "Cannot find a list named '%s'\n", url); + + return 0; + } + + if (strcmp(cmd, "create_list") == 0) { /** **/ + xs *lid = list_maint(&snac, url, 4); + + if (lid == NULL) { + xs *n_lid = list_maint(&snac, url, 1); + printf("New list named '%s' created (%s)\n", url, n_lid); + } + else + fprintf(stderr, "A list named '%s' already exist\n", url); + + return 0; + } + + if (strcmp(cmd, "delete_list") == 0) { /** **/ + xs *lid = list_maint(&snac, url, 4); + + if (lid != NULL) { + list_maint(&snac, lid, 2); + printf("List '%s' (%s) deleted\n", url, lid); + } + else + fprintf(stderr, "Cannot find a list named '%s'\n", url); return 0; } -- cgit v1.2.3 From 1ebf2a2d874f3ee589785e8175abdcb33a963d72 Mon Sep 17 00:00:00 2001 From: default Date: Fri, 18 Apr 2025 09:08:48 +0200 Subject: New command-line option 'add_to_list'. --- data.c | 4 ++-- main.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/data.c b/data.c index 53f38e9..88f1921 100644 --- a/data.c +++ b/data.c @@ -2404,7 +2404,7 @@ xs_val *list_content(snac *user, const char *list, const char *actor_md5, int op break; case 1: /** append actor to list **/ - if (actor_md5 != NULL) { + if (xs_is_string(actor_md5) && xs_is_hex(actor_md5)) { if (!index_in_md5(fn, actor_md5)) index_add_md5(fn, actor_md5); } @@ -2412,7 +2412,7 @@ xs_val *list_content(snac *user, const char *list, const char *actor_md5, int op break; case 2: /** delete actor from list **/ - if (actor_md5 != NULL) + if (xs_is_string(actor_md5) && xs_is_hex(actor_md5)) index_del_md5(fn, actor_md5); break; diff --git a/main.c b/main.c index 54da610..8b8b209 100644 --- a/main.c +++ b/main.c @@ -61,6 +61,9 @@ int usage(void) printf("import_block_list {basedir} {uid} {file} Imports a Mastodon CSV block list file\n"); printf("lists {basedir} {uid} Returns the names of the lists created by the user\n"); printf("list_members {basedir} {uid} {name} Returns the list of accounts inside a list\n"); + printf("create_list {basedir} {uid} {name} Creates a new list\n"); + printf("delete_list {basedir} {uid} {name} Deletes an existing list\n"); + printf("add_to_list {basedir} {uid} {name} {acct} Adds an account (@user@host or actor url) to a list\n"); return 1; } @@ -345,6 +348,33 @@ int main(int argc, char *argv[]) return 0; } + if (strcmp(cmd, "add_to_list") == 0) { /** **/ + const char *account = GET_ARGV(); + + if (account != NULL) { + xs *lid = list_maint(&snac, url, 4); + + if (lid != NULL) { + xs *actor = NULL; + xs *uid = NULL; + + if (valid_status(webfinger_request(account, &actor, &uid))) { + xs *md5 = xs_md5_hex(actor, strlen(actor)); + + list_content(&snac, lid, md5, 1); + printf("Actor %s (%s) added to list %s (%s)\n", actor, uid, url, lid); + } + else + fprintf(stderr, "Cannot resolve account '%s'\n", account); + } + else + fprintf(stderr, "Cannot find a list named '%s'\n", url); + + } + + return 0; + } + if (strcmp(cmd, "alias") == 0) { /** **/ xs *actor = NULL; xs *uid = NULL; -- cgit v1.2.3 From 9b863605f9b0e888986b01f07c634637b5186bb6 Mon Sep 17 00:00:00 2001 From: default Date: Fri, 18 Apr 2025 09:12:44 +0200 Subject: Renamed command-line option to 'list_add' and added new 'list_del'. --- main.c | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 8b8b209..de5921b 100644 --- a/main.c +++ b/main.c @@ -63,7 +63,8 @@ int usage(void) printf("list_members {basedir} {uid} {name} Returns the list of accounts inside a list\n"); printf("create_list {basedir} {uid} {name} Creates a new list\n"); printf("delete_list {basedir} {uid} {name} Deletes an existing list\n"); - printf("add_to_list {basedir} {uid} {name} {acct} Adds an account (@user@host or actor url) to a list\n"); + printf("list_add {basedir} {uid} {name} {acct} Adds an account (@user@host or actor url) to a list\n"); + printf("list_del {basedir} {uid} {name} {acct} Deletes an account (@user@host or actor url) from a list\n"); return 1; } @@ -348,7 +349,7 @@ int main(int argc, char *argv[]) return 0; } - if (strcmp(cmd, "add_to_list") == 0) { /** **/ + if (strcmp(cmd, "list_add") == 0) { /** **/ const char *account = GET_ARGV(); if (account != NULL) { @@ -362,7 +363,34 @@ int main(int argc, char *argv[]) xs *md5 = xs_md5_hex(actor, strlen(actor)); list_content(&snac, lid, md5, 1); - printf("Actor %s (%s) added to list %s (%s)\n", actor, uid, url, lid); + printf("Actor %s (%s) added to list '%s' (%s)\n", actor, uid, url, lid); + } + else + fprintf(stderr, "Cannot resolve account '%s'\n", account); + } + else + fprintf(stderr, "Cannot find a list named '%s'\n", url); + + } + + return 0; + } + + if (strcmp(cmd, "list_del") == 0) { /** **/ + const char *account = GET_ARGV(); + + if (account != NULL) { + xs *lid = list_maint(&snac, url, 4); + + if (lid != NULL) { + xs *actor = NULL; + xs *uid = NULL; + + if (valid_status(webfinger_request(account, &actor, &uid))) { + xs *md5 = xs_md5_hex(actor, strlen(actor)); + + list_content(&snac, lid, md5, 2); + printf("Actor %s (%s) deleted from list '%s' (%s)\n", actor, uid, url, lid); } else fprintf(stderr, "Cannot resolve account '%s'\n", account); -- cgit v1.2.3 From 0263c87035712ff6bd7ef57354b6425803eefc1d Mon Sep 17 00:00:00 2001 From: default Date: Fri, 18 Apr 2025 09:20:15 +0200 Subject: Simplified 'list_del' to use the account the user said. --- main.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/main.c b/main.c index de5921b..6cd1bc9 100644 --- a/main.c +++ b/main.c @@ -383,17 +383,10 @@ int main(int argc, char *argv[]) xs *lid = list_maint(&snac, url, 4); if (lid != NULL) { - xs *actor = NULL; - xs *uid = NULL; - - if (valid_status(webfinger_request(account, &actor, &uid))) { - xs *md5 = xs_md5_hex(actor, strlen(actor)); + xs *md5 = xs_md5_hex(account, strlen(account)); - list_content(&snac, lid, md5, 2); - printf("Actor %s (%s) deleted from list '%s' (%s)\n", actor, uid, url, lid); - } - else - fprintf(stderr, "Cannot resolve account '%s'\n", account); + list_content(&snac, lid, md5, 2); + printf("Actor %s deleted from list '%s' (%s)\n", account, url, lid); } else fprintf(stderr, "Cannot find a list named '%s'\n", url); -- cgit v1.2.3 From f8961e9590002263472c2e60132888e7ac23b3fa Mon Sep 17 00:00:00 2001 From: default Date: Fri, 18 Apr 2025 09:21:55 +0200 Subject: Minor tweak to usage help. --- main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.c b/main.c index 6cd1bc9..a6fb6fd 100644 --- a/main.c +++ b/main.c @@ -64,7 +64,7 @@ int usage(void) printf("create_list {basedir} {uid} {name} Creates a new list\n"); printf("delete_list {basedir} {uid} {name} Deletes an existing list\n"); printf("list_add {basedir} {uid} {name} {acct} Adds an account (@user@host or actor url) to a list\n"); - printf("list_del {basedir} {uid} {name} {acct} Deletes an account (@user@host or actor url) from a list\n"); + printf("list_del {basedir} {uid} {name} {actor} Deletes an actor URL from a list\n"); return 1; } -- cgit v1.2.3 From cafc4e10decc035e77cbf74ac42eef6a0bc6dd36 Mon Sep 17 00:00:00 2001 From: default Date: Fri, 18 Apr 2025 09:28:14 +0200 Subject: Updated documentation. --- doc/snac.1 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/snac.1 b/doc/snac.1 index 2f1ccfe..92e30b7 100644 --- a/doc/snac.1 +++ b/doc/snac.1 @@ -350,6 +350,18 @@ Imports a Mastodon list of accounts to be blocked in CSV format. The file must be stored inside the .Pa import/ subdirectory of a user's directory inside the server base directory. +.It Cm lists Ar basedir Ar uid +Prints the name of the user created lists. +.It Cm list_members Ar basedir Ar uid Ar name +Prints the list of actors in the named list. +.It Cm create_list Ar basedir Ar uid Ar name +Creates a new list. +.It Cm delete_list Ar basedir Ar uid Ar name +Deletes an existing list. +.It Cm list_add Ar basedir Ar uid Ar name Ar account +Adds an account (by its @name@host handle or actor URL) to a list. +.It Cm list_del Ar basedir Ar uid Ar name Ar actor_url +Deletes an actor (by its actor URL) from a list. .El .Ss Migrating an account to/from Mastodon See -- cgit v1.2.3 From 2153c374337791ec81f8966334c32b64b3375a9e Mon Sep 17 00:00:00 2001 From: default Date: Fri, 18 Apr 2025 10:22:51 +0200 Subject: Updated TODO. --- TODO.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO.md b/TODO.md index db135d5..7ebad40 100644 --- a/TODO.md +++ b/TODO.md @@ -369,3 +369,5 @@ Each notification should show a link to the full thread, to see it in context (2 Add a list of hashtags to drop (2025-03-23T15:45:30+0100). The actual storage system wastes too much disk space (lots of small files that really consume 4k of storage). Consider alternatives (2025-03-23T15:46:02+0100). + +Add command-line tools for creating and manipulating lists (2025-04-18T10:04:41+0200). -- cgit v1.2.3 From df11310df1660adf2526f85fcd1b443b56faf050 Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 18 Apr 2025 13:33:51 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 13cdfb0..c7795f9 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,9 @@ # Release Notes +## UNRELEASED + +Added new command-line options for list maintenance. + ## 2.75 "Time Is On My Side" Added support for scheduled posts (for this to work correctly, users will have to set their time zone, see below). -- cgit v1.2.3 From daa4b2e0aff5fbc03e22b5e193c50784ef9799a6 Mon Sep 17 00:00:00 2001 From: pmjv Date: Fri, 18 Apr 2025 13:16:09 +0000 Subject: translated scheduled posts stuff --- po/cs.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/cs.po b/po/cs.po index 759342b..627c079 100644 --- a/po/cs.po +++ b/po/cs.po @@ -738,24 +738,24 @@ msgstr "rozepsané" #: html.c:464 msgid "Scheduled post..." -msgstr "" +msgstr "Naplánovat příspěvek..." msgid "Post date and time:" -msgstr "" +msgstr "Den a čas:" #: html.c:2927 html.c:3989 msgid "Scheduled posts" -msgstr "" +msgstr "Naplánované příspěvky" #: html.c:2928 msgid "scheduled posts" -msgstr "" +msgstr "naplánované příspěvky" #: html.c:458 #, c-format msgid "Post date and time (timezone: %s):" -msgstr "" +msgstr "Den a čas (časové pásmo: %s)" #: html.c:1538 msgid "Time zone:" -msgstr "" +msgstr "Časové pásmo:" -- cgit v1.2.3 From 98a5b7d6626063cbd6d9a1afec196aa8d1684cec Mon Sep 17 00:00:00 2001 From: Daltux Date: Fri, 18 Apr 2025 20:31:10 -0300 Subject: Translate pt_BR.po new strings --- po/pt_BR.po | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/po/pt_BR.po b/po/pt_BR.po index ca48946..555d82d 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -4,10 +4,13 @@ msgid "" msgstr "" "Project-Id-Version: snac\n" -"Last-Translator: Daltux \n" +"PO-Revision-Date: 2025-04-18\n" +"Last-Translator: Daltux <@daltux@snac.daltux.net>\n" "Language: pt_BR\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"X-Generator: Poedit 3.5\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.6\n" #: html.c:384 msgid "Sensitive content: " @@ -739,24 +742,24 @@ msgstr "rascunhos" #: html.c:464 msgid "Scheduled post..." -msgstr "" +msgstr "Publicação agendada..." msgid "Post date and time:" -msgstr "" +msgstr "Data e horário da publicação:" #: html.c:2927 html.c:3989 msgid "Scheduled posts" -msgstr "" +msgstr "Publicações agendadas" #: html.c:2928 msgid "scheduled posts" -msgstr "" +msgstr "publicações agendadas" #: html.c:458 #, c-format msgid "Post date and time (timezone: %s):" -msgstr "" +msgstr "Data e hora da publicação (fuso horário: %s):" #: html.c:1538 msgid "Time zone:" -msgstr "" +msgstr "Fuso horário:" -- cgit v1.2.3 From b134b393ec812ef986af40b776fde120baf9ef90 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 19 Apr 2025 08:49:01 +0200 Subject: Fixed newline inconsistency in es .po files. --- po/es.po | 1 + po/es_AR.po | 1 + po/es_UY.po | 1 + 3 files changed, 3 insertions(+) diff --git a/po/es.po b/po/es.po index 875ead5..41870c0 100644 --- a/po/es.po +++ b/po/es.po @@ -708,6 +708,7 @@ msgstr "" "Opción 1...\n" "Opción 2...\n" "Opción 3...\n" +"..." #: html.c:1415 msgid "Bot API key" diff --git a/po/es_AR.po b/po/es_AR.po index 06e970f..33d1955 100644 --- a/po/es_AR.po +++ b/po/es_AR.po @@ -708,6 +708,7 @@ msgstr "" "Opción 1...\n" "Opción 2...\n" "Opción 3...\n" +"..." #: html.c:1415 msgid "Bot API key" diff --git a/po/es_UY.po b/po/es_UY.po index a24d834..4fc28a8 100644 --- a/po/es_UY.po +++ b/po/es_UY.po @@ -708,6 +708,7 @@ msgstr "" "Opción 1...\n" "Opción 2...\n" "Opción 3...\n" +"..." #: html.c:1415 msgid "Bot API key" -- cgit v1.2.3 From b2b979e881b771648379c602df79984dc54a0fb5 Mon Sep 17 00:00:00 2001 From: LeJun Date: Sat, 19 Apr 2025 09:10:39 +0200 Subject: Update old strings, and added translations for new ones --- po/fr.po | 96 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/po/fr.po b/po/fr.po index e049ab7..c9727f8 100644 --- a/po/fr.po +++ b/po/fr.po @@ -42,11 +42,11 @@ msgstr "Fichier :" #: html.c:521 msgid "Clear this field to delete the attachment" -msgstr "Nettoyer ce champs pour supprimer l'attachement" +msgstr "Nettoyer ce champs pour supprimer la pièce jointe" #: html.c:530 html.c:555 msgid "Attachment description" -msgstr "Description de l'attachement" +msgstr "Description de la pièce jointe" #: html.c:566 msgid "Poll..." @@ -86,16 +86,16 @@ msgstr "Description du site" #: html.c:719 msgid "Admin email" -msgstr "email de l'admin" +msgstr "Email de l'admin" #: html.c:732 msgid "Admin account" -msgstr "compte de l'admin" +msgstr "Compte de l'admin" #: html.c:800 html.c:1136 #, c-format msgid "%d following, %d followers" -msgstr "Suit %d, %d suiveurs" +msgstr "%d abonnements, %d personnes abonnées" #: html.c:890 msgid "RSS" @@ -127,7 +127,7 @@ msgid "" "#tag" msgstr "" "Chercher les messages par URL ou contenu (expression régulière), comptes " -"@utilisateur@hôte, ou #tag" +"@pseudo@hôte, ou #tag" #: html.c:946 msgid "Content search" @@ -159,11 +159,11 @@ msgstr "Suivre" #: html.c:1189 msgid "(by URL or user@host)" -msgstr "(par URL ou utilisateur@hôte)" +msgstr "(par URL ou pseudo@hôte)" #: html.c:1204 html.c:1764 html.c:4527 msgid "Boost" -msgstr "repartager" +msgstr "Repartager" #: html.c:1206 html.c:1223 msgid "(by URL)" @@ -175,7 +175,7 @@ msgstr "Aime" #: html.c:1347 msgid "User Settings..." -msgstr "Réglages utilisateur…" +msgstr "Paramètre du compte…" #: html.c:1356 msgid "Display name:" @@ -203,7 +203,7 @@ msgstr "Supprimer l'image d'entête actuelle" #: html.c:1384 msgid "Bio:" -msgstr "CV :" +msgstr "Description :" #: html.c:1390 msgid "Write about yourself here..." @@ -256,7 +256,7 @@ msgstr "Les demande de suivi doivent être approuvées" #: html.c:1506 msgid "Publish follower and following metrics" -msgstr "Publier les suiveurs et les statistiques de suivis" +msgstr "Publier les statistiques d'abonnements" #: html.c:1508 msgid "Current location:" @@ -280,7 +280,7 @@ msgstr "Répétez le nouveau mot de passe :" #: html.c:1560 msgid "Update user info" -msgstr "Mettre à jour les infos utilisateur" +msgstr "Mettre à jour les infos du compte" #: html.c:1571 msgid "Followed hashtags..." @@ -324,7 +324,7 @@ msgstr "Épingler ce message en haut de votre chronologie" #: html.c:1764 msgid "Announce this post to your followers" -msgstr "Annoncer ce message à vos suiveurs" +msgstr "Annoncer ce message aux personnes abonnées" #: html.c:1769 html.c:4544 msgid "Unboost" @@ -356,11 +356,11 @@ msgstr "Ne plus suivre" #: html.c:1784 html.c:3180 msgid "Stop following this user's activity" -msgstr "Arrêter de suivre les activités de cet utilisateur" +msgstr "Arrêter de suivre les activités de cette personne" #: html.c:1788 html.c:3194 msgid "Start following this user's activity" -msgstr "Commencer à suivre les activité de cet utilisateur" +msgstr "Commencer à suivre les activité de cette personne" #: html.c:1794 html.c:4621 msgid "Unfollow Group" @@ -380,11 +380,11 @@ msgstr "Commencer à suivre ce groupe ou canal" #: html.c:1805 html.c:3216 html.c:4552 msgid "MUTE" -msgstr "TAIRE" +msgstr "SOURDINE" #: html.c:1806 msgid "Block any activity from this user forever" -msgstr "Bloquer toute activité de cet utilisateur à jamais" +msgstr "Bloquer toute activité de cette personne à jamais" #: html.c:1811 html.c:3198 html.c:4638 msgid "Delete" @@ -404,7 +404,7 @@ msgstr "Cacher ce message et ses réponses" #: html.c:1845 msgid "Edit..." -msgstr "Éditer…" +msgstr "Modifier…" #: html.c:1865 msgid "Reply..." @@ -424,7 +424,7 @@ msgstr "Épinglé" #: html.c:1996 msgid "Bookmarked" -msgstr "Ajouté au signets" +msgstr "Ajouté aux signets" #: html.c:2004 msgid "Poll" @@ -472,7 +472,7 @@ msgstr "Audio" #: html.c:2484 msgid "Attachment" -msgstr "Attachement" +msgstr "Pièce jointe" #: html.c:2498 msgid "Alt..." @@ -541,7 +541,7 @@ msgstr "Illimité" #: html.c:3185 msgid "Allow announces (boosts) from this user" -msgstr "Permettre les annonces (repartages) par cet utilisateur" +msgstr "Permettre les annonces (repartages) par cette personne" #: html.c:3188 html.c:4570 msgid "Limit" @@ -549,11 +549,11 @@ msgstr "Limite" #: html.c:3189 msgid "Block announces (boosts) from this user" -msgstr "Bloquer les annonces (repartages) par cet utilisateur" +msgstr "Bloquer les annonces (repartages) par cette personne" #: html.c:3198 msgid "Delete this user" -msgstr "Supprimer cet utilisateur" +msgstr "Supprimer cette personne" #: html.c:3203 html.c:4688 msgid "Approve" @@ -561,7 +561,7 @@ msgstr "Approuver" #: html.c:3204 msgid "Approve this follow request" -msgstr "Approuver cette demande de suivit" +msgstr "Approuver cette demande de suivi" #: html.c:3207 html.c:4712 msgid "Discard" @@ -577,11 +577,11 @@ msgstr "Ne plus taire" #: html.c:3213 msgid "Stop blocking activities from this user" -msgstr "Arrêter de bloquer les activités de cet utilisateur" +msgstr "Arrêter de bloquer les activités de cette personne" #: html.c:3217 msgid "Block any activity from this user" -msgstr "Bloque toutes les activités de cet utilisateur" +msgstr "Bloque toutes les activités de cette personne" #: html.c:3225 msgid "Direct Message..." @@ -589,7 +589,7 @@ msgstr "Message direct…" #: html.c:3260 msgid "Pending follow confirmations" -msgstr "Confirmation de suivit en attente" +msgstr "Confirmation de suivi en attente" #: html.c:3264 msgid "People you follow" @@ -613,7 +613,7 @@ msgstr "Sondage terminé" #: html.c:3379 msgid "Follow Request" -msgstr "Requête de suivit" +msgstr "Requête de suivi" #: html.c:3462 msgid "Context" @@ -634,7 +634,7 @@ msgstr "Aucun" #: html.c:3769 #, c-format msgid "Search results for account %s" -msgstr "Résultats de recher pour le compte %s" +msgstr "Résultats de recherche pour le compte %s" #: html.c:3776 #, c-format @@ -654,7 +654,7 @@ msgstr "Rien n'a été trouvé pour le tag %s" #: html.c:3823 #, c-format msgid "Search results for '%s' (may be more)" -msgstr "Résultats de recherche pour '%s' (il pourrait y en avoir d'avantage)" +msgstr "Résultats de recherche pour '%s' (il pourrait y en avoir davantage)" #: html.c:3826 #, c-format @@ -664,7 +664,7 @@ msgstr "Résultats de recherche pour '%s'" #: html.c:3829 #, c-format msgid "No more matches for '%s'" -msgstr "Pas d'avantage de résultats pour '%s'" +msgstr "Pas davantage de résultats pour '%s'" #: html.c:3831 #, c-format @@ -687,7 +687,7 @@ msgstr "Résultats de recherche pour le tag #%s" #: httpd.c:259 msgid "Recent posts by users in this instance" -msgstr "Messages récents des utilisateurs de cette instance" +msgstr "Messages récents des internautes de cette instance" #: html.c:1603 msgid "Blocked hashtags..." @@ -695,7 +695,7 @@ msgstr "Hashtags bloqués…" #: html.c:432 msgid "Optional URL to reply to" -msgstr "" +msgstr "URL optionnelle pour répondre à" #: html.c:575 msgid "" @@ -704,55 +704,59 @@ msgid "" "Option 3...\n" "..." msgstr "" +"Option 1…\n" +"Option 2…\n" +"Option 3…\n" +"…" #: html.c:1415 msgid "Bot API key" -msgstr "" +msgstr "Clé API de bot" #: html.c:1421 msgid "Chat id" -msgstr "" +msgstr "Identifiant du salon" #: html.c:1429 msgid "ntfy server - full URL (example: https://ntfy.sh/YourTopic)" -msgstr "" +msgstr "serveur ntfy – adresse complète (ex : https://ntfy.sh/VotreSujet)" #: html.c:1435 msgid "ntfy token - if needed" -msgstr "" +msgstr "jeton ntfy – si nécessaire" #: html.c:2892 msgid "pinned" -msgstr "" +msgstr "épinglé" #: html.c:2904 msgid "bookmarks" -msgstr "" +msgstr "signets" #: html.c:2916 msgid "drafts" -msgstr "" +msgstr "brouillons" #: html.c:464 msgid "Scheduled post..." -msgstr "" +msgstr "Publication planifiée…" msgid "Post date and time:" -msgstr "" +msgstr "Date et heure de publication :" #: html.c:2927 html.c:3989 msgid "Scheduled posts" -msgstr "" +msgstr "Publications planifiées" #: html.c:2928 msgid "scheduled posts" -msgstr "" +msgstr "publications planifiées" #: html.c:458 #, c-format msgid "Post date and time (timezone: %s):" -msgstr "" +msgstr "Date et heure de publication (fuseau horaire : %s) :" #: html.c:1538 msgid "Time zone:" -msgstr "" +msgstr "Fuseau horaire :" -- cgit v1.2.3 From 610fc0917d21ac0dfb0fb5b125fe8004af03a8ca Mon Sep 17 00:00:00 2001 From: grunfink Date: Tue, 22 Apr 2025 15:47:55 +0200 Subject: Added an alt to avatars. --- html.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html.c b/html.c index d807f4b..e3a955b 100644 --- a/html.c +++ b/html.c @@ -189,7 +189,7 @@ xs_html *html_actor_icon(snac *user, xs_dict *actor, const char *date, xs_html_attr("loading", "lazy"), xs_html_attr("class", "snac-avatar"), xs_html_attr("src", avatar), - xs_html_attr("alt", "")), + xs_html_attr("alt", "[?]")), xs_html_tag("a", xs_html_attr("href", href), xs_html_attr("class", "p-author h-card snac-author"), -- cgit v1.2.3 From 53e662c25c3c403f92d042277dfcbd29253b9f68 Mon Sep 17 00:00:00 2001 From: grunfink Date: Wed, 23 Apr 2025 04:30:16 +0200 Subject: Updated TODO. --- TODO.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO.md b/TODO.md index 7ebad40..70770db 100644 --- a/TODO.md +++ b/TODO.md @@ -2,6 +2,8 @@ ## Open +It seems that Microsoft is planning to laminate Basic HTTP Auth, so make a plan, see https://codeberg.org/grunfink/snac2/issues/350 + Investigate the problem with boosts inside the same instance (see https://codeberg.org/grunfink/snac2/issues/214). Editing / Updating a post does not index newly added hashtags. -- cgit v1.2.3 From 7f936d2d1a88840209895c6091801e8c4cfdaaa1 Mon Sep 17 00:00:00 2001 From: shtrophic Date: Thu, 24 Apr 2025 12:18:23 +0200 Subject: default to `smtp://localhost` --- activitypub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activitypub.c b/activitypub.c index 061d1f8..df68151 100644 --- a/activitypub.c +++ b/activitypub.c @@ -2571,7 +2571,7 @@ int send_email(const xs_dict *mailinfo) { const xs_dict *smtp_cfg = xs_dict_get(srv_config, "email_notifications"); const char - *url = xs_dict_get(smtp_cfg, "url"), + *url = xs_dict_get_def(smtp_cfg, "url", "smtp://localhost"), *user = xs_dict_get(smtp_cfg, "username"), *pass = xs_dict_get(smtp_cfg, "password"), *from = xs_dict_get(mailinfo, "from"), -- cgit v1.2.3 From ec21e1596ab285813d5774224dfed77cbb30d23e Mon Sep 17 00:00:00 2001 From: green Date: Thu, 24 Apr 2025 15:49:55 +0200 Subject: mastoapi: support lists for users --- data.c | 3 ++- mastoapi.c | 55 ++++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/data.c b/data.c index 88f1921..0d1bbc6 100644 --- a/data.c +++ b/data.c @@ -2265,7 +2265,8 @@ xs_val *list_maint(snac *user, const char *list, int op) xs *l2 = xs_split(v2, "/"); /* return [ list_id, list_title ] */ - l = xs_list_append(l, xs_list_append(xs_list_new(), xs_list_get(l2, -1), title)); + xs *tmp_list = xs_list_append(xs_list_new(), xs_list_get(l2, -1), title); + l = xs_list_append(l, tmp_list); } } } diff --git a/mastoapi.c b/mastoapi.c index d93afc5..bea835c 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -1500,6 +1500,37 @@ xs_str *timeline_link_header(const char *endpoint, xs_list *timeline) } +xs_list *mastoapi_account_lists(snac *user, const char *uid) +/* returns the list of list an user is in */ +{ + xs_list *out = xs_list_new(); + xs *actor_md5 = uid ? xs_md5_hex(uid, strlen(uid)) : NULL; + xs *lol = list_maint(user, NULL, 0); + + const xs_list *li; + xs_list_foreach(lol, li) { + const char *list_id = xs_list_get(li, 0); + const char *list_title = xs_list_get(li, 1); + if (uid) { + xs *users = list_content(user, list_id, NULL, 0); + if (xs_list_in(users, actor_md5) == -1) + continue; + } + + xs *d = xs_dict_new(); + + d = xs_dict_append(d, "id", list_id); + d = xs_dict_append(d, "title", list_title); + d = xs_dict_append(d, "replies_policy", "list"); + d = xs_dict_append(d, "exclusive", xs_stock(XSTYPE_FALSE)); + + out = xs_list_append(out, d); + } + + return out; +} + + int mastoapi_get_handler(const xs_dict *req, const char *q_path, char **body, int *b_size, char **ctype, xs_str **link) { @@ -1723,6 +1754,10 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, if (strcmp(opt, "followers") == 0) { out = xs_list_new(); } + else + if (strcmp(opt, "lists") == 0) { + out = mastoapi_account_lists(&snac1, uid); + } user_free(&snac2); } @@ -1744,6 +1779,10 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, /* implement empty response so apps like Tokodon don't show an error */ out = xs_list_new(); } + else + if (strcmp(opt, "lists") == 0) { + out = mastoapi_account_lists(&snac1, uid); + } } } @@ -1975,21 +2014,7 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, else if (strcmp(cmd, "/v1/lists") == 0) { /** list of lists **/ if (logged_in) { - xs *lol = list_maint(&snac1, NULL, 0); - xs *l = xs_list_new(); - int c = 0; - const xs_list *li; - - while (xs_list_next(lol, &li, &c)) { - xs *d = xs_dict_new(); - - d = xs_dict_append(d, "id", xs_list_get(li, 0)); - d = xs_dict_append(d, "title", xs_list_get(li, 1)); - d = xs_dict_append(d, "replies_policy", "list"); - d = xs_dict_append(d, "exclusive", xs_stock(XSTYPE_FALSE)); - - l = xs_list_append(l, d); - } + xs *l = mastoapi_account_lists(&snac1, NULL); *body = xs_json_dumps(l, 4); *ctype = "application/json"; -- cgit v1.2.3 From c1502ca381afa7490f081530c88a01061aad6701 Mon Sep 17 00:00:00 2001 From: green Date: Thu, 24 Apr 2025 16:19:34 +0200 Subject: mastoapi: fix md5 issues --- mastoapi.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mastoapi.c b/mastoapi.c index bea835c..705a902 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -1504,9 +1504,16 @@ xs_list *mastoapi_account_lists(snac *user, const char *uid) /* returns the list of list an user is in */ { xs_list *out = xs_list_new(); - xs *actor_md5 = uid ? xs_md5_hex(uid, strlen(uid)) : NULL; + xs *actor_md5 = NULL; xs *lol = list_maint(user, NULL, 0); + if (uid) { + if (!xs_is_hex(uid)) + actor_md5 = xs_md5_hex(uid, strlen(uid)); + else + actor_md5 = xs_dup(uid); + } + const xs_list *li; xs_list_foreach(lol, li) { const char *list_id = xs_list_get(li, 0); -- cgit v1.2.3 From 77eb7b98017f2e47dbfe3fe410ea6d555c5963d5 Mon Sep 17 00:00:00 2001 From: green Date: Sat, 26 Apr 2025 02:58:38 +0200 Subject: translate russian strings for scheduled posts --- po/ru.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/ru.po b/po/ru.po index df53ebe..4d5d9b4 100644 --- a/po/ru.po +++ b/po/ru.po @@ -745,24 +745,24 @@ msgstr "черновики" #: html.c:464 msgid "Scheduled post..." -msgstr "" +msgstr "Запланировать..." msgid "Post date and time:" -msgstr "" +msgstr "Время поста:" #: html.c:2927 html.c:3989 msgid "Scheduled posts" -msgstr "" +msgstr "Запланированные посты" #: html.c:2928 msgid "scheduled posts" -msgstr "" +msgstr "запланированные посты" #: html.c:458 #, c-format msgid "Post date and time (timezone: %s):" -msgstr "" +msgstr "Время поста (Часовой пояс: %s):" #: html.c:1538 msgid "Time zone:" -msgstr "" +msgstr "Часовой пояс:" -- cgit v1.2.3 From 2e39e4e3c36dc23598173f3b6fe64a103574d089 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 26 Apr 2025 07:26:34 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c7795f9..b4a2a92 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,8 @@ Added new command-line options for list maintenance. +Mastodon API: added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). + ## 2.75 "Time Is On My Side" Added support for scheduled posts (for this to work correctly, users will have to set their time zone, see below). -- cgit v1.2.3 From ae9afd47e7b9df111312bb4a6243fdc05101dd55 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 05:14:09 +0200 Subject: Replaced tabs with spaces. --- utils.c | 68 ++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/utils.c b/utils.c index bf55b9f..576b17c 100644 --- a/utils.c +++ b/utils.c @@ -914,58 +914,58 @@ void import_csv(snac *user) } static const struct { - const char *proto; - unsigned short default_port; + const char *proto; + unsigned short default_port; } FALLBACK_PORTS[] = { - /* caution: https > http, smpts > smtp */ - {"https", 443}, - {"http", 80}, + /* caution: https > http, smpts > smtp */ + {"https", 443}, + {"http", 80}, {"smtps", 465}, - {"smtp", 25} + {"smtp", 25} }; int parse_port(const char *url, const char **errstr) { - const char *col, *rcol; - int tmp, ret = -1; + const char *col, *rcol; + int tmp, ret = -1; if (errstr) - *errstr = NULL; + *errstr = NULL; - if (!(col = strchr(url, ':'))) { + if (!(col = strchr(url, ':'))) { if (errstr) - *errstr = "bad url"; - - return -1; - } - - for (size_t i = 0; i < sizeof(FALLBACK_PORTS) / sizeof(*FALLBACK_PORTS); ++i) { - if (memcmp(url, FALLBACK_PORTS[i].proto, strlen(FALLBACK_PORTS[i].proto)) == 0) { - ret = FALLBACK_PORTS[i].default_port; - break; - } - } - - if (!(rcol = strchr(col + 1, ':'))) - rcol = col; - - if (rcol) { - tmp = atoi(rcol + 1); + *errstr = "bad url"; + + return -1; + } + + for (size_t i = 0; i < sizeof(FALLBACK_PORTS) / sizeof(*FALLBACK_PORTS); ++i) { + if (memcmp(url, FALLBACK_PORTS[i].proto, strlen(FALLBACK_PORTS[i].proto)) == 0) { + ret = FALLBACK_PORTS[i].default_port; + break; + } + } + + if (!(rcol = strchr(col + 1, ':'))) + rcol = col; + + if (rcol) { + tmp = atoi(rcol + 1); if (tmp == 0) { - if (ret != -1) + if (ret != -1) return ret; - + if (errstr) *errstr = strerror(errno); return -1; } - - return tmp; - } + + return tmp; + } if (errstr) - *errstr = "unknown protocol"; + *errstr = "unknown protocol"; - return -1; + return -1; } -- cgit v1.2.3 From 3dec7404bf59397452f3cc32fdf33b379f2546fc Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 05:15:32 +0200 Subject: Fixed memory leak. --- activitypub.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/activitypub.c b/activitypub.c index df68151..10e5776 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1053,9 +1053,10 @@ void notify(snac *snac, const char *type, const char *utype, const char *actor, from, email, subject); xs *mailinfo = xs_dict_new(); + xs *body = xs_fmt("%s%s", header, body); mailinfo = xs_dict_append(mailinfo, "from", from); mailinfo = xs_dict_append(mailinfo, "to", email); - mailinfo = xs_dict_append(mailinfo, "body", xs_fmt("%s%s", header, body)); + mailinfo = xs_dict_append(mailinfo, "body", body); enqueue_email(mailinfo, 0); } -- cgit v1.2.3 From aa15f84b34e51ae8121a8174ea68f105d295699c Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 05:23:39 +0200 Subject: Changed server SMTP settings. --- activitypub.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/activitypub.c b/activitypub.c index 10e5776..fd2d81a 100644 --- a/activitypub.c +++ b/activitypub.c @@ -34,7 +34,7 @@ const char *susie_cool = "+ZcgN7wF7ZVihXkfSlWIVzIA6dbQzaygllpNuTX" "ZmmFNlvxADX1+o0cUPMbAAAAAElFTkSuQmCC"; -const char *susie_muertos = +const char *susie_muertos = "iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQAAAAC" "CEkxzAAAAV0lEQVQoz4XQsQ0AMQxCUW/A/lv+DT" "ic6zGRolekIMyMELNp8PiCEw6Q4w4NoAt53IH5m" @@ -2570,14 +2570,17 @@ int process_input_message(snac *snac, const xs_dict *msg, const xs_dict *req) int send_email(const xs_dict *mailinfo) /* invoke curl */ { - const xs_dict *smtp_cfg = xs_dict_get(srv_config, "email_notifications"); - const char - *url = xs_dict_get_def(smtp_cfg, "url", "smtp://localhost"), - *user = xs_dict_get(smtp_cfg, "username"), - *pass = xs_dict_get(smtp_cfg, "password"), + const char + *url = xs_dict_get(srv_config, "smtp_url"), + *user = xs_dict_get(srv_config, "smtp_username"), + *pass = xs_dict_get(srv_config, "smtp_password"), *from = xs_dict_get(mailinfo, "from"), *to = xs_dict_get(mailinfo, "to"), *body = xs_dict_get(mailinfo, "body"); + + if (url == NULL || *url == '\0') + url = "smtp://localhost"; + int smtp_port = parse_port(url, NULL); return xs_smtp_request(url, user, pass, from, to, body, smtp_port == 465 || smtp_port == 587); -- cgit v1.2.3 From c27e1aa5a126d6676232e7e3cb7cff95a3661b35 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 05:26:42 +0200 Subject: Fixed typo. --- activitypub.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/activitypub.c b/activitypub.c index fd2d81a..fbf7a1f 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1053,10 +1053,10 @@ void notify(snac *snac, const char *type, const char *utype, const char *actor, from, email, subject); xs *mailinfo = xs_dict_new(); - xs *body = xs_fmt("%s%s", header, body); + xs *bd = xs_fmt("%s%s", header, body); mailinfo = xs_dict_append(mailinfo, "from", from); mailinfo = xs_dict_append(mailinfo, "to", email); - mailinfo = xs_dict_append(mailinfo, "body", body); + mailinfo = xs_dict_append(mailinfo, "body", bd); enqueue_email(mailinfo, 0); } -- cgit v1.2.3 From c1eb1cba46272f03f200ee385f4982730324c82d Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 05:37:47 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index b4a2a92..5e08ab1 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -6,6 +6,8 @@ Added new command-line options for list maintenance. Mastodon API: added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). +Email notifications are now sent via `libcurl` SMTP instead of spawning the `/usr/sbin/sendmail` program. Some additional server configuration may be needed, see `snac(8)` (contributed by shtrophic). + ## 2.75 "Time Is On My Side" Added support for scheduled posts (for this to work correctly, users will have to set their time zone, see below). -- cgit v1.2.3 From 08dc4290df40aab309470ad06e0f8f751b26db86 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 05:50:01 +0200 Subject: Updated documentation. --- doc/snac.8 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/snac.8 b/doc/snac.8 index 7594d82..528ba63 100644 --- a/doc/snac.8 +++ b/doc/snac.8 @@ -267,6 +267,13 @@ The maximum number of attachments per post (default: 4). .It Ic enable_svg Since version 2.73, SVG image attachments are hidden by default; you can enable them by setting this value to true. +.It Ic smtp_url +The SMTP url to be used for sending email notifications. It's smtp://localhost by default, +expecting a fully configured SMTP server running on the same host. It may include a port +number, like in smtp://mail.example.com:487. +.It Ic smtp_user +.It Ic smtp_password +To be filled if the SMTP server defined by the previous directive needs credentials. .El .Pp You must restart the server to make effective these changes. -- cgit v1.2.3 From 94a07f93d527ecef3376de566ccf7d74fa2dadd3 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 06:01:05 +0200 Subject: Fixed length error in xs_smtp_request(). --- xs_curl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xs_curl.h b/xs_curl.h index 0609a08..ac543b1 100644 --- a/xs_curl.h +++ b/xs_curl.h @@ -200,6 +200,7 @@ xs_dict *xs_http_request(const char *method, const char *url, return response; } + int xs_smtp_request(const char *url, const char *user, const char *pass, const char *from, const char *to, const xs_str *body, int use_ssl) @@ -209,7 +210,7 @@ int xs_smtp_request(const char *url, const char *user, const char *pass, struct curl_slist *rcpt = NULL; struct _payload_data pd = { .data = (char *)body, - .size = xs_size(body), + .size = strlen(body), .offset = 0 }; -- cgit v1.2.3 From 34c8a535da20955bbe038c3f69af32e2926a5389 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 06:03:22 +0200 Subject: Updated documentation. --- doc/snac.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/snac.8 b/doc/snac.8 index 528ba63..023fc8e 100644 --- a/doc/snac.8 +++ b/doc/snac.8 @@ -270,7 +270,7 @@ them by setting this value to true. .It Ic smtp_url The SMTP url to be used for sending email notifications. It's smtp://localhost by default, expecting a fully configured SMTP server running on the same host. It may include a port -number, like in smtp://mail.example.com:487. +number if it's not running on the usual one, like in smtp://mail.example.com:587. .It Ic smtp_user .It Ic smtp_password To be filled if the SMTP server defined by the previous directive needs credentials. -- cgit v1.2.3 From 2a353d2ffdd7a6235a8f1a04ef62bde77141f159 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Apr 2025 17:16:39 +0200 Subject: Mastoapi: correctly communicate 'approve_followers'. --- mastoapi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mastoapi.c b/mastoapi.c index 705a902..e6acb11 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -1223,7 +1223,10 @@ void credentials_get(char **body, char **ctype, int *status, snac snac) acct = xs_dict_append(acct, "last_status_at", xs_dict_get(snac.config, "published")); acct = xs_dict_append(acct, "note", xs_dict_get(snac.config, "bio")); acct = xs_dict_append(acct, "url", snac.actor); - acct = xs_dict_append(acct, "locked", xs_stock(XSTYPE_FALSE)); + + acct = xs_dict_append(acct, "locked", + xs_stock(xs_is_true(xs_dict_get(snac.config, "approve_followers")) ? XSTYPE_TRUE : XSTYPE_FALSE)); + acct = xs_dict_append(acct, "bot", xs_stock(xs_is_true(bot) ? XSTYPE_TRUE : XSTYPE_FALSE)); acct = xs_dict_append(acct, "emojis", xs_stock(XSTYPE_LIST)); -- cgit v1.2.3 From da0ce17f15e3bb0d3b9eb1442f036d8f549ceee8 Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 28 Apr 2025 05:15:31 +0200 Subject: Email notifications are sent the old way if 'spawn_sendmail' is set to true. --- activitypub.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/activitypub.c b/activitypub.c index fbf7a1f..92e408b 100644 --- a/activitypub.c +++ b/activitypub.c @@ -2570,6 +2570,34 @@ int process_input_message(snac *snac, const xs_dict *msg, const xs_dict *req) int send_email(const xs_dict *mailinfo) /* invoke curl */ { + if (xs_is_true(xs_dict_get(srv_config, "spawn_sendmail"))) { + const char *msg = xs_dict_get(mailinfo, "body"); + FILE *f; + int status; + int fds[2]; + pid_t pid; + + if (pipe(fds) == -1) return -1; + pid = vfork(); + if (pid == -1) return -1; + else if (pid == 0) { + dup2(fds[0], 0); + close(fds[0]); + close(fds[1]); + execl("/usr/sbin/sendmail", "sendmail", "-t", (char *) NULL); + _exit(1); + } + close(fds[0]); + if ((f = fdopen(fds[1], "w")) == NULL) { + close(fds[1]); + return -1; + } + fprintf(f, "%s\n", msg); + fclose(f); + if (waitpid(pid, &status, 0) == -1) return -1; + return status; + } + const char *url = xs_dict_get(srv_config, "smtp_url"), *user = xs_dict_get(srv_config, "smtp_username"), -- cgit v1.2.3 From d8e640a4dac0dd83c15ba4bb4e314f8fd5e17357 Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 28 Apr 2025 05:16:35 +0200 Subject: Bumped version. --- snac.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snac.h b/snac.h index c2e1507..06f9568 100644 --- a/snac.h +++ b/snac.h @@ -1,7 +1,7 @@ /* snac - A simple, minimalistic ActivityPub instance */ /* copyright (c) 2022 - 2025 grunfink et al. / MIT license */ -#define VERSION "2.75" +#define VERSION "2.76-dev" #define USER_AGENT "snac/" VERSION -- cgit v1.2.3 From d07c9ff8dee5113151eb1e8a5f3b7f1a62a3bc12 Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 28 Apr 2025 05:19:35 +0200 Subject: Updated documentation. --- doc/snac.8 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/snac.8 b/doc/snac.8 index 023fc8e..a1e34fa 100644 --- a/doc/snac.8 +++ b/doc/snac.8 @@ -267,6 +267,11 @@ The maximum number of attachments per post (default: 4). .It Ic enable_svg Since version 2.73, SVG image attachments are hidden by default; you can enable them by setting this value to true. +.It Ic spawn_sendmail +Since version 2.76, email notifications are sent via direct SMTP connection instead +of spawning +.Pa /usr/sbin/sendmail +on each message. By setting this to true, classic behaviour can be restored. .It Ic smtp_url The SMTP url to be used for sending email notifications. It's smtp://localhost by default, expecting a fully configured SMTP server running on the same host. It may include a port -- cgit v1.2.3 From be796d6172b8224a73a740bcd1f08ad8aa1d8c37 Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 28 Apr 2025 05:21:47 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 5e08ab1..a5c0ebe 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -6,7 +6,7 @@ Added new command-line options for list maintenance. Mastodon API: added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). -Email notifications are now sent via `libcurl` SMTP instead of spawning the `/usr/sbin/sendmail` program. Some additional server configuration may be needed, see `snac(8)` (contributed by shtrophic). +Email notifications are now sent via `libcurl` SMTP instead of spawning the `/usr/sbin/sendmail` program. Some additional server configuration may be needed, see `snac(8)`. Previous behaviour can be enabled back by setting the `spawn_sendmail` server configuration directive to `true` (contributed by shtrophic). ## 2.75 "Time Is On My Side" -- cgit v1.2.3 From 8e467684c2d6960d64af9ea3de74ddb30d82302f Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 28 Apr 2025 06:12:29 +0200 Subject: Changed email notifications: use SMTP only if configured. --- activitypub.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/activitypub.c b/activitypub.c index 92e408b..98ed6da 100644 --- a/activitypub.c +++ b/activitypub.c @@ -2570,7 +2570,10 @@ int process_input_message(snac *snac, const xs_dict *msg, const xs_dict *req) int send_email(const xs_dict *mailinfo) /* invoke curl */ { - if (xs_is_true(xs_dict_get(srv_config, "spawn_sendmail"))) { + const char *url = xs_dict_get(srv_config, "smtp_url"); + + if (!xs_is_string(url) || *url == '\0') { + /* revert back to old sendmail pipe behaviour */ const char *msg = xs_dict_get(mailinfo, "body"); FILE *f; int status; @@ -2599,7 +2602,6 @@ int send_email(const xs_dict *mailinfo) } const char - *url = xs_dict_get(srv_config, "smtp_url"), *user = xs_dict_get(srv_config, "smtp_username"), *pass = xs_dict_get(srv_config, "smtp_password"), *from = xs_dict_get(mailinfo, "from"), -- cgit v1.2.3 From d33891bab58d50f469dc79d9182f079fcb8bd026 Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 28 Apr 2025 06:16:12 +0200 Subject: Updated documentation. --- doc/snac.8 | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/doc/snac.8 b/doc/snac.8 index a1e34fa..1537f89 100644 --- a/doc/snac.8 +++ b/doc/snac.8 @@ -267,15 +267,13 @@ The maximum number of attachments per post (default: 4). .It Ic enable_svg Since version 2.73, SVG image attachments are hidden by default; you can enable them by setting this value to true. -.It Ic spawn_sendmail -Since version 2.76, email notifications are sent via direct SMTP connection instead -of spawning -.Pa /usr/sbin/sendmail -on each message. By setting this to true, classic behaviour can be restored. .It Ic smtp_url -The SMTP url to be used for sending email notifications. It's smtp://localhost by default, -expecting a fully configured SMTP server running on the same host. It may include a port -number if it's not running on the usual one, like in smtp://mail.example.com:587. +Since version 2.76, email notifications can be sent via direct connection to an +SMTP server instead of the traditional behaviour of piping the message to +.Pa /usr/sbin/sendmail . +Set this value to the SMTP url to be used for sending email notifications +(for example, smtp://localhost). It may include a port number if it's not running on +the usual one, like in smtp://mail.example.com:587. .It Ic smtp_user .It Ic smtp_password To be filled if the SMTP server defined by the previous directive needs credentials. -- cgit v1.2.3 From 46985835fc312e1035b5df6daa0b8c9e0d2bcdd2 Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 28 Apr 2025 06:17:37 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a5c0ebe..a7b7a51 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -6,7 +6,7 @@ Added new command-line options for list maintenance. Mastodon API: added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). -Email notifications are now sent via `libcurl` SMTP instead of spawning the `/usr/sbin/sendmail` program. Some additional server configuration may be needed, see `snac(8)`. Previous behaviour can be enabled back by setting the `spawn_sendmail` server configuration directive to `true` (contributed by shtrophic). +Email notifications can now be sent via `libcurl` SMTP instead of spawning the `/usr/sbin/sendmail` program. To use this new feature, some additional server configuration is needed, see `snac(8)` (contributed by shtrophic). ## 2.75 "Time Is On My Side" -- cgit v1.2.3 From b7320f580d5cc83a120eb5eff720bfb9331dace3 Mon Sep 17 00:00:00 2001 From: shtrophic Date: Tue, 29 Apr 2025 23:31:04 +0200 Subject: allow sandbox to work with changed config values --- sandbox.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sandbox.c b/sandbox.c index 5046104..1ea9c1c 100644 --- a/sandbox.c +++ b/sandbox.c @@ -107,9 +107,9 @@ LL_BEGIN(sbox_enter_linux_, const char* basedir, const char *address, int smtp_p void sbox_enter(const char *basedir) { - const xs_val *v; const char *errstr; const char *address = xs_dict_get(srv_config, "address"); + const char *smtp_url = xs_dict_get(srv_config, "smtp_url"); int smtp_port = -1; if (xs_is_true(xs_dict_get(srv_config, "disable_sandbox"))) { @@ -117,11 +117,10 @@ void sbox_enter(const char *basedir) return; } - if ((v = xs_dict_get(srv_config, "email_notifications")) && - (v = xs_dict_get(v, "url"))) { - smtp_port = parse_port((const char *)v, &errstr); + if (xs_is_string(smtp_url) && *smtp_url != '\0') { + smtp_port = parse_port(smtp_url, &errstr); if (errstr) - srv_debug(0, xs_fmt("Couldn't determine port from '%s': %s", (const char *)v, errstr)); + srv_debug(0, xs_fmt("Couldn't determine port from '%s': %s", smtp_url, errstr)); } if (sbox_enter_linux_(basedir, address, smtp_port) == 0) -- cgit v1.2.3 From aa815a251424edd5a3e873173e12c3045bbe0847 Mon Sep 17 00:00:00 2001 From: grunfink Date: Wed, 30 Apr 2025 09:58:38 +0200 Subject: Updated German translation (contributed by zen). --- po/de_DE.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/de_DE.po b/po/de_DE.po index 4d7cbdd..39fc03e 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -739,24 +739,24 @@ msgstr "Entwürfe" #: html.c:464 msgid "Scheduled post..." -msgstr "" +msgstr "Geplanter Beitrag..." msgid "Post date and time:" -msgstr "" +msgstr "Datum und Uhrzeit des Beitrags:" #: html.c:2927 html.c:3989 msgid "Scheduled posts" -msgstr "" +msgstr "Geplante Beiträge" #: html.c:2928 msgid "scheduled posts" -msgstr "" +msgstr "geplante Beiträge" #: html.c:458 #, c-format msgid "Post date and time (timezone: %s):" -msgstr "" +msgstr "Datum und Uhrzeit des Beitrags (Zeitzone: %s):" #: html.c:1538 msgid "Time zone:" -msgstr "" +msgstr "Zeitzone" -- cgit v1.2.3 From 40c4fdf41595664835f46fd10447ffc8f97c7aff Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 3 May 2025 09:13:09 +0200 Subject: Updated TODO. --- TODO.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO.md b/TODO.md index 70770db..b905a2a 100644 --- a/TODO.md +++ b/TODO.md @@ -14,6 +14,8 @@ Important: deleting a follower should do more that just delete the object, see h ## Wishlist +Do a [Webmention](https://www.w3.org/TR/webmention/) to every link written in a post. + Add account reporting. The instance timeline should also show boosts from users. -- cgit v1.2.3 From 136b7c1581ae6e4aac4a1e4fa04340eb9aab7943 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 3 May 2025 18:23:54 +0200 Subject: No longer drop text/html attachements. --- html.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/html.c b/html.c index e3a955b..288968d 100644 --- a/html.c +++ b/html.c @@ -2392,10 +2392,6 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only, if (content && xs_str_in(content, o_href) != -1) continue; - /* drop silently any attachment that may include JavaScript */ - if (strcmp(type, "text/html") == 0) - continue; - if (strcmp(type, "image/svg+xml") == 0 && !xs_is_true(xs_dict_get(srv_config, "enable_svg"))) continue; -- cgit v1.2.3 From 6878e3fc939c3dac9853a3a33bfab7a289c7648b Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 3 May 2025 18:55:10 +0200 Subject: Also add direct and markdown links in posts as attachments. --- format.c | 27 +++++++++++++++++++++++++-- html.c | 2 +- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/format.c b/format.c index b2b585d..525edb0 100644 --- a/format.c +++ b/format.c @@ -154,10 +154,22 @@ static xs_str *format_line(const char *line, xs_list **attach) xs *l = xs_split_n(w, "](", 1); if (xs_list_len(l) == 2) { - xs *link = xs_fmt("%s", - xs_list_get(l, 1), xs_list_get(l, 0)); + const char *name = xs_list_get(l, 0); + const char *url = xs_list_get(l, 1); + + xs *link = xs_fmt("%s", url, name); s = xs_str_cat(s, link); + + /* also add the link as an attachment */ + xs *d = xs_dict_new(); + + d = xs_dict_append(d, "mediaType", "text/html"); + d = xs_dict_append(d, "url", url); + d = xs_dict_append(d, "name", name); + d = xs_dict_append(d, "type", "Link"); + + *attach = xs_list_append(*attach, d); } else s = xs_str_cat(s, v); @@ -208,6 +220,7 @@ static xs_str *format_line(const char *line, xs_list **attach) } else if (xs_str_in(v, ":/" "/") != -1) { + /* direct URLs in the post body */ xs *u = xs_replace_i(xs_replace(v, "#", "#"), "@", "@"); xs *v2 = xs_strip_chars_i(xs_dup(u), ".,)"); @@ -240,6 +253,16 @@ static xs_str *format_line(const char *line, xs_list **attach) else { xs *s1 = xs_fmt("%s", v2, u); s = xs_str_cat(s, s1); + + /* also add the link as an attachment */ + xs *d = xs_dict_new(); + + d = xs_dict_append(d, "mediaType", "text/html"); + d = xs_dict_append(d, "url", v2); + d = xs_dict_append(d, "name", ""); + d = xs_dict_append(d, "type", "Link"); + + *attach = xs_list_append(*attach, d); } } else diff --git a/html.c b/html.c index 288968d..0652892 100644 --- a/html.c +++ b/html.c @@ -2388,7 +2388,7 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only, const char *o_href = xs_dict_get(a, "href"); const char *name = xs_dict_get(a, "name"); - /* if this image is already in the post content, skip */ + /* if this URL is already in the post content, skip */ if (content && xs_str_in(content, o_href) != -1) continue; -- cgit v1.2.3 From 7f38c744dc6ead2ccac83ae979c99ef521aad23a Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 3 May 2025 19:03:51 +0200 Subject: Revert adding links as attachments. --- format.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/format.c b/format.c index 525edb0..f5c66da 100644 --- a/format.c +++ b/format.c @@ -160,16 +160,6 @@ static xs_str *format_line(const char *line, xs_list **attach) xs *link = xs_fmt("%s", url, name); s = xs_str_cat(s, link); - - /* also add the link as an attachment */ - xs *d = xs_dict_new(); - - d = xs_dict_append(d, "mediaType", "text/html"); - d = xs_dict_append(d, "url", url); - d = xs_dict_append(d, "name", name); - d = xs_dict_append(d, "type", "Link"); - - *attach = xs_list_append(*attach, d); } else s = xs_str_cat(s, v); @@ -253,16 +243,6 @@ static xs_str *format_line(const char *line, xs_list **attach) else { xs *s1 = xs_fmt("%s", v2, u); s = xs_str_cat(s, s1); - - /* also add the link as an attachment */ - xs *d = xs_dict_new(); - - d = xs_dict_append(d, "mediaType", "text/html"); - d = xs_dict_append(d, "url", v2); - d = xs_dict_append(d, "name", ""); - d = xs_dict_append(d, "type", "Link"); - - *attach = xs_list_append(*attach, d); } } else -- cgit v1.2.3 From 605b60c06ea882cd61df7f2d834c02cce6dd254d Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 3 May 2025 19:16:21 +0200 Subject: New function enqueue_webmention(). The q_msg is queued, but nothing is done yet. --- data.c | 13 +++++++++++++ html.c | 4 +++- main.c | 1 + snac.h | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/data.c b/data.c index 7d33f77..73332ef 100644 --- a/data.c +++ b/data.c @@ -3473,6 +3473,19 @@ void enqueue_actor_refresh(snac *user, const char *actor, int forward_secs) } +void enqueue_webmention(const xs_dict *msg) +/* enqueues a webmention for the post */ +{ + xs *qmsg = _new_qmsg("webmention", msg, 0); + const char *ntid = xs_dict_get(qmsg, "ntid"); + xs *fn = xs_fmt("%s/queue/%s.json", srv_basedir, ntid); + + qmsg = _enqueue_put(fn, qmsg); + + srv_debug(1, xs_fmt("enqueue_webmention")); +} + + int was_question_voted(snac *user, const char *id) /* returns true if the user voted in this poll */ { diff --git a/html.c b/html.c index 0652892..e114ea7 100644 --- a/html.c +++ b/html.c @@ -4488,8 +4488,10 @@ int html_post_handler(const xs_dict *req, const char *q_path, snac_log(&snac, xs_fmt("cannot get object '%s' for editing", edit_id)); } - if (c_msg != NULL) + if (c_msg != NULL) { enqueue_message(&snac, c_msg); + enqueue_webmention(msg); + } history_del(&snac, "timeline.html_"); } diff --git a/main.c b/main.c index a6fb6fd..80df2d0 100644 --- a/main.c +++ b/main.c @@ -830,6 +830,7 @@ int main(int argc, char *argv[]) } enqueue_message(&snac, c_msg); + enqueue_webmention(msg); timeline_add(&snac, xs_dict_get(msg, "id"), msg); diff --git a/snac.h b/snac.h index 06f9568..d9d0cfd 100644 --- a/snac.h +++ b/snac.h @@ -289,6 +289,7 @@ void enqueue_close_question(snac *user, const char *id, int end_secs); void enqueue_object_request(snac *user, const char *id, int forward_secs); void enqueue_verify_links(snac *user); void enqueue_actor_refresh(snac *user, const char *actor, int forward_secs); +void enqueue_webmention(const xs_dict *msg); int was_question_voted(snac *user, const char *id); xs_list *user_queue(snac *snac); -- cgit v1.2.3 From 90e9a0aeef500f11528a326ee676caa7da5ef2db Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 3 May 2025 19:31:05 +0200 Subject: Added back again links as attachments. --- format.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/format.c b/format.c index f5c66da..525edb0 100644 --- a/format.c +++ b/format.c @@ -160,6 +160,16 @@ static xs_str *format_line(const char *line, xs_list **attach) xs *link = xs_fmt("%s", url, name); s = xs_str_cat(s, link); + + /* also add the link as an attachment */ + xs *d = xs_dict_new(); + + d = xs_dict_append(d, "mediaType", "text/html"); + d = xs_dict_append(d, "url", url); + d = xs_dict_append(d, "name", name); + d = xs_dict_append(d, "type", "Link"); + + *attach = xs_list_append(*attach, d); } else s = xs_str_cat(s, v); @@ -243,6 +253,16 @@ static xs_str *format_line(const char *line, xs_list **attach) else { xs *s1 = xs_fmt("%s", v2, u); s = xs_str_cat(s, s1); + + /* also add the link as an attachment */ + xs *d = xs_dict_new(); + + d = xs_dict_append(d, "mediaType", "text/html"); + d = xs_dict_append(d, "url", v2); + d = xs_dict_append(d, "name", ""); + d = xs_dict_append(d, "type", "Link"); + + *attach = xs_list_append(*attach, d); } } else -- cgit v1.2.3 From bca51ef5ba10fc38d804d5d83f26575e02190663 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sat, 3 May 2025 19:39:04 +0200 Subject: Preprocess the webmention q_item. Nothing is really done yet. --- activitypub.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/activitypub.c b/activitypub.c index 98ed6da..5ba1f25 100644 --- a/activitypub.c +++ b/activitypub.c @@ -3025,6 +3025,19 @@ void process_queue_item(xs_dict *q_item) } } } + else + if (strcmp(type, "webmention") == 0) { + const xs_dict *msg = xs_dict_get(q_item, "message"); + const char *source = xs_dict_get(msg, "id"); + const xs_list *atts = xs_dict_get(msg, "attachment"); + const xs_dict *att; + + xs_list_foreach(atts, att) { + const char *target = xs_dict_get(att, "url"); + + srv_debug(1, xs_fmt("webmention source=%s target=%s", source, target)); + } + } else srv_log(xs_fmt("unexpected q_item type '%s'", type)); } -- cgit v1.2.3 From 64d99af19ce864ffefec50fcf0d19d2d65411c35 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 4 May 2025 11:05:47 +0200 Subject: xs_webmention.h new file. --- Makefile | 6 +-- Makefile.NetBSD | 5 ++- snac.c | 1 + xs_curl.h | 4 +- xs_version.h | 2 +- xs_webmention.h | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 128 insertions(+), 8 deletions(-) create mode 100644 xs_webmention.h diff --git a/Makefile b/Makefile index d6389b5..46fdb09 100644 --- a/Makefile +++ b/Makefile @@ -56,7 +56,7 @@ format.o: format.c xs.h xs_regex.h xs_mime.h xs_html.h xs_json.h \ xs_time.h xs_match.h snac.h http_codes.h html.o: html.c xs.h xs_io.h xs_json.h xs_regex.h xs_set.h xs_openssl.h \ xs_time.h xs_mime.h xs_match.h xs_html.h xs_curl.h xs_unicode.h xs_url.h \ - snac.h http_codes.h + xs_random.h snac.h http_codes.h http.o: http.c xs.h xs_io.h xs_openssl.h xs_curl.h xs_time.h xs_json.h \ snac.h http_codes.h httpd.o: httpd.c xs.h xs_io.h xs_json.h xs_socket.h xs_unix_socket.h \ @@ -71,10 +71,10 @@ sandbox.o: sandbox.c xs.h snac.h http_codes.h snac.o: snac.c xs.h xs_hex.h xs_io.h xs_unicode_tbl.h xs_unicode.h \ xs_json.h xs_curl.h xs_openssl.h xs_socket.h xs_unix_socket.h xs_url.h \ xs_httpd.h xs_mime.h xs_regex.h xs_set.h xs_time.h xs_glob.h xs_random.h \ - xs_match.h xs_fcgi.h xs_html.h xs_po.h snac.h http_codes.h + xs_match.h xs_fcgi.h xs_html.h xs_po.h xs_webmention.h snac.h \ + http_codes.h upgrade.o: upgrade.c xs.h xs_io.h xs_json.h xs_glob.h snac.h http_codes.h utils.o: utils.c xs.h xs_io.h xs_json.h xs_time.h xs_openssl.h \ xs_random.h xs_glob.h xs_curl.h xs_regex.h snac.h http_codes.h webfinger.o: webfinger.c xs.h xs_json.h xs_curl.h xs_mime.h snac.h \ http_codes.h -tests/smtp.o: tests/smtp.c xs.h xs_curl.h diff --git a/Makefile.NetBSD b/Makefile.NetBSD index 51c8181..ecf8205 100644 --- a/Makefile.NetBSD +++ b/Makefile.NetBSD @@ -45,7 +45,7 @@ format.o: format.c xs.h xs_regex.h xs_mime.h xs_html.h xs_json.h \ xs_time.h xs_match.h snac.h http_codes.h html.o: html.c xs.h xs_io.h xs_json.h xs_regex.h xs_set.h xs_openssl.h \ xs_time.h xs_mime.h xs_match.h xs_html.h xs_curl.h xs_unicode.h xs_url.h \ - snac.h http_codes.h + xs_random.h snac.h http_codes.h http.o: http.c xs.h xs_io.h xs_openssl.h xs_curl.h xs_time.h xs_json.h \ snac.h http_codes.h httpd.o: httpd.c xs.h xs_io.h xs_json.h xs_socket.h xs_unix_socket.h \ @@ -60,7 +60,8 @@ sandbox.o: sandbox.c xs.h snac.h http_codes.h snac.o: snac.c xs.h xs_hex.h xs_io.h xs_unicode_tbl.h xs_unicode.h \ xs_json.h xs_curl.h xs_openssl.h xs_socket.h xs_unix_socket.h xs_url.h \ xs_httpd.h xs_mime.h xs_regex.h xs_set.h xs_time.h xs_glob.h xs_random.h \ - xs_match.h xs_fcgi.h xs_html.h xs_po.h snac.h http_codes.h + xs_match.h xs_fcgi.h xs_html.h xs_po.h xs_webmention.h snac.h \ + http_codes.h upgrade.o: upgrade.c xs.h xs_io.h xs_json.h xs_glob.h snac.h http_codes.h utils.o: utils.c xs.h xs_io.h xs_json.h xs_time.h xs_openssl.h \ xs_random.h xs_glob.h xs_curl.h xs_regex.h snac.h http_codes.h diff --git a/snac.c b/snac.c index 0a1c9cf..a35cd06 100644 --- a/snac.c +++ b/snac.c @@ -25,6 +25,7 @@ #include "xs_fcgi.h" #include "xs_html.h" #include "xs_po.h" +#include "xs_webmention.h" #include "snac.h" diff --git a/xs_curl.h b/xs_curl.h index ac543b1..2301661 100644 --- a/xs_curl.h +++ b/xs_curl.h @@ -225,7 +225,7 @@ int xs_smtp_request(const char *url, const char *user, const char *pass, if (use_ssl) curl_easy_setopt(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_ALL); - + curl_easy_setopt(curl, CURLOPT_MAIL_FROM, from); rcpt = curl_slist_append(rcpt, to); @@ -236,7 +236,7 @@ int xs_smtp_request(const char *url, const char *user, const char *pass, curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); res = curl_easy_perform(curl); - + curl_easy_cleanup(curl); curl_slist_free_all(rcpt); diff --git a/xs_version.h b/xs_version.h index f899dcb..c7789a7 100644 --- a/xs_version.h +++ b/xs_version.h @@ -1 +1 @@ -/* d467dc71e518603250a55c8a67e26cf40e1710e9 2025-02-14T10:21:15+01:00 */ +/* 871d420cef893b6efe32869407294baf084ce3ab 2025-05-04T11:01:01+02:00 */ diff --git a/xs_webmention.h b/xs_webmention.h new file mode 100644 index 0000000..4ef2308 --- /dev/null +++ b/xs_webmention.h @@ -0,0 +1,118 @@ +/* copyright (c) 2025 grunfink et al. / MIT license */ + +#ifndef _XS_WEBMENTION_H + +#define _XS_WEBMENTION_H + +int xs_webmention_send(const char *source, const char *target, const char *user_agent); + + +#ifdef XS_IMPLEMENTATION + +int xs_webmention_send(const char *source, const char *target, const char *user_agent) +/* sends a Webmention to target. + Returns: < 0, error; 0, no Webmention endpoint; > 0, Webmention sent */ +{ + int status = 0; + xs *endpoint = NULL; + + xs *ua = xs_fmt("%s (Webmention)", user_agent ? user_agent : "xs_webmention"); + xs *headers = xs_dict_new(); + headers = xs_dict_set(headers, "accept", "text/html"); + headers = xs_dict_set(headers, "user-agent", ua); + + xs *h_req = NULL; + int p_size = 0; + + /* try first a HEAD, to see if there is a Webmention Link header */ + h_req = xs_http_request("HEAD", target, headers, NULL, 0, &status, NULL, &p_size, 0); + + /* return immediate failures */ + if (status < 200 || status > 299) + return -1; + + const char *link = xs_dict_get(h_req, "link"); + + if (xs_is_string(link) && xs_regex_match(link, "rel *= *(\"|')?webmention")) { + /* endpoint is between < and > */ + xs *r = xs_regex_select_n(link, "<[^>]+>", 1); + + if (xs_list_len(r) == 1) { + endpoint = xs_dup(xs_list_get(r, 0)); + endpoint = xs_strip_chars_i(endpoint, "<>"); + } + } + + if (endpoint == NULL) { + /* no Link header; get the content */ + xs *g_req = NULL; + xs *payload = NULL; + + g_req = xs_http_request("GET", target, headers, NULL, 0, &status, &payload, &p_size, 0); + + if (status < 200 || status > 299) + return -1; + + const char *ctype = xs_dict_get(g_req, "content-type"); + + /* not HTML? no point in looking inside */ + if (!xs_is_string(ctype) || xs_str_in(ctype, "text/html") == -1) + return -2; + + if (!xs_is_string(payload)) + return -3; + + xs *links = xs_regex_select(payload, "<(a +|link +)[^>]+>"); + const char *link; + + xs_list_foreach(links, link) { + if (xs_regex_match(link, "rel *= *(\"|')?webmention")) { + /* found; extract the href */ + xs *r = xs_regex_select_n(link, "href *= *(\"|')?[^\"]+(\"|')", 1); + + if (xs_list_len(r) == 1) { + xs *l = xs_split_n(xs_list_get(r, 0), "=", 1); + + if (xs_list_len(l) == 2) { + endpoint = xs_dup(xs_list_get(l, 1)); + endpoint = xs_strip_chars_i(endpoint, " \"'"); + + break; + } + } + } + } + } + + /* is it a relative endpoint? */ + if (xs_is_string(endpoint)) { + if (!xs_startswith(endpoint, "https://") && !xs_startswith(endpoint, "http://")) { + xs *l = xs_split(target, "/"); + + if (xs_list_len(l) < 3) + endpoint = xs_free(endpoint); + else { + xs *s = xs_fmt("%s/" "/%s", xs_list_get(l, 0), xs_list_get(l, 2)); + endpoint = xs_str_wrap_i(s, endpoint, NULL); + } + } + } + + if (xs_is_string(endpoint)) { + /* got it! */ + headers = xs_dict_set(headers, "content-type", "application/x-www-form-urlencoded"); + + xs *body = xs_fmt("source=%s&target=%s", source, target); + + xs *rsp = xs_http_request("POST", endpoint, headers, body, strlen(body), &status, NULL, 0, 0); + } + else + status = 0; + + return status >= 200 && status <= 299; +} + + +#endif /* XS_IMPLEMENTATION */ + +#endif /* _XS_WEBMENTION_H */ -- cgit v1.2.3 From 7d1b257e4616ff750638b387ae60a128ff0ed43f Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 4 May 2025 11:09:07 +0200 Subject: Webmentions are now sent. --- activitypub.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/activitypub.c b/activitypub.c index 5ba1f25..53a1e74 100644 --- a/activitypub.c +++ b/activitypub.c @@ -11,6 +11,7 @@ #include "xs_set.h" #include "xs_match.h" #include "xs_unicode.h" +#include "xs_webmention.h" #include "snac.h" @@ -3035,7 +3036,11 @@ void process_queue_item(xs_dict *q_item) xs_list_foreach(atts, att) { const char *target = xs_dict_get(att, "url"); - srv_debug(1, xs_fmt("webmention source=%s target=%s", source, target)); + if (xs_is_string(source) && xs_is_string(target)) { + int r = xs_webmention_send(source, target, USER_AGENT); + + srv_debug(1, xs_fmt("webmention source=%s target=%s %d", source, target, r)); + } } } else -- cgit v1.2.3 From 415720ca417e401dd00cf14987444a0742fbb468 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 4 May 2025 11:16:12 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a7b7a51..c8fc35d 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,6 +2,8 @@ ## UNRELEASED +Added Webmention support for links (Markdown-style or direct) written in a post. + Added new command-line options for list maintenance. Mastodon API: added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). -- cgit v1.2.3 From f75939e094fd77ebaaca4ac154efae233ce711d5 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 4 May 2025 11:16:32 +0200 Subject: Updated TODO. --- TODO.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index b905a2a..04a9b20 100644 --- a/TODO.md +++ b/TODO.md @@ -14,8 +14,6 @@ Important: deleting a follower should do more that just delete the object, see h ## Wishlist -Do a [Webmention](https://www.w3.org/TR/webmention/) to every link written in a post. - Add account reporting. The instance timeline should also show boosts from users. @@ -375,3 +373,5 @@ Add a list of hashtags to drop (2025-03-23T15:45:30+0100). The actual storage system wastes too much disk space (lots of small files that really consume 4k of storage). Consider alternatives (2025-03-23T15:46:02+0100). Add command-line tools for creating and manipulating lists (2025-04-18T10:04:41+0200). + +Do a [Webmention](https://www.w3.org/TR/webmention/) to every link written in a post (2025-05-04T11:16:21+0200). -- cgit v1.2.3 From 97568a7c930cf7aaa5e4f6c72c3831837c32b111 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 4 May 2025 18:10:36 +0200 Subject: Better error handling in xs_webmention_send(). --- xs_webmention.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/xs_webmention.h b/xs_webmention.h index 4ef2308..8415629 100644 --- a/xs_webmention.h +++ b/xs_webmention.h @@ -105,11 +105,16 @@ int xs_webmention_send(const char *source, const char *target, const char *user_ xs *body = xs_fmt("source=%s&target=%s", source, target); xs *rsp = xs_http_request("POST", endpoint, headers, body, strlen(body), &status, NULL, 0, 0); + + if (status < 200 || status > 299) + status = -4; + else + status = 1; } else status = 0; - return status >= 200 && status <= 299; + return status; } -- cgit v1.2.3 From b84a2ec87d64e16a4044b12d74247321b17c6925 Mon Sep 17 00:00:00 2001 From: grunfink Date: Tue, 6 May 2025 05:59:52 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c8fc35d..9daf182 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -6,6 +6,8 @@ Added Webmention support for links (Markdown-style or direct) written in a post. Added new command-line options for list maintenance. +Display custom emoji in more places (contributed by dandelions). + Mastodon API: added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). Email notifications can now be sent via `libcurl` SMTP instead of spawning the `/usr/sbin/sendmail` program. To use this new feature, some additional server configuration is needed, see `snac(8)` (contributed by shtrophic). -- cgit v1.2.3 From 12107401ea2721edbfb8affacefb242409dd271f Mon Sep 17 00:00:00 2001 From: default Date: Tue, 6 May 2025 07:28:43 +0200 Subject: Fixed crash. --- format.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/format.c b/format.c index 862d766..b3764ef 100644 --- a/format.c +++ b/format.c @@ -161,15 +161,17 @@ static xs_str *format_line(const char *line, xs_list **attach) s = xs_str_cat(s, link); - /* also add the link as an attachment */ - xs *d = xs_dict_new(); + if (attach) { + /* also add the link as an attachment */ + xs *d = xs_dict_new(); - d = xs_dict_append(d, "mediaType", "text/html"); - d = xs_dict_append(d, "url", url); - d = xs_dict_append(d, "name", name); - d = xs_dict_append(d, "type", "Link"); + d = xs_dict_append(d, "mediaType", "text/html"); + d = xs_dict_append(d, "url", url); + d = xs_dict_append(d, "name", name); + d = xs_dict_append(d, "type", "Link"); - *attach = xs_list_append(*attach, d); + *attach = xs_list_append(*attach, d); + } } else s = xs_str_cat(s, v); @@ -254,15 +256,17 @@ static xs_str *format_line(const char *line, xs_list **attach) xs *s1 = xs_fmt("%s", v2, u); s = xs_str_cat(s, s1); - /* also add the link as an attachment */ - xs *d = xs_dict_new(); + if (attach) { + /* also add the link as an attachment */ + xs *d = xs_dict_new(); - d = xs_dict_append(d, "mediaType", "text/html"); - d = xs_dict_append(d, "url", v2); - d = xs_dict_append(d, "name", ""); - d = xs_dict_append(d, "type", "Link"); + d = xs_dict_append(d, "mediaType", "text/html"); + d = xs_dict_append(d, "url", v2); + d = xs_dict_append(d, "name", ""); + d = xs_dict_append(d, "type", "Link"); - *attach = xs_list_append(*attach, d); + *attach = xs_list_append(*attach, d); + } } } else -- cgit v1.2.3 From 38ff37703ef9286b86ee18c81e70f0e218207373 Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 9 May 2025 08:37:16 +0200 Subject: Added header "access-control-expose-headers" with the "Link" value. This helps paging in Mastodon clients. --- httpd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/httpd.c b/httpd.c index 836c256..6f7d69b 100644 --- a/httpd.c +++ b/httpd.c @@ -556,6 +556,7 @@ void httpd_connection(FILE *f) headers = xs_dict_append(headers, "access-control-allow-origin", "*"); headers = xs_dict_append(headers, "access-control-allow-headers", "*"); + headers = xs_dict_append(headers, "access-control-expose-headers", "Link"); /* disable any form of fucking JavaScript */ headers = xs_dict_append(headers, "Content-Security-Policy", "script-src ;"); -- cgit v1.2.3 From 7d2d97a037f8cc4132a808497620ba700b058bac Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 9 May 2025 08:43:58 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 9daf182..d6fe294 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -8,7 +8,7 @@ Added new command-line options for list maintenance. Display custom emoji in more places (contributed by dandelions). -Mastodon API: added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). +Mastodon API: fixed infinite scroll in most clients (thanks to cheeaun for giving me the clue), added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). Email notifications can now be sent via `libcurl` SMTP instead of spawning the `/usr/sbin/sendmail` program. To use this new feature, some additional server configuration is needed, see `snac(8)` (contributed by shtrophic). -- cgit v1.2.3 From e2619bcf919cc6840e2068e13d2457009b07b701 Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 9 May 2025 08:45:39 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index d6fe294..fcff7f6 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -8,7 +8,7 @@ Added new command-line options for list maintenance. Display custom emoji in more places (contributed by dandelions). -Mastodon API: fixed infinite scroll in most clients (thanks to cheeaun for giving me the clue), added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). +Mastodon API: fixed infinite scroll in many clients (thanks to cheeaun for giving me the clue), added `/api/v1/accounts/.../lists` endpoint (contributed by dandelions). Email notifications can now be sent via `libcurl` SMTP instead of spawning the `/usr/sbin/sendmail` program. To use this new feature, some additional server configuration is needed, see `snac(8)` (contributed by shtrophic). -- cgit v1.2.3 From 05c9b46d1cd29b32c68415c0194bb92d903e5fb8 Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 9 May 2025 10:29:19 +0200 Subject: Updated TODO. --- TODO.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO.md b/TODO.md index 04a9b20..8b87d37 100644 --- a/TODO.md +++ b/TODO.md @@ -16,6 +16,8 @@ Important: deleting a follower should do more that just delete the object, see h Add account reporting. +Add a list option to hide member posts from the main timeline, see https://codeberg.org/grunfink/snac2/issues/383 + The instance timeline should also show boosts from users. Mastoapi: implement /v1/conversations. -- cgit v1.2.3 From b0f9ce2a8eabf500d3bb4dac6e94b7e08817dbf8 Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 9 May 2025 10:47:49 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index fcff7f6..e768ddd 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,6 @@ # Release Notes -## UNRELEASED +## 2.76 Added Webmention support for links (Markdown-style or direct) written in a post. -- cgit v1.2.3 From 33647d2cb75077b7152a9727659b452a7727d42b Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 9 May 2025 10:48:29 +0200 Subject: Version 2.76 RELEASED. --- snac.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snac.h b/snac.h index be5af07..e51fc18 100644 --- a/snac.h +++ b/snac.h @@ -1,7 +1,7 @@ /* snac - A simple, minimalistic ActivityPub instance */ /* copyright (c) 2022 - 2025 grunfink et al. / MIT license */ -#define VERSION "2.76-dev" +#define VERSION "2.76" #define USER_AGENT "snac/" VERSION -- cgit v1.2.3 From c166e05f7d3ba1efe9b16290bf3da2b06fdae8ea Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 9 May 2025 15:31:58 +0200 Subject: As they look ugly in some platforms, links are no longer shown as attachments. --- activitypub.c | 12 +++++++----- format.c | 24 ------------------------ 2 files changed, 7 insertions(+), 29 deletions(-) diff --git a/activitypub.c b/activitypub.c index dcbb79f..48a999a 100644 --- a/activitypub.c +++ b/activitypub.c @@ -3034,13 +3034,15 @@ void process_queue_item(xs_dict *q_item) if (strcmp(type, "webmention") == 0) { const xs_dict *msg = xs_dict_get(q_item, "message"); const char *source = xs_dict_get(msg, "id"); - const xs_list *atts = xs_dict_get(msg, "attachment"); - const xs_dict *att; + const char *content = xs_dict_get(msg, "content"); - xs_list_foreach(atts, att) { - const char *target = xs_dict_get(att, "url"); + if (xs_is_string(source) && xs_is_string(content)) { + xs *links = xs_regex_select(content, "\"https?[^\"]+"); + const char *link; + + xs_list_foreach(links, link) { + xs *target = xs_strip_chars_i(xs_dup(link), "\""); - if (xs_is_string(source) && xs_is_string(target)) { int r = xs_webmention_send(source, target, USER_AGENT); srv_debug(1, xs_fmt("webmention source=%s target=%s %d", source, target, r)); diff --git a/format.c b/format.c index b3764ef..2f30a0d 100644 --- a/format.c +++ b/format.c @@ -160,18 +160,6 @@ static xs_str *format_line(const char *line, xs_list **attach) xs *link = xs_fmt("%s", url, name); s = xs_str_cat(s, link); - - if (attach) { - /* also add the link as an attachment */ - xs *d = xs_dict_new(); - - d = xs_dict_append(d, "mediaType", "text/html"); - d = xs_dict_append(d, "url", url); - d = xs_dict_append(d, "name", name); - d = xs_dict_append(d, "type", "Link"); - - *attach = xs_list_append(*attach, d); - } } else s = xs_str_cat(s, v); @@ -255,18 +243,6 @@ static xs_str *format_line(const char *line, xs_list **attach) else { xs *s1 = xs_fmt("%s", v2, u); s = xs_str_cat(s, s1); - - if (attach) { - /* also add the link as an attachment */ - xs *d = xs_dict_new(); - - d = xs_dict_append(d, "mediaType", "text/html"); - d = xs_dict_append(d, "url", v2); - d = xs_dict_append(d, "name", ""); - d = xs_dict_append(d, "type", "Link"); - - *attach = xs_list_append(*attach, d); - } } } else -- cgit v1.2.3 From 7c828f37879c3fb96514173eb247aaf2cb79fff8 Mon Sep 17 00:00:00 2001 From: grunfink Date: Fri, 9 May 2025 15:41:09 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index e768ddd..7df1bae 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,9 @@ # Release Notes +## UNRELEASED + +As they look ugly in some platforms, links in content posts are no longer included as attachments. + ## 2.76 Added Webmention support for links (Markdown-style or direct) written in a post. -- cgit v1.2.3 From 0d0f34c94d4826e5c084073f4e9a9393d113f133 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 11 May 2025 10:48:23 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 7df1bae..62edbf0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,7 +2,7 @@ ## UNRELEASED -As they look ugly in some platforms, links in content posts are no longer included as attachments. +As they look confusing in some platforms, links in content posts are no longer included as `Link` attachments. ## 2.76 -- cgit v1.2.3 From 418581a71dc1a540a4a18b439aa215b143706c80 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 11 May 2025 18:59:28 +0200 Subject: Minor tweak to link extraction regex. --- activitypub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activitypub.c b/activitypub.c index 48a999a..a7e133a 100644 --- a/activitypub.c +++ b/activitypub.c @@ -3037,7 +3037,7 @@ void process_queue_item(xs_dict *q_item) const char *content = xs_dict_get(msg, "content"); if (xs_is_string(source) && xs_is_string(content)) { - xs *links = xs_regex_select(content, "\"https?[^\"]+"); + xs *links = xs_regex_select(content, "\"https?:/" "/[^\"]+"); const char *link; xs_list_foreach(links, link) { -- cgit v1.2.3 From 99368bf15578dc7e833774790d6ef2d924485d1e Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 12 May 2025 09:42:54 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 62edbf0..8a2fe62 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,6 +1,6 @@ # Release Notes -## UNRELEASED +## 2.77 "Ugly Links Everywhere" As they look confusing in some platforms, links in content posts are no longer included as `Link` attachments. -- cgit v1.2.3 From f321905d4bcdd4ae5b344f9b743ecdac35e3672f Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 12 May 2025 09:43:11 +0200 Subject: Version 2.77 RELEASED. --- snac.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snac.h b/snac.h index e51fc18..64bc2bf 100644 --- a/snac.h +++ b/snac.h @@ -1,7 +1,7 @@ /* snac - A simple, minimalistic ActivityPub instance */ /* copyright (c) 2022 - 2025 grunfink et al. / MIT license */ -#define VERSION "2.76" +#define VERSION "2.77" #define USER_AGENT "snac/" VERSION -- cgit v1.2.3 From 8ae0089bdb3c246810013de5c9541072b2593f00 Mon Sep 17 00:00:00 2001 From: grunfink Date: Wed, 14 May 2025 08:48:15 +0200 Subject: mastoapi: Also process the types[] argument in notifications. --- mastoapi.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/mastoapi.c b/mastoapi.c index e6acb11..6a22189 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -1874,13 +1874,14 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, if (logged_in) { xs *l = notify_list(&snac1, 0, 64); xs *out = xs_list_new(); - const xs_dict *v; + const char *v; const xs_list *excl = xs_dict_get(args, "exclude_types[]"); + const xs_list *incl = xs_dict_get(args, "types[]"); const char *min_id = xs_dict_get(args, "min_id"); const char *max_id = xs_dict_get(args, "max_id"); const char *limit = xs_dict_get(args, "limit"); int limit_count = 0; - if (!xs_is_null(limit)) { + if (xs_is_string(limit)) { limit_count = atoi(limit); } @@ -1899,11 +1900,12 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, const char *utype = xs_dict_get(noti, "utype"); const char *objid = xs_dict_get(noti, "objid"); const char *id = xs_dict_get(noti, "id"); + const char *actid = xs_dict_get(noti, "actor"); xs *fid = xs_replace(id, ".", ""); xs *actor = NULL; xs *entry = NULL; - if (!valid_status(actor_get(xs_dict_get(noti, "actor"), &actor))) + if (!valid_status(actor_get(actid, &actor))) continue; if (objid != NULL && !valid_status(object_get(objid, &entry))) @@ -1944,7 +1946,11 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, continue; /* excluded type? */ - if (!xs_is_null(excl) && xs_list_in(excl, type) != -1) + if (xs_is_list(excl) && xs_list_in(excl, type) != -1) + continue; + + /* included type? */ + if (xs_is_list(incl) && xs_list_in(incl, type) == -1) continue; xs *mn = xs_dict_new(); @@ -1970,10 +1976,9 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, } out = xs_list_append(out, mn); - if (!xs_is_null(limit)) { - if (--limit_count <= 0) - break; - } + + if (--limit_count <= 0) + break; } srv_debug(1, xs_fmt("mastoapi_notifications count %d", xs_list_len(out))); -- cgit v1.2.3 From ee84140ecceb07dad8ea36cc5aa29b91bbb48a56 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 18 May 2025 08:23:48 +0200 Subject: Added a pending follow request count next to the "people" link. --- data.c | 10 ++++++++++ html.c | 12 ++++++++++++ snac.h | 1 + 3 files changed, 23 insertions(+) diff --git a/data.c b/data.c index 73332ef..e3fa52d 100644 --- a/data.c +++ b/data.c @@ -1335,6 +1335,16 @@ xs_list *pending_list(snac *user) } +int pending_count(snac *user) +/* returns the number of pending follow confirmations */ +{ + xs *spec = xs_fmt("%s/pending/""*.json", user->basedir); + xs *l = xs_glob(spec, 0, 0); + + return xs_list_len(l); +} + + /** timeline **/ double timeline_mtime(snac *snac) diff --git a/html.c b/html.c index aec7d0a..6c7af51 100644 --- a/html.c +++ b/html.c @@ -923,7 +923,9 @@ static xs_html *html_user_body(snac *user, int read_only) } else { int n_len = notify_new_num(user); + int p_len = pending_count(user); xs_html *notify_count = NULL; + xs_html *pending_follow_count = NULL; /* show the number of new notifications, if there are any */ if (n_len) { @@ -935,6 +937,15 @@ static xs_html *html_user_body(snac *user, int read_only) else notify_count = xs_html_text(""); + if (p_len) { + xs *s = xs_fmt(" %d ", p_len); + pending_follow_count = xs_html_tag("sup", + xs_html_attr("style", "background-color: red; color: white;"), + xs_html_text(s)); + } + else + pending_follow_count = xs_html_text(""); + xs *admin_url = xs_fmt("%s/admin", user->actor); xs *notify_url = xs_fmt("%s/notifications", user->actor); xs *people_url = xs_fmt("%s/people", user->actor); @@ -957,6 +968,7 @@ static xs_html *html_user_body(snac *user, int read_only) xs_html_tag("a", xs_html_attr("href", people_url), xs_html_text(L("people"))), + pending_follow_count, xs_html_text(" - "), xs_html_tag("a", xs_html_attr("href", instance_url), diff --git a/snac.h b/snac.h index 64bc2bf..2ab9a67 100644 --- a/snac.h +++ b/snac.h @@ -159,6 +159,7 @@ int pending_check(snac *user, const char *actor); xs_dict *pending_get(snac *user, const char *actor); void pending_del(snac *user, const char *actor); xs_list *pending_list(snac *user); +int pending_count(snac *user); double timeline_mtime(snac *snac); int timeline_touch(snac *snac); -- cgit v1.2.3 From 0900f69f2a4d08086e60cd5d31beac73b65f25a7 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 18 May 2025 08:43:31 +0200 Subject: mastoapi: added endpoint /v1/follow_requests. --- mastoapi.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/mastoapi.c b/mastoapi.c index 6a22189..c216a0b 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -2109,10 +2109,26 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, } else if (strcmp(cmd, "/v1/follow_requests") == 0) { /** **/ - /* snac does not support optional follow confirmations */ - *body = xs_dup("[]"); - *ctype = "application/json"; - status = HTTP_STATUS_OK; + if (logged_in) { + xs *pend = pending_list(&snac1); + xs *resp = xs_list_new(); + const char *id; + + xs_list_foreach(pend, id) { + xs *actor = NULL; + + if (valid_status(object_get(id, &actor))) { + xs *acct = mastoapi_account(&snac1, actor); + + if (acct) + resp = xs_list_append(resp, acct); + } + } + + *body = xs_json_dumps(resp, 4); + *ctype = "application/json"; + status = HTTP_STATUS_OK; + } } else if (strcmp(cmd, "/v1/announcements") == 0) { /** **/ -- cgit v1.2.3 From 31b0f750a8af530ac61a38938e453740996ba9d5 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 18 May 2025 09:11:40 +0200 Subject: mastoapi: added post endpoints for 'authorize' and 'reject' follow requests. --- mastoapi.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/mastoapi.c b/mastoapi.c index c216a0b..7fa0078 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -3244,6 +3244,57 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path, *ctype = "application/json"; status = HTTP_STATUS_OK; } + else + if (xs_startswith(cmd, "/v1/follow_requests")) { /** **/ + if (logged_in) { + /* "authorize" or "reject" */ + xs *rel = NULL; + xs *l = xs_split(cmd, "/"); + const char *md5 = xs_list_get(l, -2); + const char *s_cmd = xs_list_get(l, -1); + + if (xs_is_string(md5) && xs_is_string(s_cmd)) { + xs *actor = NULL; + + if (valid_status(object_get_by_md5(md5, &actor))) { + const char *actor_id = xs_dict_get(actor, "id"); + + if (strcmp(s_cmd, "authorize") == 0) { + xs *fwreq = pending_get(&snac, actor_id); + + if (fwreq != NULL) { + xs *reply = msg_accept(&snac, fwreq, actor_id); + + enqueue_message(&snac, reply); + + if (xs_is_null(xs_dict_get(fwreq, "published"))) { + xs *date = xs_str_utctime(0, ISO_DATE_SPEC); + fwreq = xs_dict_set(fwreq, "published", date); + } + + timeline_add(&snac, xs_dict_get(fwreq, "id"), fwreq); + + follower_add(&snac, actor_id); + + pending_del(&snac, actor_id); + rel = mastoapi_relationship(&snac, md5); + } + } + else + if (strcmp(s_cmd, "reject") == 0) { + pending_del(&snac, actor_id); + rel = mastoapi_relationship(&snac, md5); + } + } + } + + if (rel != NULL) { + *body = xs_json_dumps(rel, 4); + *ctype = "application/json"; + status = HTTP_STATUS_OK; + } + } + } else status = HTTP_STATUS_UNPROCESSABLE_CONTENT; -- cgit v1.2.3 From 8f048b06cb792cbf081a31b405100042d8808534 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 18 May 2025 09:16:53 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 8a2fe62..21c2153 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,11 @@ # Release Notes +## UNRELEASED + +The number of pending follow confirmations is shown next to the "people" link. + +Mastodon API: added follow confirmation endpoints. + ## 2.77 "Ugly Links Everywhere" As they look confusing in some platforms, links in content posts are no longer included as `Link` attachments. -- cgit v1.2.3 From 072ae21013dc924c6bb3378a2480b571a66aba98 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 18 May 2025 09:38:38 +0200 Subject: Operations on the 'people' page redirects back to it instead of 'admin'. --- html.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/html.c b/html.c index 6c7af51..b27db7a 100644 --- a/html.c +++ b/html.c @@ -3149,6 +3149,8 @@ xs_html *html_people_list(snac *user, xs_list *list, const char *header, const c xs_html_tag("summary", xs_html_text("...")))); + xs *redir = xs_fmt("%s/people", user->actor); + const char *actor_id; xs_list_foreach(list, actor_id) { @@ -3200,6 +3202,10 @@ xs_html *html_people_list(snac *user, xs_list *list, const char *header, const c xs_html_attr("type", "hidden"), xs_html_attr("name", "actor"), xs_html_attr("value", actor_id)), + xs_html_sctag("input", + xs_html_attr("type", "hidden"), + xs_html_attr("name", "hard-redir"), + xs_html_attr("value", redir)), xs_html_sctag("input", xs_html_attr("type", "hidden"), xs_html_attr("name", "actor-form"), @@ -5003,12 +5009,19 @@ int html_post_handler(const xs_dict *req, const char *q_path, } if (status == HTTP_STATUS_SEE_OTHER) { - const char *redir = xs_dict_get(p_vars, "redir"); + const char *hard_redir = xs_dict_get(p_vars, "hard-redir"); - if (xs_is_null(redir)) - redir = "top"; + if (xs_is_string(hard_redir)) + *body = xs_dup(hard_redir); + else { + const char *redir = xs_dict_get(p_vars, "redir"); + + if (xs_is_null(redir)) + redir = "top"; + + *body = xs_fmt("%s/admin#%s", snac.actor, redir); + } - *body = xs_fmt("%s/admin#%s", snac.actor, redir); *b_size = strlen(*body); } -- cgit v1.2.3 From 00fd1a1c3eb99c9e441276a7ce8697a1582152b7 Mon Sep 17 00:00:00 2001 From: green Date: Sat, 29 Mar 2025 01:27:46 +0100 Subject: performance: functions to get the number of followers --- data.c | 17 +++++++++++++++++ html.c | 12 ++---------- snac.h | 2 ++ 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/data.c b/data.c index e3fa52d..482a29c 100644 --- a/data.c +++ b/data.c @@ -1215,6 +1215,14 @@ int follower_check(snac *snac, const char *actor) } +int follower_list_len(snac *snac) +/* returns the number followers */ +{ + xs *list = object_user_cache_list(snac, "followers", XS_ALL, 0); + return xs_list_len(list); +} + + xs_list *follower_list(snac *snac) /* returns the list of followers */ { @@ -1709,6 +1717,15 @@ int following_get(snac *snac, const char *actor, xs_dict **data) } +int following_list_len(snac *snac) +/* returns number of people being followed */ +{ + xs *spec = xs_fmt("%s/following/" "*_a.json", snac->basedir); + xs *glist = xs_glob(spec, 0, 0); + return xs_list_len(glist); +} + + xs_list *following_list(snac *snac) /* returns the list of people being followed */ { diff --git a/html.c b/html.c index b27db7a..4483dd7 100644 --- a/html.c +++ b/html.c @@ -821,11 +821,7 @@ xs_html *html_user_head(snac *user, const char *desc, const char *url) /* show metrics in og:description? */ if (xs_is_true(xs_dict_get(user->config, "show_contact_metrics"))) { - xs *fwers = follower_list(user); - xs *fwing = following_list(user); - - xs *s1 = xs_fmt(L("%d following, %d followers"), - xs_list_len(fwing), xs_list_len(fwers)); + xs *s1 = xs_fmt(L("%d following, %d followers"), following_list_len(user), follower_list_len(user)); s1 = xs_str_cat(s1, " · "); @@ -1166,11 +1162,7 @@ static xs_html *html_user_body(snac *user, int read_only) } if (xs_is_true(xs_dict_get(user->config, "show_contact_metrics"))) { - xs *fwers = follower_list(user); - xs *fwing = following_list(user); - - xs *s1 = xs_fmt(L("%d following, %d followers"), - xs_list_len(fwing), xs_list_len(fwers)); + xs *s1 = xs_fmt(L("%d following, %d followers"), following_list_len(user), follower_list_len(user)); xs_html_add(top_user, xs_html_tag("p", diff --git a/snac.h b/snac.h index 2ab9a67..256731f 100644 --- a/snac.h +++ b/snac.h @@ -153,6 +153,7 @@ int follower_add(snac *snac, const char *actor); int follower_del(snac *snac, const char *actor); int follower_check(snac *snac, const char *actor); xs_list *follower_list(snac *snac); +int follower_list_len(snac *snac); int pending_add(snac *user, const char *actor, const xs_dict *msg); int pending_check(snac *user, const char *actor); @@ -184,6 +185,7 @@ int following_del(snac *snac, const char *actor); int following_check(snac *snac, const char *actor); int following_get(snac *snac, const char *actor, xs_dict **data); xs_list *following_list(snac *snac); +int following_list_len(snac *snac); void mute(snac *snac, const char *actor); void unmute(snac *snac, const char *actor); -- cgit v1.2.3 From 321f64ed70d039dea510c8a7d7aee7dc9577737a Mon Sep 17 00:00:00 2001 From: green Date: Mon, 19 May 2025 15:25:11 +0200 Subject: performance: use following_list_len in more places --- activitypub.c | 6 ++---- data.c | 2 +- mastoapi.c | 16 ++++++++-------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/activitypub.c b/activitypub.c index a7e133a..120b4a1 100644 --- a/activitypub.c +++ b/activitypub.c @@ -3204,8 +3204,7 @@ int activitypub_get_handler(const xs_dict *req, const char *q_path, int total = 0; if (show_contact_metrics) { - xs *l = follower_list(&snac); - total = xs_list_len(l); + total = follower_list_len(&snac); } xs *id = xs_fmt("%s/%s", snac.actor, p_path); @@ -3216,8 +3215,7 @@ int activitypub_get_handler(const xs_dict *req, const char *q_path, int total = 0; if (show_contact_metrics) { - xs *l = following_list(&snac); - total = xs_list_len(l); + total = following_list_len(&snac); } xs *id = xs_fmt("%s/%s", snac.actor, p_path); diff --git a/data.c b/data.c index 482a29c..f9d27f9 100644 --- a/data.c +++ b/data.c @@ -1216,7 +1216,7 @@ int follower_check(snac *snac, const char *actor) int follower_list_len(snac *snac) -/* returns the number followers */ +/* returns the number of followers */ { xs *list = object_user_cache_list(snac, "followers", XS_ALL, 0); return xs_list_len(list); diff --git a/mastoapi.c b/mastoapi.c index 7fa0078..a7d9c34 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -680,10 +680,10 @@ xs_dict *mastoapi_account(snac *logged, const xs_dict *actor) /* does this user want to publish their contact metrics? */ if (xs_is_true(xs_dict_get(user.config, "show_contact_metrics"))) { - xs *fwing = following_list(&user); - xs *fwers = follower_list(&user); - xs *ni = xs_number_new(xs_list_len(fwing)); - xs *ne = xs_number_new(xs_list_len(fwers)); + int fwing = following_list_len(&user); + int fwers = follower_list_len(&user); + xs *ni = xs_number_new(fwing); + xs *ne = xs_number_new(fwers); acct = xs_dict_append(acct, "followers_count", ne); acct = xs_dict_append(acct, "following_count", ni); @@ -1309,10 +1309,10 @@ void credentials_get(char **body, char **ctype, int *status, snac snac) /* does this user want to publish their contact metrics? */ if (xs_is_true(xs_dict_get(snac.config, "show_contact_metrics"))) { - xs *fwing = following_list(&snac); - xs *fwers = follower_list(&snac); - xs *ni = xs_number_new(xs_list_len(fwing)); - xs *ne = xs_number_new(xs_list_len(fwers)); + int fwing = following_list_len(&snac); + int fwers = follower_list_len(&snac); + xs *ni = xs_number_new(fwing); + xs *ne = xs_number_new(fwers); acct = xs_dict_append(acct, "followers_count", ne); acct = xs_dict_append(acct, "following_count", ni); -- cgit v1.2.3 From c950981cca0896558ffae7e66b76f43f1ec49969 Mon Sep 17 00:00:00 2001 From: grunfink Date: Mon, 19 May 2025 20:14:07 +0200 Subject: Improved post language markup. --- html.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/html.c b/html.c index b27db7a..5293dfe 100644 --- a/html.c +++ b/html.c @@ -332,7 +332,8 @@ xs_html *html_actor_icon(snac *user, xs_dict *actor, const char *date, } -xs_html *html_msg_icon(snac *user, const char *actor_id, const xs_dict *msg, const char *proxy, const char *md5) +xs_html *html_msg_icon(snac *user, const char *actor_id, const xs_dict *msg, + const char *proxy, const char *md5, const char *lang) { xs *actor = NULL; xs_html *actor_icon = NULL; @@ -341,7 +342,6 @@ xs_html *html_msg_icon(snac *user, const char *actor_id, const xs_dict *msg, con const char *date = NULL; const char *udate = NULL; const char *url = NULL; - const char *lang = NULL; int priv = 0; const char *type = xs_dict_get(msg, "type"); @@ -353,16 +353,6 @@ xs_html *html_msg_icon(snac *user, const char *actor_id, const xs_dict *msg, con date = xs_dict_get(msg, "published"); udate = xs_dict_get(msg, "updated"); - lang = xs_dict_get(msg, "contentMap"); - if (xs_is_dict(lang)) { - const char *v; - int c = 0; - - xs_dict_next(lang, &lang, &v, &c); - } - else - lang = NULL; - actor_icon = html_actor_icon(user, actor, date, udate, url, priv, 0, proxy, lang, md5); } @@ -1951,6 +1941,15 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only, return xs_html_tag("mark", xs_html_text(L("Truncated (too deep)"))); + const char *lang = NULL; + const xs_dict *cmap = xs_dict_get(msg, "contentMap"); + if (xs_is_dict(cmap)) { + const char *dummy; + int c = 0; + + xs_dict_next(cmap, &lang, &dummy, &c); + } + if (strcmp(type, "Follow") == 0) { return xs_html_tag("div", xs_html_attr("class", "snac-post"), @@ -1959,7 +1958,7 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only, xs_html_tag("div", xs_html_attr("class", "snac-origin"), xs_html_text(L("follows you"))), - html_msg_icon(read_only ? NULL : user, xs_dict_get(msg, "actor"), msg, proxy, NULL))); + html_msg_icon(read_only ? NULL : user, xs_dict_get(msg, "actor"), msg, proxy, NULL, lang))); } else if (!xs_match(type, POSTLIKE_OBJECT_TYPE)) { @@ -2140,13 +2139,17 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only, } xs_html_add(post_header, - html_msg_icon(read_only ? NULL : user, actor, msg, proxy, md5)); + html_msg_icon(read_only ? NULL : user, actor, msg, proxy, md5, lang)); /** post content **/ xs_html *snac_content_wrap = xs_html_tag("div", xs_html_attr("class", "e-content snac-content")); + if (xs_is_string(lang)) + xs_html_add(snac_content_wrap, + xs_html_attr("lang", lang)); + xs_html_add(entry, snac_content_wrap); -- cgit v1.2.3 From 2b2b66ed8d510a789fb7158ecfb2c120744eccb9 Mon Sep 17 00:00:00 2001 From: grunfink Date: Tue, 20 May 2025 06:33:46 +0200 Subject: Updated RELEASE_NOTES. --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 21c2153..484e425 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,8 @@ The number of pending follow confirmations is shown next to the "people" link. +Faster performance metrics (contributed by dandelions). + Mastodon API: added follow confirmation endpoints. ## 2.77 "Ugly Links Everywhere" -- cgit v1.2.3 From bf94f6af7741f488f96deb16071707f11e692550 Mon Sep 17 00:00:00 2001 From: postscriptum Date: Tue, 20 May 2025 21:29:17 +0300 Subject: make greetings theme adaptive; define style in header --- utils.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils.c b/utils.c index 576b17c..d50707a 100644 --- a/utils.c +++ b/utils.c @@ -101,8 +101,9 @@ static const char *greeting_html = "\n" "\n" "\n" + "\n" "Welcome to %host%\n\n" - "\n" + "\n" "%blurb%" "

The following users are part of this community:

\n" "\n" -- cgit v1.2.3