Hi,

Does anybody on this list have experience with dual language editing 
with XXE? How do you layout both languages?

We would like to let users edit a document containing the same text in 2 
languages and we've come up with a document structure looking like this:

    <Multi-lingual-block>
        <p>A paragraph in English</p>
        <p>Same paragraph in French</p>
    </Multi-lingual-block>

Of course, users would like to see each p in separate column:

    A paragraph    Same paragraph
    in English.    in French.

We've been playing with 3 different methods to do this with XXE and none 
of them is really satisfying:

1. 2 views of the same doc

One view (i.e. style sheet) showing only EN, one showing only FR, both 
displayed simultaneously in XXE. We have a number of issues with this 
solution:
- need for special rules to insert/delete/copy/paste in both sides at 
the right place
- most importantly, XXE synchronises the views on the parent of the 
currently selected element, not on the element itself. This means that 
with a <div> containing several <p>, clicking inside the last <p> in one 
view will scroll the other view to the <div>, not to the (invisible) 
same <p>.

2. 2 columns

This is the ideal, but unfortunately not possible with XXE due to lack 
of support for float and width CSS properties. I wonder why XMLMind are 
not implementing this, as it seems many people would need it.

3. Using tables

For this, we need to add an otherwise useless container element around 
<Multi-lingual-block>, so that we can give a display:table to the 
container, a display:table-row to <Multi-lingual-block> and a 
display:table-cell to <p>.

Regarding these tables, I have a question following Hussein's response 
on this list:
http://www.xmlmind.com/pipermail/xmleditor-support/2006-February/003772.html

In your solution, you propose to generate an anonymous row and some 
cells on a list item:

ul.table {
    display: table;
}

ul.table > li {
    display: table-row;
    content: row(cell(content(icon(diamond), " ", counter(n),
                              " ", icon(diamond))),
                 cell(text-field(40)),
                 cell(insert-same-after-button()),
                 cell(insert-same-before-button()));
}

Here, the text node in each li is used to fill the <input> field. 
Obviously, it wouldn't work if the li contained elements, not just text. 
Is there any way to replace text-field(40) by some hook which would 
simply "apply-templates" (in XSLT terms) inside the generated cell?

This would allows us to generate anonymous tables (and rows and cells) 
for basically any element, without creating an articial container to 
support a display:table.


Interestingly, anonymous tables are not always problem. See :
http://www.xmlmind.com/xmleditor/_distrib/doc/csssupport/display_inline.html
The last option generates a row and some cells in the context of an 
inline element, without having a parent element with a display:table. 
Why can't we do this outside the context of generated content?

b.iir:after {
    display: inline;
    content: row(cell(icon(right)), 
                 cell("generated content"), 
                 cell(icon(left)),
                 border-width, 1, 
                 border-style, solid);
}



Best regards and thank you for your excellent support on this list,
Benoit


Reply via email to