Nice work, Jonathan. Thoughts inline... On 04/05/2013 06:38 PM, Jonathan Fuerth wrote: > 1. I renamed the attribute data-i18n-skip=true to data-role=dummy, and > added tests
+1 - awesome > a. Eric suggested a heuristic for omitting certain elements from the > auto-generated translation bundle: if an element has a data-field > attribute, we should disregard even if its contents are text only. In > GroceryList, this heuristic was correct everywhere except <button> > elements. A workaround (not super-awesome, but it does work) is: > > <button data-field="fooButton"><span>Button Label</span></button> > > Better suggestions? As long as there is an i18n attribute that takes precedence (e.g. data-i18n-key="blah") I don't see why we couldn't exclude certain elements from the heuristic. That said, once Errai supports id and css based @DataField, the heuristic won't work as well. > c. What about eliminating the @Bundle annotation? We could search for > bundles either in the same package as the @Templated class, or in the > same package as the HTML template it points to. I'm all for this. The @Bundle annotation is really more of a holdover from when I was trying to implement this as a decorator. > d. Long bits of text with a little bit of markup in the millde are > problematic. Consider this example: > <snip> > And then allow HTML markup in translation values? We could treat them as > SafeHtml... If you add 'data-i18n-key="my-custom-key"' to the <p> element of that single thought, then the entire thing will get translated - mixed content or no. In addition, I'm setting the innerHtml, so any mixed content in the translation will work. Sort of the opposite of your suggestion of a data-inline attribute. > e. I think we should automatically consider placeholder and title > attributes as translatable. Perhaps there's a case for allowing end > users to override this default in ErraiApp.properties or in an attribute > of the @Bundle annotation if we keep it. I'm mostly thinking of custom > data-* attributes as a motivation for this. I believe placeholder and title attributes are already being picked up as translatable. > f. It would be kind of us to include a reusable language chooser widget > with well-documented CSS classnames. Seems like everyone is going to > need one of these. +1 > g. The default strings are already in the templates themselves. Is it > really actually useful to restate them in a default messages file? +1 - the default translation file is especially less useful if the @Bundle annotation goes away (which I think it should). > This widget (or TranslationService.setLocale()) should also > take care of translating the existing live DOM contents to the new language. +1 - I hadn't considered live-updating the DOM with the new language. But there's certainly nothing stopping this. > i. Bug: the i18n key scanner picked up "Declarative is Good" as a keys > in the following: > > <h3><i class="icon-thumbs-up"></i>Declarative is Good</h3> > > But the i18n translator did not apply the translation from the bundle. I suspect this is a jtidy issue. I believe jtidy will do all kinds of shennanigans with the HTML. Perhaps there are some flags that will minimize that. > j. I *love* the _missing JSON file that appears under .errai. Brilliant! :) _______________________________________________ errai-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/errai-dev
