mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
agent: Use different translation func for Pinentry strings.
* po/Makevars (XGETTEXT_OPTIONS): Add keyword "L_". * common/i18n.c (i18n_localegettext): New stub. * common/i18n.h: Expand the LunderscoreIMPL macro. * agent/agent.h (L_): New. (LunderscoreIMPL): New. * agent/call-pinentry.c (setup_qualitybar): Add arg ctrl anc change caller. * agent/findkey.c (try_unprotect_cb): Add local var ctrl. * agent/genkey.c (check_passphrase_constraints): Replace xtryasprintf by xtrystrdup to avoid gcc warning. Unfortinately this changes the string. (agent_ask_new_passphrase): Cleanup the use of initial_errtext. -- Static strings in gpg-agent need to be translated according to the locale set by the caller. This is required so that a gpg-agent can be started in one locale and a gpg can be run in another. If we don't do this the static strings (prompt, buttons) are not or in the wrong locale translated while dynamic strings (e.g. key description) uses the locale of gpg. This is only the first part of the change the actual local switching still needs to be implemented. Debian-bug-id: 788983 Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
d8bc89ab88
commit
e76d4c05b2
10 changed files with 135 additions and 105 deletions
|
@ -295,6 +295,21 @@ cache_mode_t;
|
|||
typedef int (*lookup_ttl_t)(const char *hexgrip);
|
||||
|
||||
|
||||
/* This is a special version of the usual _() gettext macro. It
|
||||
assumes a server connection control variable with the name "ctrl"
|
||||
and uses that to translate a string according to the locale set for
|
||||
the connection. The macro LunderscoreIMPL is used by i18n to
|
||||
actually define the inline function when needed. */
|
||||
#define L_(a) agent_Lunderscore (ctrl, (a))
|
||||
#define LunderscoreIMPL \
|
||||
static inline const char * \
|
||||
agent_Lunderscore (ctrl_t ctrl, const char *string) \
|
||||
{ \
|
||||
return ctrl? i18n_localegettext (ctrl->lc_messages, string) \
|
||||
/* */: gettext (string); \
|
||||
}
|
||||
|
||||
|
||||
/*-- gpg-agent.c --*/
|
||||
void agent_exit (int rc) GPGRT_GCC_A_NR; /* Also implemented in other tools */
|
||||
gpg_error_t agent_copy_startup_env (ctrl_t ctrl);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue