diff --git a/spa/plugins/alsa/acp/acp.c b/spa/plugins/alsa/acp/acp.c index b8802ec8a..bf84a2ed6 100644 --- a/spa/plugins/alsa/acp/acp.c +++ b/spa/plugins/alsa/acp/acp.c @@ -30,6 +30,8 @@ int _acp_log_level = 1; acp_log_func _acp_log_func; void *_acp_log_data; +struct spa_i18n *acp_i18n; + #define VOLUME_ACCURACY (PA_VOLUME_NORM/100) /* don't require volume adjustments to be perfectly correct. don't necessarily extend granularity in software unless the differences get greater than this level */ static const uint32_t channel_table[PA_CHANNEL_POSITION_MAX] = { diff --git a/spa/plugins/alsa/acp/compat.h b/spa/plugins/alsa/acp/compat.h index d6c3c4904..a9580fe07 100644 --- a/spa/plugins/alsa/acp/compat.h +++ b/spa/plugins/alsa/acp/compat.h @@ -586,8 +586,16 @@ static inline char *pa_readlink(const char *p) { #endif } -#define _(...) (__VA_ARGS__) -#define N_(...) (__VA_ARGS__) +#include + +extern struct spa_i18n *acp_i18n; + +#define _(String) spa_i18n_gettext(acp_i18n, String) +#ifdef gettext_noop +#define N_(String) gettext_noop(String) +#else +#define N_(String) (String) +#endif #include "channelmap.h" #include "volume.h" diff --git a/spa/plugins/alsa/alsa-acp-device.c b/spa/plugins/alsa/alsa-acp-device.c index 7069c7849..a52faa450 100644 --- a/spa/plugins/alsa/alsa-acp-device.c +++ b/spa/plugins/alsa/alsa-acp-device.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -48,6 +49,8 @@ #include "acp/acp.h" +extern struct spa_i18n *acp_i18n; + #define NAME "alsa-device" #define MAX_POLL 16 @@ -927,6 +930,7 @@ impl_init(const struct spa_handle_factory *factory, this->log = spa_support_find(support, n_support, SPA_TYPE_INTERFACE_Log); this->loop = spa_support_find(support, n_support, SPA_TYPE_INTERFACE_Loop); + acp_i18n = spa_support_find(support, n_support, SPA_TYPE_INTERFACE_I18N); if (this->loop == NULL) { spa_log_error(this->log, "a Loop interface is needed"); return -EINVAL;