]> git.sesse.net Git - vlc/blobdiff - src/modules/entry.c
Support for custom text domain in module strings
[vlc] / src / modules / entry.c
index 70816df31b19aaf8abb327f1d603c525523958c5..909d40171b404be65f1045b3e5d1234de5bd7cfe 100644 (file)
@@ -23,7 +23,8 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
 #include <assert.h>
 #include <stdarg.h>
 
@@ -107,17 +108,26 @@ int vlc_module_set (module_t *module, int propid, ...)
             break;
         }
 
-        case VLC_MODULE_SHORTNAME:
-            module->psz_shortname = va_arg (ap, char *);
+        case VLC_MODULE_SHORTNAME_NODOMAIN:
+        {
+            const char *name = va_arg (ap, char *);
+            ret = vlc_module_set (module, VLC_MODULE_SHORTNAME, NULL, name);
             break;
+        }
 
-        case VLC_MODULE_DESCRIPTION:
-            module->psz_longname = va_arg (ap, char *);
+        case VLC_MODULE_DESCRIPTION_NODOMAIN:
+        {
+            const char *desc = va_arg (ap, char *);
+            ret = vlc_module_set (module, VLC_MODULE_DESCRIPTION, NULL, desc);
             break;
+        }
 
-        case VLC_MODULE_HELP:
-            module->psz_help = va_arg (ap, char *);
+        case VLC_MODULE_HELP_NODOMAIN:
+        {
+            const char *help = va_arg (ap, char *);
+            ret = vlc_module_set (module, VLC_MODULE_HELP, NULL, help);
             break;
+        }
 
         case VLC_MODULE_CAPABILITY:
             module->psz_capability = va_arg (ap, char *);
@@ -127,6 +137,10 @@ int vlc_module_set (module_t *module, int propid, ...)
             module->i_score = va_arg (ap, int);
             break;
 
+        case VLC_MODULE_PROGRAM:
+            msg_Warn (module, "deprecated module property %d", propid);
+            break;
+
         case VLC_MODULE_CB_OPEN:
             module->pf_activate = va_arg (ap, int (*) (vlc_object_t *));
             break;
@@ -150,9 +164,32 @@ int vlc_module_set (module_t *module, int propid, ...)
             break;
         }
 
-        case VLC_MODULE_PROGRAM:
-            msg_Warn (module, "deprecated module property %d", propid);
+        case VLC_MODULE_SHORTNAME:
+        {
+            const char *domain = va_arg (ap, const char *);
+            if (domain == NULL)
+                domain = PACKAGE;
+            module->psz_shortname = dgettext (domain, va_arg (ap, char *));
+            break;
+        }
+
+        case VLC_MODULE_DESCRIPTION:
+        {
+            const char *domain = va_arg (ap, const char *);
+            if (domain == NULL)
+                domain = PACKAGE;
+            module->psz_longname = dgettext (domain, va_arg (ap, char *));
             break;
+        }
+
+        case VLC_MODULE_HELP:
+        {
+            const char *domain = va_arg (ap, const char *);
+            if (domain == NULL)
+                domain = PACKAGE;
+            module->psz_help = dgettext (domain, va_arg (ap, char *));
+            break;
+        }
 
         default:
             msg_Err (module, "unknown module property %d", propid);
@@ -220,8 +257,9 @@ int vlc_config_set (module_config_t *restrict item, int id, ...)
             const char *text = va_arg (ap, const char *);
             const char *longtext = va_arg (ap, const char *);
 
-            item->psz_text = text ? strdup ( _(text)) : NULL;
-            item->psz_longtext = longtext ? strdup ( _(longtext)) : NULL;
+            item->psz_text = text ? strdup (dgettext (PACKAGE, text)) : NULL;
+            item->psz_longtext =
+                longtext ? strdup (dgettext (PACKAGE, longtext)) : NULL;
             ret = 0;
             break;
         }
@@ -372,7 +410,8 @@ int vlc_config_set (module_config_t *restrict item, int id, ...)
             if (text != NULL)
             {
                 for (size_t i = 0; i < len; i++)
-                    dtext[i] = text[i] ? strdup ( _(text[i])) : NULL;
+                    dtext[i] =
+                        text[i] ? strdup (dgettext (PACKAGE, text[i])) : NULL;
 
                 dtext[len] = NULL;
                 item->ppsz_list_text = dtext;
@@ -410,7 +449,7 @@ int vlc_config_set (module_config_t *restrict item, int id, ...)
             item->ppsz_action_text = tabtext;
 
             if (name)
-                tabtext[item->i_action] = strdup ( _(name));
+                tabtext[item->i_action] = strdup (dgettext (PACKAGE, name));
             else
                 tabtext[item->i_action] = NULL;
             tabtext[item->i_action + 1] = NULL;