[Geany-devel] Localization of plugin names in plugin manager
earshinov at xxxxx
Thu Sep 3 18:44:07 UTC 2009
Nick Treleaven wrote:
> On Thu, 03 Sep 2009 12:10:21 +0400
> Eugene Arshinov <earshinov at gmail.com> wrote:
>> The trouble: in plugin manager plugin name (and also its description) is
>> not localized until plugin is activated. The cause (probably):
>> main_locale_init(LOCALEDIR, GETTEXT_PACKAGE) is called only in
>> plugin_init(), and plugin_set_info() is obviously called before that.
>> I see two ways to fix this problem. The first way is very ugly and
>> limitating: just call main_locale_init() from plugin_set_info(), and
>> recompile all
>> plugins. The second way is to add new function to be implemented in
>> plugins (say, "plugin_loaded") and call that before anything else
>> (particularly, before plugin_set_info()).
>> So, the question is how to solve this problem.
> I would prefer calling main_locale_init() from plugin_set_info(),
> but would that have much of a performance impact for the plugin
> manager dialog? I guess it's probably necessary though.
It's hard to guess for me whether the slowdown would be large. I tried
to measure execution time of main_locale_init() in addons plugin, but it
returned 0 msec...
clock_t t = clock();
g_debug("Function main_locale_init() took %f msec.",
(double)(clock() - t) * 1000 / CLOCKS_PER_SEC);
> The other question is how to implement this with the PLUGIN_SET_INFO
> macro so main_locale_init() is called correctly (and only when
> necessary?) for all plugins.
Function plugin_set_info() is called exactly once after a plugin is
loaded. Function main_locale_init() should be called at least once (the
less calls the better) after a plugin is loaded, as far as I understand
what this call does (I had very little experience with gettext). So why
not just put a single call into PLUGIN_SET_INFO?
void plugin_set_info(PluginInfo* info) \
main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); \
info->name = (p_name); \
info->description = (p_description); \
info->version = (p_version); \
info->author = (p_author); \
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Devel