Skip to content

Languages

Martin Holmes edited this page Apr 28, 2022 · 3 revisions

This was the outcome of a discussion between Council members and others relating to multilingual ODD-chaining:

  • All transformations prior to the output of RNG or HTML at the end of the chain should preserve all language versions of gloss/desc/remarks, even those which are technically obsolete per their @versionDate attributes.

  • A final rendering process should use elements in the specified docLang, EVEN THOSE WHICH ARE OUTDATED, in preference to English, but should fall back to English where nothing is available in the target language.

  • If the chain originates with P5, then English is special, because it's the canonical language of the base schema. But I like Peter's suggestion that a language could/should be declared as canonical for a schema, and where no element exists in that language, and error could be raised.

Council Discussion:

@targetLang (not being useful, XSLT processing isn't supporting what it's supposed to be for: to output tags in another language: XSLT only works on glosses in @targetLang). What we use for that is altIdent usually. But should @targetLang be supported and worked on? Council discussion: Yes, it should.

Testing by @martindholmes following meeting 2022-04-27:

For an <elementSpec> like this:

<elementSpec ident="p" module="core" mode="change">
  <altIdent xml:lang="ja">段落</altIdent>
  <gloss xml:lang="ja">何かしら</gloss>
  <gloss xml:lang="en">something, I guess</gloss>
 </elementSpec>

if @targetLang on <schemaSpec> is "ja", then the element name becomes 段落.

if @docLang on schemaSpec is "ja", then the parenthesized gloss in the annotation becomes 何かしら:

<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
  (何かしら) 散文の段落を示す. [3.1. Paragraphs 7.2.5. Speech Contents]
</a:documentation>

and all other glosses/descs etc. are taken from the ja versions in the p5subset.

So I conclude that the descriptions of the two attributes in the schemaSpec specification are absolutely correct:

targetLang (target language) specifies which language to use when creating the objects in a schema if names for elements or attributes are available in more than one language

docLang (documentation language) specifies which languages to use when creating documentation if the description for an element, attribute, class or macro is available in more than one language

and that the current stylesheets correctly process them.