]> git.sesse.net Git - vlc/blobdiff - src/modules/entry.c
Support for custom text domain in module strings
[vlc] / src / modules / entry.c
index 4bc4b8fe6c641abcd458734c8293a795711b4816..909d40171b404be65f1045b3e5d1234de5bd7cfe 100644 (file)
@@ -23,7 +23,7 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
 #include <vlc_plugin.h>
 #include <assert.h>
 #include <stdarg.h>
@@ -108,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 *);
@@ -128,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;
@@ -151,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);