<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Right. Here some points that I think you should have in mind (we did, and went well):</div><div>- you can't fail. An exception in string will get the image down. That's why &nbsp;our version has a context wrapping all and capturing an error just to do nothing but return the same string.</div><div>- Our convention is that a session will take care of the translatable but we didn't assume things about its parent (nor its name) to make it application neutral.</div><div>- We thought about using the context (of the text) to be defined by the component from where that text came but we decided not to do that unless is absolutely necessary. Turns out our lazy guess were right because we still managed to do everything without that (without relinquishing UI expressivity). But if things are going to evolve, something to provide contextual info is the way to go (as you guys did).</div><div>- Caching per session is largely suboptimal. I can't think of a situation where you need to cache translated stuff per session. Try to do that caching per application instead. You should get response times that are "slower" only for the first session. Once warm, everything that comes next for that app should be a lot faster.</div><div><br></div><div><div><a href="http://twitter.com/sebastianconcpt">sebastian</a></div><div><br></div><div>o/</div></div><div><br></div><div><br></div><br><div><div>On Nov 17, 2010, at 12:18 AM, Levente Uzonyi wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On Tue, 16 Nov 2010, Sebastian Sastre wrote:<br><br><blockquote type="cite">Okay, here: Multiligual web applications design ala Smalltalk<br></blockquote><br>We implemented this a bit differently (in Seaside 2.8). In Squeak String <br><blockquote type="cite"><blockquote type="cite">#translated is already used, so we're using #localized as the selector:<br></blockquote></blockquote><br>String &gt;&gt; localized<br><br><span class="Apple-tab-span" style="white-space:pre">        </span>| session |<br><span class="Apple-tab-span" style="white-space:pre">        </span>(session := WACurrentSession value) ifNil: [ ^self ].<br><span class="Apple-tab-span" style="white-space:pre">        </span>^session translator<br><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>translate: self<br><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>inContext: session parent name<br><br>The context is important, because the same phrase may have different translations in different contexts. There's a default context which is used as a fallback during lookup. If a phrase doesn't have a translation in the requested context, the default context is used. There's also String <br><blockquote type="cite"><blockquote type="cite">#localizedInContext: which lets you pass a custom context if necessary.<br></blockquote></blockquote><br>There's a global Translator singleton that maps languages to translators (for that language). A translator for a language has a single dictionary which maps context-phrase pairs to their translations. All phrases are in english by default, so there's no lookup if the language is english.<br><br>The translator objects are cached by the session.<br><br>The db is looked up every time a translation is missing for a context-phrase pair. If there's a match in the database, then it's stored, otherwise not.<br><br>Concurrent access is implemented by copy-on-write. This may sound inefficient, but it works well with a few thousand phrases and less than 100 contexts.<br><br>We also have a decoration which collects translations on the current page. This allows the user (editor) to translate them during viewing. It's implemented with notifications.<br><br><br>Levente<br><br>Btw, there's a bug in your blog app. It refreshes every second if there's no session data in the url when a post is viewed.<br><br><blockquote type="cite"><br></blockquote><blockquote type="cite">sebastian<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">o/<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On Nov 15, 2010, at 2:17 PM, Pablo Gancharov wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Yes me too!<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">2010/11/15 &lt;<a href="mailto:seaside-request@lists.squeakfoundation.org">seaside-request@lists.squeakfoundation.org</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Send seaside mailing list submissions to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">To subscribe or unsubscribe via the World Wide Web, visit<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">or, via email, send a message with subject or body 'help' to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:seaside-request@lists.squeakfoundation.org">seaside-request@lists.squeakfoundation.org</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">You can reach the person managing the list at<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:seaside-owner@lists.squeakfoundation.org">seaside-owner@lists.squeakfoundation.org</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">When replying, please edit your Subject line so it is more specific<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">than "Re: Contents of seaside digest..."<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Today's Topics:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;1. Re: multilanguage (AA)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;2. Re: making a read-only checkbox (Gilles Schtickzelle)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;3. Re: making a read-only checkbox (Diogenes Moreira)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">----------------------------------------------------------------------<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Message: 1<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Date: Mon, 15 Nov 2010 12:04:21 +0000<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">From: AA &lt;<a href="mailto:aa@serendip.demon.co.uk">aa@serendip.demon.co.uk</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Subject: Re: [Seaside] multilanguage<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">To: <a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Message-ID: &lt;<a href="mailto:20101115120421.d4580e44.aa@serendip.demon.co.uk">20101115120421.d4580e44.aa@serendip.demon.co.uk</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Content-Type: text/plain; charset=US-ASCII<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Yes, please! I'd love to hear details about how you did this...<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Amir<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">On Sat, 13 Nov 2010 14:34:25 -0200<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Sebastian Sastre &lt;<a href="mailto:sebastian@flowingconcept.com">sebastian@flowingconcept.com</a>&gt; wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Hi Carlos,<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">our apps are trilingual and we basically implemented #translated in String to delegate what to do to the session. Then the session decides the destination language and delegates the translation to the polyglot helper we've made.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Once you have that, all you need is a little webapp that allows you to edit the phrases of each translation.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I can promise you that this is not big deal, maybe I should blog details about it<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">sebastian<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">------------------------------<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Message: 2<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Date: Mon, 15 Nov 2010 12:17:07 +0100<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">From: Gilles Schtickzelle &lt;<a href="mailto:gschtick@gmail.com">gschtick@gmail.com</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Subject: Re: [Seaside] making a read-only checkbox<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">To: Seaside - general discussion &lt;<a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Message-ID:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<a href="mailto:AANLkTi=T_Vy-y_h10EsATNUkXEK72VvDevLRZvzsFnqm@mail.gmail.com">AANLkTi=T_Vy-y_h10EsATNUkXEK72VvDevLRZvzsFnqm@mail.gmail.com</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Content-Type: text/plain; charset="iso-8859-1"<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Ah yes thank you!<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">I had tried to add a 'disabled: true' but apparently I put it at the wrong<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">place and it wasn't working.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Now it's all good thanks.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">On Mon, Nov 15, 2010 at 11:51 AM, Nick Ager &lt;<a href="mailto:nick.ager@gmail.com">nick.ager@gmail.com</a>&gt; wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Hi Giles,<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I have a form with a bunch of checkboxes. I want some of them to be<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">disabled depending on wether some other are checked or not.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I just can't figure out how to make a read-only checkbox (so that it would<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">still show but would be greyed out).<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Try:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">html checkbox<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> value: true;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">disabled: true;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">with: 'a disabled checkbox'<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">#disabled: works for all form elements.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Is there such a thing in seaside (optimally with jquery so they can be<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">updated on the fly when the user check/uncheck a box).<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">html checkbox<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> id: #myDisabledCheckbox;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">value: true;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">disabled: true;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> with: 'a disabled checkbox'.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> html checkbox<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> value: true;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">onClick: ((html jQuery: #myDisabledCheckbox) attributeAt: 'checked' put:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">(html jQuery this attributeAt: 'checked'));<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> with: 'mirror the other checkbox'<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">To put this example together I Googled 'jQuery checkbox' - found<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://www.electrictoolbox.com/check-uncheck-checkbox-jquery/">http://www.electrictoolbox.com/check-uncheck-checkbox-jquery/</a> then<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">translated the result into Seaside jQuery.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Hope this helps<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Nick<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">seaside mailing list<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">-------------- next part --------------<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">An HTML attachment was scrubbed...<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">URL: <a href="http://lists.squeakfoundation.org/pipermail/seaside/attachments/20101115/68ef2694/attachment.html">http://lists.squeakfoundation.org/pipermail/seaside/attachments/20101115/68ef2694/attachment.html</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">------------------------------<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Message: 3<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Date: Mon, 15 Nov 2010 08:53:12 -0300<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">From: Diogenes Moreira &lt;<a href="mailto:diogenes.moreira@gmail.com">diogenes.moreira@gmail.com</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Subject: Re: [Seaside] making a read-only checkbox<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">To: Seaside - general discussion &lt;<a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Message-ID:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<a href="mailto:AANLkTi=3aFRs-3vDi_m2v119SV527ZU5R++=L49EFGzn@mail.gmail.com">AANLkTi=3aFRs-3vDi_m2v119SV527ZU5R++=L49EFGzn@mail.gmail.com</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Content-Type: text/plain; charset=ISO-8859-1<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Here the net, not only the fish...<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">The next when you need knows a property in a seaside object, take a<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">look to WAHtmlCanvas and WARenderCanvas, in that objects methods<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">seaside builds the htmls components. In your case, in your case the<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">object whon represent to checkbox is WACheckboxTag.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Otherwise, if the standars object don't have the properties/messages<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">(that is very extrange, but may be happend) that you need, you can use<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">message attributesAt:put: to set an other properties<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Best Regards<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">2010/11/15, Gilles Schtickzelle &lt;<a href="mailto:gschtick@gmail.com">gschtick@gmail.com</a>&gt;:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Ah yes thank you!<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I had tried to add a 'disabled: true' but apparently I put it at the wrong<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">place and it wasn't working.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Now it's all good thanks.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">On Mon, Nov 15, 2010 at 11:51 AM, Nick Ager &lt;<a href="mailto:nick.ager@gmail.com">nick.ager@gmail.com</a>&gt; wrote:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Hi Giles,<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I have a form with a bunch of checkboxes. I want some of them to be<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">disabled depending on wether some other are checked or not.<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I just can't figure out how to make a read-only checkbox (so that it<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">would<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">still show but would be greyed out).<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Try:<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">html checkbox<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> value: true;<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">disabled: true;<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">with: 'a disabled checkbox'<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">#disabled: works for all form elements.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Is there such a thing in seaside (optimally with jquery so they can be<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">updated on the fly when the user check/uncheck a box).<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">html checkbox<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> id: #myDisabledCheckbox;<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">value: true;<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">disabled: true;<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> with: 'a disabled checkbox'.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> html checkbox<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> value: true;<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">onClick: ((html jQuery: #myDisabledCheckbox) attributeAt: 'checked' put:<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">(html jQuery this attributeAt: 'checked'));<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> with: 'mirror the other checkbox'<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">To put this example together I Googled 'jQuery checkbox' - found<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://www.electrictoolbox.com/check-uncheck-checkbox-jquery/">http://www.electrictoolbox.com/check-uncheck-checkbox-jquery/</a> then<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">translated the result into Seaside jQuery.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Hope this helps<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Nick<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">seaside mailing list<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">--<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Enviado desde mi dispositivo móvil<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">------------------------------<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">seaside mailing list<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">End of seaside Digest, Vol 95, Issue 30<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">***************************************<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">seaside mailing list<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"></blockquote>_______________________________________________<br>seaside mailing list<br><a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside<br></div></blockquote></div><br></body></html>