mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-09 13:30:06 -05:00
pipewire: add i18n interface to support
Implement the i18n interface and add it to support.
This commit is contained in:
parent
7ee23a046c
commit
0b5741e725
1 changed files with 37 additions and 0 deletions
|
|
@ -36,8 +36,11 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
#include <libintl.h>
|
||||||
|
|
||||||
#include <spa/utils/names.h>
|
#include <spa/utils/names.h>
|
||||||
#include <spa/support/cpu.h>
|
#include <spa/support/cpu.h>
|
||||||
|
#include <spa/support/i18n.h>
|
||||||
|
|
||||||
#include "pipewire.h"
|
#include "pipewire.h"
|
||||||
#include "private.h"
|
#include "private.h"
|
||||||
|
|
@ -72,6 +75,8 @@ struct support {
|
||||||
const char *plugin_dir;
|
const char *plugin_dir;
|
||||||
const char *support_lib;
|
const char *support_lib;
|
||||||
struct registry *registry;
|
struct registry *registry;
|
||||||
|
const char *i18n_domain;
|
||||||
|
struct spa_interface i18n_iface;
|
||||||
struct spa_support support[MAX_SUPPORT];
|
struct spa_support support[MAX_SUPPORT];
|
||||||
uint32_t n_support;
|
uint32_t n_support;
|
||||||
unsigned int in_valgrind:1;
|
unsigned int in_valgrind:1;
|
||||||
|
|
@ -340,6 +345,35 @@ static void *add_interface(struct support *support,
|
||||||
return iface;
|
return iface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *i18n_text(void *object, const char *msgid)
|
||||||
|
{
|
||||||
|
struct support *support = object;
|
||||||
|
return dgettext(support->i18n_domain, msgid);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *i18n_ntext(void *object, const char *msgid, const char *msgid_plural,
|
||||||
|
unsigned long int n)
|
||||||
|
{
|
||||||
|
struct support *support = object;
|
||||||
|
return dngettext(support->i18n_domain, msgid, msgid_plural, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *add_i18n(struct support *support)
|
||||||
|
{
|
||||||
|
static struct spa_i18n_methods i18n_methods = {
|
||||||
|
SPA_VERSION_I18N_METHODS,
|
||||||
|
.text = i18n_text,
|
||||||
|
.ntext = i18n_ntext,
|
||||||
|
};
|
||||||
|
support->i18n_iface = SPA_INTERFACE_INIT(
|
||||||
|
SPA_TYPE_INTERFACE_I18N,
|
||||||
|
SPA_VERSION_I18N,
|
||||||
|
&i18n_methods, support);
|
||||||
|
support->support[support->n_support++] =
|
||||||
|
SPA_SUPPORT_INIT(SPA_TYPE_INTERFACE_I18N, &support->i18n_iface);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_SYSTEMD
|
#ifdef HAVE_SYSTEMD
|
||||||
static struct spa_log *load_journal_logger(struct support *support)
|
static struct spa_log *load_journal_logger(struct support *support)
|
||||||
{
|
{
|
||||||
|
|
@ -459,6 +493,9 @@ void pw_init(int *argc, char **argv[])
|
||||||
info = SPA_DICT_INIT(items, n_items);
|
info = SPA_DICT_INIT(items, n_items);
|
||||||
|
|
||||||
add_interface(support, SPA_NAME_SUPPORT_CPU, SPA_TYPE_INTERFACE_CPU, &info);
|
add_interface(support, SPA_NAME_SUPPORT_CPU, SPA_TYPE_INTERFACE_CPU, &info);
|
||||||
|
|
||||||
|
add_i18n(support);
|
||||||
|
|
||||||
pw_log_info("version %s", pw_get_library_version());
|
pw_log_info("version %s", pw_get_library_version());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue