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

Reply via email to