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 <david.hennings...@canonical.com> --- 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 -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pulseaudio in Ubuntu. https://bugs.launchpad.net/bugs/1445358 Title: Pulseaudio fails to run when system's language is in certain non- English locales Status in pulseaudio package in Ubuntu: In Progress Bug description: Changing the System Language in Greek resulted in the corruption of the sound in the entire system. This happened when the latest updates applied and after a reboot. I have attempted a new installation in Greek getting the latest ISO image and the problem exists there as well. If I go back (turn the system) to the English Language and reboot the problem disappears. I have also tested another Language (Russian Localization) but the problem does not occur. How to reproduce: Apply the latest updates and install the Greek language packages (language-pack-el , language-pack-el-base). Choose Greek as the system's language and reboot. ProblemType: Bug DistroRelease: Ubuntu 15.04 Package: pulseaudio 1:6.0-0ubuntu5 ProcVersionSignature: Ubuntu 3.19.0-14.14-generic 3.19.3 Uname: Linux 3.19.0-14-generic x86_64 ApportVersion: 2.17.1-0ubuntu2 Architecture: amd64 AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/hwC1D0', '/dev/snd/pcmC1D0c', '/dev/snd/pcmC1D0p', '/dev/snd/controlC1', '/dev/snd/hwC0D0', '/dev/snd/pcmC0D8p', '/dev/snd/by-path', '/dev/snd/pcmC0D7p', '/dev/snd/pcmC0D3p', '/dev/snd/controlC0', '/dev/snd/timer', '/dev/snd/seq'] failed with exit code 1: CurrentDesktop: Unity Date: Fri Apr 17 09:48:39 2015 InstallationDate: Installed on 2015-04-15 (1 days ago) InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Beta amd64 (20150415) SourcePackage: pulseaudio Symptom: audio Symptom_Card: HDA-Intel - HDA Intel PCH Symptom_Jack: Speaker, Internal Title: [SVF1532X1EB, Realtek ALC233, Speaker, Internal] Pulseaudio fails to detect card UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 09/19/2014 dmi.bios.vendor: Insyde Corp. dmi.bios.version: R1080DB dmi.board.asset.tag: N/A dmi.board.name: VAIO dmi.board.vendor: Sony Corporation dmi.board.version: N/A dmi.chassis.asset.tag: N/A dmi.chassis.type: 10 dmi.chassis.vendor: Sony Corporation dmi.chassis.version: N/A dmi.modalias: dmi:bvnInsydeCorp.:bvrR1080DB:bd09/19/2014:svnSonyCorporation:pnSVF1532X1EB:pvrC10KBNMG:rvnSonyCorporation:rnVAIO:rvrN/A:cvnSonyCorporation:ct10:cvrN/A: dmi.product.name: SVF1532X1EB dmi.product.version: C10KBNMG dmi.sys.vendor: Sony Corporation To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1445358/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp