Re: UI strings vs manual strings ?
Jean-Christophe Helary <[email protected]> Wed, 7 Dec 2022 09:09:30 +0900
| Newsgroups | gmane.text.docbook.apps |
|---|---|
| Message-ID | <[email protected]> |
Thank you all for the replies so far. Let me reply in one mail. > On Dec 6, 2022, at 21:44, Tony Graham <[email protected]> wrote: >=20 >> Problem at hand: >> - a Java application with ~2k UI strings (not all users facing), in >> a Bundle.properties file >=20 > Java also has an XML format for properties files. Interesting. It could be part of a solution (esp. considering = Florimond's reply). >> - a ~80K words DocBook manual >> It is not trivial to keep track of the whole string set (searches, = etc.) >> Also, the l10n process takes place on the DocBook sources, not on >> the HTML output, so tricks like <link linkend endterm/> don't work = because translators don't see the target terms. >=20 > Before translation, replace each <link/> with the replacement text = from > the XML properties file wrapped in a well-known element that still > carries the identifier for the properties file entry. >=20 > After translation, if necessary, convert the well-known elements back > into <link/> and also do something to handle the strings that have = been > translated differently in different places. The problem is that it's not possible to do that for a lot of languages. = There are inflected forms that transform the text of the "endterm" part = and the translation targets 3 dozen languages, including BiDi documents. That process would add another layer of transformation+verification. Or maybe I missed something? > Once you have the properties file for a second language, you could > insert the translated strings in place of <link/> when preparing for > translation. Alternatively, or as well, you could set up your > computer-aided translation tool to not translate the well-known = elements > for the strings and insert the translated strings after everything = else > is translated. It looks feasible but only with a small set of target languages. >> I'm left with having to rewrite the strings explicitly and that's a = pain, and also adds risks of mistakes in translations. >=20 > The more that you can automate, the better. Hence the question ;-) > On Dec 6, 2022, at 22:04, Alemps Florimond <[email protected]> = wrote: >=20 > Hello, >=20 > I would transform the bundle.properties in a document (article, book = or section whatever) > Each line of the file corresponds to somethine like : > <simpara><guilabel xml:id=3D"messageId">My = message</guilabel></simpara> >=20 > One element simpara for one guilabel is useless : it is just to make = it readable in a DocBook parse. Interesting. Considering that Java properties can also be expressed as XML there = could be some automation here. > In the document, you include the message - something like : > <para>You should see <xi:include href=3D"bundle.properties.xml" = xpointer=3D"messageId"> after clicking on the button.</para> >=20 > The French, English, German version of the document will take = advantage of the corresponding translated version of = bundle.properties.xml Why only those 3 languages? My understanding of xi:include is that it is not required to be resolved = before the actual documentation build process. Which means that the document to translate (and the way it is displayed = in the tool) is actually > <para>You should see <arbitrary link shortcut> after clicking on the = button.</para> Which is not different from what we have now with <link linkend = endterm/> > As far as no id message starts with a number (NC Name for xml:id) you = are ok. > With an XSLT 2.0 processor, it might even be possible to transform the = bundle.properties in XML. It looks like Java properties can be expressed as XML natively (see = above) so there is something to explore here. > On Dec 7, 2022, at 5:13, Jan Tosovsky <[email protected]> wrote: >=20 > On 05/12/2022 23:05, Jean-Christophe Helary wrote: >> What's the best way in a DocBook centered process to ensure that the=20= >> list of terms used in a software UI is (semi-automatically?) taken=20 >> into account in the DocBook sources that describe that software? >=20 > In your document you can use <guilabel> and other <gui* related = elements > which can indicate the content must match the GUI label. You can then > instruct the localization agency to follow this rule. > But there is no way to avoid human error so this still has to be = checked > manually which is inefficient.=20 The problem is not instructions, the problem is to lower the burden of = the translators by explicitly displaying the strings in the DocBook = sources. Creating a normative glossary from the UI strings first could be = something, but there are Windows/Linux mnemonics (&) characters in the = strings so we'd need to remove them to create that glossary and that = would add another step (which can be automatized I guess). Full disclosure: the manual is for OmegaT, a free software solution for = translators, that supports DocBook out of the box, and Java properties = too. I am project leader, also in charge of the manual, I made a close = to full rewrite of the thing this summer/fall to prepare for our next = release but I know that the solution that I chose (link linkend endterm) = is not optimal because the link contents/target is not available for = inflected modifications required in some languages. (And I also happen = to be a translation company, so I understand those issues quite well, = but it was my first time on the DocBook authoring side, the last time I = wrote the manual it was in HTML.) As mentioned above in the reply to Tony, the issue with some strings is = that they must be explicitly available for translation because some = languages need to modify them (grammatical inflections, etc.) > I've seen an interesting approach where any guilabel had a dedicated > attribute storing a termbase ID. While a guilabel value was present, = it was > just informative (for the author, to understand the context). The = actual > value was taken from the termbase during generating outputs. >=20 > So if GUI labels are linked to the same termbase, this system ensures = your > document will never diverge. Moreover, it is ensured also to all = translated > documents.=20 I'm not sure I understand how the termbase is linked to the document. > The hardest step is consolidating such a termbase and establishing = processes > on DEV and DOC sides so both departments use the termbase as a single = source > of truth. :-) --=20 Jean-Christophe Helary @[email protected] https://traductaire-libre.org https://mac4translators.blogspot.com https://sr.ht/~brandelune/omegat-as-a-book/