[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Final versions of Translation SC proposals referenced in Translation work assessment
Hi Michael, Here are the links to the translation proposals I referenced in my work assessment for DITA 1.1: xml:lang attribute: http://www.oasis-open.org/apps/org/workgroup/dita/email/archives/200604/msg0 0067.html dir attribute: http://www.oasis-open.org/apps/org/workgroup/dita/email/archives/200604/msg0 0002.html (note only dir attribute should be used, since the xml:lang was further updated) For convenience, I've attached the final proposals to this message. Best Regards, Gershon --- Gershon L Joseph Member, OASIS DITA and DocBook Technical Committees Director of Technology and Single Sourcing Tech-Tav Documentation Ltd. office: +972-8-974-1569 mobile: +972-57-314-1170 http://www.tech-tav.comTitle: Proposal for xml:lang Attribute
Specifies the language (and optionally the locale) of the element content. The intent declared with xml:lang is considered to apply to all attributes and content of the element where it is specified, unless overridden with an instance of xml:lang on another element within that content. When no xml:lang value is supplied, the processor should assume a default value.
This attribute must be set to a language identifier, as defined by IETF RFC 3066 (http://www.ietf.org/rfc/rfc3066.txt) or successor.
For a DITA document that contains a single language, the highest level element containing content should always set the xml:lang attribute to the language (and optionally the locale) that applies to the document. Since the dita element does not support the xml:lang element, the highest level element that should set the xml:lang attribute is the topic element (or derivatives at the same level).
For a DITA document that contains more than one language, the highest level element should always set the xml:lang attribute to the primary language (and optionally the locale) that applies to the document. Wherever an alternate language occurs in the document, the element containing the text or structure in the alternate language should set the xml:lang attribute appropriately. The above way of overriding the default document language applies to both block and inline elements that use the alternate language.
Using markup to identify language is strongly recommended to make the document as portable as possible. In addition, the marked-up document can be read and understood by humans. Finally, when updating the document, the boundaries of each language are clear, which makes it much easier for the author to update the document.
The xml:lang attribute can be specified on the map element. The expected language inheritance behavior on the map is similar to that on the topic. That is, the primary language for the map should be set on the map element (or assumed by the application if not explicitly set), and should remain in effect for all children unless a child specifies a different value for xml:lang.
If the xml:lang value on a topicref does not match the xml:lang value on a topic, the value on the topic takes precedence.
When conref is used to include content from one topic in another topic, the xml:lang value must be obtained from the topic being included. If the included content does not explicitly set xml:lang, the processor must obtain the xml:lang value from the nearest parent of the included content. If the included content does not have a parent element that sets xml:lang, the application should default to the same value used for topics that do not set the xml:lang attribute.
This behavior is shown in the following example, where the xml:lang value of the included note is obtained from its ancestor section element (id="qqwwee") that sets xml:lang. In this example, the xml:lang value applied to the note whose id is "mynote" is "fr".
****************installingAcme.xml********************* <?xml version="1.0"?> <!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd"> <dita> <topic id="topic_3FD87D" xml:lang="en"> <title>Installing Acme</title> <shortdesc>Step by step details on how to install Acme</shortdesc> <body> <p id="p_60A72">Welcome message goes here</p> <section id="section_C25"> <title>Before you begin</title> <p id="p_E57324D">Special notes when installing Acme in France:</p> <note id="mynote" conref="warningsAcme.xml#topic_warnings/frenchwarnings"></note> </section> </body> </topic> </dita> ******************************************* ****************warningsAcme.xml********************* <?xml version="1.0"?> <!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd"> <dita> <topic id="topic_warnings"> <title>Warnings</title> <shortdesc>warnings in all languages</shortdesc> <body> <section id="qqwwee" xml:lang="fr"> <title>French warnings</title> <p id="p_F2A">These are our French warnings.</p> <note id="frenchwarnings">Note in French!</note> </section> <section xml:lang="en" id="aassdd"> <title>English warnings</title> <p id="p_5F961">These are our English warnings.</p> <note id="englishwarnings">Note in English!</note> </section> </body> </topic> </dita> *************************************
Technical manuals frequently contain entire topics that are in languages different from the primary source languages of most of the topics. A manual in English, for example, may contain warnings that are in multiple languages, or have multiple topics of warnings each in individual languages. A manual may also contain regulatory notices as individual topics in different languages.
Therefore, a map might reference topics that are written in more than one language. In this case, each topic (or section within the topic) would use the xml:lang attribute to specify the language of the topic or section. Processors identify the language of each topic or section by the xml:lang attribute set in the topic file. However, it may be useful to specify the xml:lang attribute at the map level (on topicref elements) to help identify the language of each topic the map refers to.
While most languages are written in text where characters flow from left to right, Hebrew and many Arabic languages are written from right to left. In some languages, including Hebrew and Arabic, numbers and other content is written left to right. Also, a multilingual document containing, for example, English and Hebrew, contains some text that flows left to right and other text that flows right to left.
Text directionality is controlled by the following:
In most cases, authors need to use dir="rtl|ltr" to ensure punctuation surrounding a RTL phrase inside a LTR element is rendered correctly. In order to override the direction of strongly typed Unicode characters (most characters that apply to a language except for punctuation, spaces and digits), the author would need to use dir="lro|rlo". The use of the dir attribute and the Unicode algorithm is clearly explained in the article [REF 1]. The referenced article has several examples on the use of dir="rtl|ltr". There is no example on the use of dir="lro|rlo", though it can be inferred from the example using the bdo element (the old W3C way of overriding the entire Unicode bidirectional algorithm; the now favor using the override values on the dir attribute).
From the HTML 4.0 spec:
Add a new attribute called "dir", as follows:
This attribute, when set to "ltr" or "rtl", overrides the default Unicode bidirectional algorithm on neutral characters (such as spaces and punctuation). These values are usually used to ensure punctuation is applied correctly in a phrase.
This attribute, when set to "lro" or "rlo", overrides the default Unicode bidirectional algorithm on all characters. These values are usually used to force a direction on all characters contained in a phrase.
This attribute is often used in conjunction with the xml:lang attribute, which specifies the script to be used for the specified language.
This attribute is available on all elements within DITA, except for <dita>.
Additional rules to be documented:
<p dir="ltr"> The Hebrew word for "Hebrew" is <ph xml:lang="he" dir="rtl">!עברית</ph>, but since Hebrew letters have intrinsic right-to-left directionality, I had to type the word starting from the letter "ע", i.e. <ph xml:lang="he" dir="lro">תירבע!</ph>. </p>
Many good examples are provided in [REF 1].
When directionality issues can be resolved by either use of the dir attribute or use of Unicode control characters (LRM, RLM) , use of the dir attribute is strongly recommended.
The Unicode Bidirectional algorithm provides for various levels of bidirectionality, as follows:
For most authoring needs, the "ltr" and "rtl" values are sufficient. Only when the desired effect cannot be achieved using these values, should the override values be used.
While the Unicode standard includes hidden markers for directionality without the need for markup, these markers should not be used. It is strongly recommended to mark up the document using the dir attribute to set directionality. Using markup instead of the Unicode markers has the following advantages:
Users should be aware that descriptive markup isn’t necessarily the end of their work. Each possible output rendition or display tool may have different requirements for managing bidirectional text. Just as different HTML browsers offer different levels of support for CSS, different output tools implement the bidirectional algorithm, and its accompanying directional controls, differently. For example, HTML displayed in Internet Explorer may have different requirements than HTML displayed in Firefox. Similarly, a control that works in one part of an HTML file, such as the body of the page, might not work in another, such as the title or the index in compiled HTML Help. The same uncertainty can be found in almost any output. PostScript or PDF rendering tools treat bidirectional text differently. Microsoft Word and OpenOffice Writer don’t handle bidirectional RTF in the same way. Flash has little concern for directional markup of any kind, but does format strings according to the Unicode algorithm.
Because input is unpredictably dependent on eventual output, it is not sufficient to apply the “dir” attribute in such a way as to make the XML appear as it should in an editor. Additional care must be taken to make sure that markup is correctly transformed (or added to the source XML, if needed), with respect both to the target output format and the target output tool. To use the case of HTML, this could mean creating output tailored to the capabilities of the most common likely browser or creating output tailored to the least capable browser and ensuring the markup functions for the most likely and capable one. For example, bidirectional HTML that displays perfectly in Internet Explorer might not display correctly in Safari. However, if the HTML displays perfectly in Safari, chances are very good it will display correctly in Internet Explorer as well. This isn’t a certainty, however. Each case should be tested and confirmed by qualified individuals.
Applications that process DITA documents, whether at the authoring, translation, publishing, or any other stage, should fully support the Unicode algorithm to correctly implement the script and directionality for each language used in the document. The recommended practice is to write all directionality markers via XML markup and not to use the Unicode Bidirectional markers. When reading XML markup that embeds the Unicode Bidirectional markers, these markers should be replaced with markup when the document is saved.
Applications should ensure every highest level topic element and the root map element explicitly assign the dir attribute.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]