As usually happens when we near some deadline for releasables, I’ve been wielding a heavy axe in Docs CVS. I get very antsy about the state of our build tools for some reason, and start making what I hope are improvements. Made one fairly glaring mistake about dealing with XML general entities — which are useful creatures distinct from character entities — and I’m contemplating a more interesting solution in which we deal with entities on a locale-by-locale basis.
Locales where the language declines nouns or other parts of speech served by entities we would otherwise use would be served up their parsed counterparts. Entities like &FED; would be served up as “Fedora” so translators could translate the content like any other. In Slavic languages, for example, this can be rather important. In other languages such as Greek or Chinese, the word is left alone and the translator transcribes &FED; literally.
For words like “Fedora,” use of entities may sound like overkill, but for writers it is an absolute necessity. If I am writing a document all about a program like ethereal, I would usually make a general entity Ð which corresponded to the name “ethereal”, and then set a further entity ÐAPP; which corresponded to “<application>Ð</application>”, and use them throughout my document.
Now when ethereal becomes wireshark six months later, I can simply change the entity content. And if my document is translated into 15 additional languages, none of the translators who transcribe entities directly need to lift a finger; I simply rebuild and republish.