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:
parent
982f45c8c7
commit
e6463d7fe0
12 changed files with 410 additions and 79 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 --*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue