Activation: b-a-s problems.
Michael Meeks
michael@ximian.com
Tue, 06 Jan 2004 09:25:00 +0000
On Mon, 2004-01-05 at 23:26, Havoc Pennington wrote:
> 2. We fix gettext, perhaps with GTK support for something like a
> language per toplevel window
Well - it'd be nice to fix gettext of course; however you still have to
propagate a huge chunk of context around your application to get this to
work; it's a lot of work to have
g_("Foo", gtk_window_get_i18n_context (toplevel))
or worse all over the shop.
> 3. For now we just dictate that you have to use the same language for
> the whole session (seems more feasible in a Unicode age)
This is essentially the decision that people complain about; although
it is clearly highly attractive; they also want the full set of LC_*
behavior.
> The option I don't like is:
>
> 5. The service with name "foo" can be in language A or B depending on
> where/how it was activated
>
> I don't think option 5 works around the gettext problem, anyhow, it just
> happens to work with "LANG=foo bar" if bar hasn't been launched yet.
>
> So what I'm saying is, if we want a service named "Spreadsheet,LANG=foo"
> then that's fine, but if we want a service named "Spreadsheet" with LANG
> determined by the activator, that seems broken.
I think perhaps my confusion with the above sentence stems from the
fact that you assume a service name maps to a single unique process,
activation not being context aware at all; I was trying to discuss
whether activation being context aware was a good idea.
Either way - it comes back down to where we started: my contention that
things like activating : "Spreadsheet,LANG=foo" we thought was generally
the wrong approach - since the activator had to determine the scope and
capabilities of the activated[1], whereas arguably the component that is
activated might want to determine that. Of course - that is all
predicated on not attaching an arbitrary amount of state to each method
invocation, and assuming that some client/context can be stored at the
server (such as per-client LANG). If so - then perhaps gedit can't cope
with per-client LANG but kedit can, both implementing the same service
name - which means you've tied the client to the server implementation
(?).
> If we have a generic "unique application" facility, then that should
> cover the display/screen issue.
So one would hope; but that was just another prominent example of
client context being important in an activation.
Regards,
Michael.
[1] - ie. that is if spreadsheet,LANG=baa implicitely activates another
process.
--
michael@ximian.com <><, Pseudo Engineer, itinerant idiot