We currently use pa_yes_no to write module arguments, so they can not be localised. Instead add a new pa_yes_no_localised function and use it in pactl (and thus, revert all other places to use the non-localised version).
BugLink: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1445358 Signed-off-by: David Henningsson <email address hidden> --- src/pulsecore/core-util.h | 4 ++++ src/utils/pactl.c | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h index dcdc40e..d5a2d39 100644 --- a/src/pulsecore/core-util.h +++ b/src/pulsecore/core-util.h @@ -90,6 +90,10 @@ int pa_parse_boolean(const char *s) PA_GCC_PURE; int pa_parse_volume(const char *s, pa_volume_t *volume);
static inline const char *pa_yes_no(bool b) { + return b ? "yes" : "no"; +} + +static inline const char *pa_yes_no_localised(bool b) { return b ? _("yes") : _("no"); }
diff --git a/src/utils/pactl.c b/src/utils/pactl.c index a13c7fb..d6791d4 100644 --- a/src/utils/pactl.c +++ b/src/utils/pactl.c @@ -196,7 +196,7 @@ static void get_server_info_callback(pa_context *c, const pa_server_info *i, voi pa_context_get_server(c), pa_context_get_protocol_version(c), pa_context_get_server_protocol_version(c), - pa_yes_no(pa_context_is_local(c)), + pa_yes_no_localised(pa_context_is_local(c)), pa_context_get_index(c), pa_context_get_tile_size(c, NULL));
@@ -302,7 +302,7 @@ static void get_sink_info_callback(pa_context *c, const pa_sink_info *i, int is_ pa_sample_spec_snprint(s, sizeof(s), &i->sample_spec), pa_channel_map_snprint(cm, sizeof(cm), &i->channel_map), i->owner_module, - pa_yes_no(i->mute), + pa_yes_no_localised(i->mute), pa_cvolume_snprint_verbose(cv, sizeof(cv), &i->volume, &i->channel_map, i->flags & PA_SINK_DECIBEL_VOLUME), pa_cvolume_get_balance(&i->volume, &i->channel_map), pa_volume_snprint_verbose(v, sizeof(v), i->base_volume, i->flags & PA_SINK_DECIBEL_VOLUME), @@ -409,7 +409,7 @@ static void get_source_info_callback(pa_context *c, const pa_source_info *i, int pa_sample_spec_snprint(s, sizeof(s), &i->sample_spec), pa_channel_map_snprint(cm, sizeof(cm), &i->channel_map), i->owner_module, - pa_yes_no(i->mute), + pa_yes_no_localised(i->mute), pa_cvolume_snprint_verbose(cv, sizeof(cv), &i->volume, &i->channel_map, i->flags & PA_SOURCE_DECIBEL_VOLUME), pa_cvolume_get_balance(&i->volume, &i->channel_map), pa_volume_snprint_verbose(v, sizeof(v), i->base_volume, i->flags & PA_SOURCE_DECIBEL_VOLUME), @@ -578,8 +578,8 @@ static void get_card_info_callback(pa_context *c, const pa_card_info *i, int is_
printf(_("\tProfiles:\n")); for (p = i->profiles2; *p; p++) - printf("\t\t%s: %s (sinks: %u, sources: %u, priority: %u, available: %s)\n", (*p)->name, - (*p)->description, (*p)->n_sinks, (*p)->n_sources, (*p)->priority, pa_yes_no((*p)->available)); + printf(_("\t\t%s: %s (sinks: %u, sources: %u, priority: %u, available: %s)\n"), (*p)->name, + (*p)->description, (*p)->n_sinks, (*p)->n_sources, (*p)->priority, pa_yes_no_localised((*p)->available)); }
if (i->active_profile) @@ -672,8 +672,8 @@ static void get_sink_input_info_callback(pa_context *c, const pa_sink_input_info pa_sample_spec_snprint(s, sizeof(s), &i->sample_spec), pa_channel_map_snprint(cm, sizeof(cm), &i->channel_map), pa_format_info_snprint(f, sizeof(f), i->format), - pa_yes_no(i->corked), - pa_yes_no(i->mute), + pa_yes_no_localised(i->corked), + pa_yes_no_localised(i->mute), pa_cvolume_snprint_verbose(cv, sizeof(cv), &i->volume, &i->channel_map, true), pa_cvolume_get_balance(&i->volume, &i->channel_map), (double) i->buffer_usec, @@ -742,8 +742,8 @@ static void get_source_output_info_callback(pa_context *c, const pa_source_outpu pa_sample_spec_snprint(s, sizeof(s), &i->sample_spec), pa_channel_map_snprint(cm, sizeof(cm), &i->channel_map), pa_format_info_snprint(f, sizeof(f), i->format), - pa_yes_no(i->corked), - pa_yes_no(i->mute), + pa_yes_no_localised(i->corked), + pa_yes_no_localised(i->mute), pa_cvolume_snprint_verbose(cv, sizeof(cv), &i->volume, &i->channel_map, true), pa_cvolume_get_balance(&i->volume, &i->channel_map), (double) i->buffer_usec, @@ -805,7 +805,7 @@ static void get_sample_info_callback(pa_context *c, const pa_sample_info *i, int pa_cvolume_get_balance(&i->volume, &i->channel_map), (double) i->duration/1000000.0, t, - pa_yes_no(i->lazy), + pa_yes_no_localised(i->lazy), i->filename ? i->filename : _("n/a"), pl = pa_proplist_to_string_sep(i->proplist, "\n\t\t"));
-- 1.9.1
We currently use pa_yes_no to write module arguments, so they can not be
localised. Instead add a new pa_yes_no_localised function and use it in pactl
(and thus, revert all other places to use the non-localised version).
BugLink: https:/ /bugs.launchpad .net/ubuntu/ +source/ pulseaudio/ +bug/1445358 core-util. h | 4 ++++ +++---- ------
Signed-off-by: David Henningsson <email address hidden>
---
src/pulsecore/
src/utils/pactl.c | 20 +++++++
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/src/pulsecore /core-util. h b/src/pulsecore /core-util. h /core-util. h /core-util. h boolean( const char *s) PA_GCC_PURE; volume( const char *s, pa_volume_t *volume);
index dcdc40e..d5a2d39 100644
--- a/src/pulsecore
+++ b/src/pulsecore
@@ -90,6 +90,10 @@ int pa_parse_
int pa_parse_
static inline const char *pa_yes_no(bool b) { no_localised( bool b) {
+ return b ? "yes" : "no";
+}
+
+static inline const char *pa_yes_
return b ? _("yes") : _("no");
}
diff --git a/src/utils/pactl.c b/src/utils/pactl.c info_callback( pa_context *c, const pa_server_info *i, voi
pa_context_ get_server( c),
pa_context_ get_protocol_ version( c),
pa_context_ get_server_ protocol_ version( c), no(pa_context_ is_local( c)), no_localised( pa_context_ is_local( c)),
pa_context_ get_index( c),
pa_context_ get_tile_ size(c, NULL));
index a13c7fb..d6791d4 100644
--- a/src/utils/pactl.c
+++ b/src/utils/pactl.c
@@ -196,7 +196,7 @@ static void get_server_
- pa_yes_
+ pa_yes_
@@ -302,7 +302,7 @@ static void get_sink_ info_callback( pa_context *c, const pa_sink_info *i, int is_
pa_ sample_ spec_snprint( s, sizeof(s), &i->sample_spec),
pa_ channel_ map_snprint( cm, sizeof(cm), &i->channel_map),
i- >owner_ module, no_localised( i->mute) ,
pa_ cvolume_ snprint_ verbose( cv, sizeof(cv), &i->volume, &i->channel_map, i->flags & PA_SINK_ DECIBEL_ VOLUME) ,
pa_ cvolume_ get_balance( &i->volume, &i->channel_map),
pa_ volume_ snprint_ verbose( v, sizeof(v), i->base_volume, i->flags & PA_SINK_ DECIBEL_ VOLUME) , info_callback( pa_context *c, const pa_source_info *i, int
pa_ sample_ spec_snprint( s, sizeof(s), &i->sample_spec),
pa_ channel_ map_snprint( cm, sizeof(cm), &i->channel_map),
i- >owner_ module, no_localised( i->mute) ,
pa_ cvolume_ snprint_ verbose( cv, sizeof(cv), &i->volume, &i->channel_map, i->flags & PA_SOURCE_ DECIBEL_ VOLUME) ,
pa_ cvolume_ get_balance( &i->volume, &i->channel_map),
pa_ volume_ snprint_ verbose( v, sizeof(v), i->base_volume, i->flags & PA_SOURCE_ DECIBEL_ VOLUME) , info_callback( pa_context *c, const pa_card_info *i, int is_
- pa_yes_no(i->mute),
+ pa_yes_
@@ -409,7 +409,7 @@ static void get_source_
- pa_yes_no(i->mute),
+ pa_yes_
@@ -578,8 +578,8 @@ static void get_card_
for (p = i->profiles2; *p; p++)
- printf("\t\t%s: %s (sinks: %u, sources: %u, priority: %u, available: %s)\n", (*p)->name,
- (*p)->description, (*p)->n_sinks, (*p)->n_sources, (*p)->priority, pa_yes_
+ printf(_("\t\t%s: %s (sinks: %u, sources: %u, priority: %u, available: %s)\n"), (*p)->name,
+ (*p)->description, (*p)->n_sinks, (*p)->n_sources, (*p)->priority, pa_yes_
}
if (i->active_profile) input_info_ callback( pa_context *c, const pa_sink_input_info
pa_ sample_ spec_snprint( s, sizeof(s), &i->sample_spec),
pa_ channel_ map_snprint( cm, sizeof(cm), &i->channel_map),
pa_ format_ info_snprint( f, sizeof(f), i->format), no(i->corked) , no_localised( i->corked) , no_localised( i->mute) ,
pa_ cvolume_ snprint_ verbose( cv, sizeof(cv), &i->volume, &i->channel_map, true),
pa_ cvolume_ get_balance( &i->volume, &i->channel_map),
(double) i->buffer_usec, output_ info_callback( pa_context *c, const pa_source_outpu
pa_ sample_ spec_snprint( s, sizeof(s), &i->sample_spec),
pa_ channel_ map_snprint( cm, sizeof(cm), &i->channel_map),
pa_ format_ info_snprint( f, sizeof(f), i->format), no(i->corked) , no_localised( i->corked) , no_localised( i->mute) ,
pa_ cvolume_ snprint_ verbose( cv, sizeof(cv), &i->volume, &i->channel_map, true),
pa_ cvolume_ get_balance( &i->volume, &i->channel_map),
(double) i->buffer_usec, info_callback( pa_context *c, const pa_sample_info *i, int
pa_ cvolume_ get_balance( &i->volume, &i->channel_map),
(double) i->duration/ 1000000. 0, no_localised( i->lazy) ,
i- >filename ? i->filename : _("n/a"), to_string_ sep(i-> proplist, "\n\t\t"));
@@ -672,8 +672,8 @@ static void get_sink_
- pa_yes_
- pa_yes_no(i->mute),
+ pa_yes_
+ pa_yes_
@@ -742,8 +742,8 @@ static void get_source_
- pa_yes_
- pa_yes_no(i->mute),
+ pa_yes_
+ pa_yes_
@@ -805,7 +805,7 @@ static void get_sample_
t,
- pa_yes_no(i->lazy),
+ pa_yes_
pl = pa_proplist_
--
1.9.1