1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00

wks: Use templates for the server responses.

* common/helpfile.c (gnupg_get_template): Add arg locale_override and
adjust all callers.
* tools/wks-receive.c (struct receive_ctx_s): Add field ct_language.
(get_language): New.
(new_part): Call it.
(wks_receive): Pass language to the result callback.
* tools/gpg-wks-client.c (short_locale): New.
(main): Get and store the current locale.
(command_create): Fix a glitch for the Posteo hack.  Insert the locale
into the confirmation request.
(send_confirmation_response): Ditto.
* tools/gpg-wks-server.c (struct server_ctx_s): Add field language.
(only_ascii): New.
(struct my_subst_vars_s, my_subst_vars_cb, my_subst_vars): New.
(send_confirmation_request): Use a template.
(send_congratulation_message): Ditto.
(check_and_publish): Pss ctx to send_congratulation_message.
(command_receive_cb): Add arg language.

* doc/wks-utils.txt, doc/wks-utils.de.txt: New.
* doc/Makefile.am (helpfiles): Add them.
--

GnuPG-bug-id: 7381

Note that the subject is not yet translated or templated due to a
missing header encoding function.
This commit is contained in:
Werner Koch 2025-06-02 12:42:59 +02:00
parent 982f45c8c7
commit e6463d7fe0
No known key found for this signature in database
GPG key ID: E3FDFF218E45B72B
12 changed files with 410 additions and 79 deletions

View file

@ -234,21 +234,25 @@ findkey_locale (const char *domain, const char *key, const char *locname,
intervening lines (except for comment lines) lead to the same help
text. Lines following the key lines make up the actual template texts.
*/
char *
gnupg_get_template (const char *domain, const char *key, unsigned int flags)
gnupg_get_template (const char *domain, const char *key, unsigned int flags,
const char *override_locale)
{
static const char *locname;
static const char *locname_buffer;
const char *locname;
char *result;
if (!locname)
if (override_locale && *override_locale)
locname = override_locale;
else if (!locname_buffer)
{
char *buffer, *p;
int count = 0;
const char *s = gnupg_messages_locale_name ();
buffer = xtrystrdup (s);
if (!buffer)
locname = "";
locname_buffer = "";
else
{
for (p = buffer; *p; p++)
@ -259,9 +263,12 @@ gnupg_get_template (const char *domain, const char *key, unsigned int flags)
if (count++)
*p = 0; /* Also cut at an underscore in the territory. */
}
locname = buffer;
locname_buffer = buffer;
}
locname = locname_buffer;
}
else
locname = locname_buffer;
if (!key || !*key)
return NULL;
@ -293,5 +300,6 @@ char *
gnupg_get_help_string (const char *key, int only_current)
{
return gnupg_get_template ("help", key,
only_current? GET_TEMPLATE_CURRENT_LOCALE : 0);
only_current? GET_TEMPLATE_CURRENT_LOCALE : 0,
NULL);
}

View file

@ -66,7 +66,7 @@ main (int argc, char **argv)
}
result = gnupg_get_template (argv[0], argv[1], flags);
result = gnupg_get_template (argv[0], argv[1], flags, NULL);
if (!result)
{
fprintf (stderr,

View file

@ -303,7 +303,7 @@ void gnupg_rl_initialize (void);
#define GET_TEMPLATE_CRLF 4 /* Use CR+LF. */
char *gnupg_get_template (const char *domain, const char *key,
unsigned int flags);
unsigned int flags, const char *override_locale);
char *gnupg_get_help_string (const char *key, int only_current_locale);
/*-- localename.c --*/