<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=User%3ARamzi_Linden%2FI18N_Specifications</id>
	<title>User:Ramzi Linden/I18N Specifications - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=User%3ARamzi_Linden%2FI18N_Specifications"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Ramzi_Linden/I18N_Specifications&amp;action=history"/>
	<updated>2026-07-19T03:47:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Ramzi_Linden/I18N_Specifications&amp;diff=466593&amp;oldid=prev</id>
		<title>Ramzi Linden: /* Text and Layout */</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Ramzi_Linden/I18N_Specifications&amp;diff=466593&amp;oldid=prev"/>
		<updated>2009-08-19T20:43:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Text and Layout&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:43, 19 August 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Programmatic word-wrap handles alternate international punctuation gracefully, such as a double-byte period 。, colon ：, 「quotation marks」, （parenthesis） , ？ , etc.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Programmatic word-wrap handles alternate international punctuation gracefully, such as a double-byte period 。, colon ：, 「quotation marks」, （parenthesis） , ？ , etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* The buttons in Dialogs and Toasts resize dynamically to accommodate text expansion.  The largest button in a group of buttons may change in each locale.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* The buttons in Dialogs and Toasts resize dynamically to accommodate text expansion.  The largest button in a group of buttons may change in each locale.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* It is important to abstract in your head the width of the &#039;&#039;widget&#039;&#039; from the width of the &#039;&#039;text string&#039;&#039;.  Foreign languages often result in longer strings to say the same thing.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Whenever possible, plan on 1.5 * width of the string AS YOU SEE IT IN ENGLISH.  (A set of examples is in the image below.)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Whenever possible, plan on 1.5 * width of the string AS YOU SEE IT IN ENGLISH.  (A set of examples is in the image below.)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Flush-right &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the &lt;/del&gt;Help button (?).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Flush-right &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;any &lt;/ins&gt;Help button (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;&lt;/ins&gt;?&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:[[Image:i18n_widths.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;:[[Image:i18n_widths.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;::&#039;&#039;It is important to abstract in your head the width of the &#039;&#039;widget&#039;&#039; from the width of the &#039;&#039;text string&#039;&#039;.  Foreign languages often result in longer strings to say the same thing.&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ramzi Linden</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Ramzi_Linden/I18N_Specifications&amp;diff=466543&amp;oldid=prev</id>
		<title>Ramzi Linden: Created page with &#039;=== Verbiage ===  # When writing a descriptor, or Help text, try to consider if your text has a subject + a verb. #* hypothetical: #** NOT SO GOOD: &quot;Controls the angle that is re...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Ramzi_Linden/I18N_Specifications&amp;diff=466543&amp;oldid=prev"/>
		<updated>2009-08-19T20:40:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;=== Verbiage ===  # When writing a descriptor, or Help text, try to consider if your text has a subject + a verb. #* hypothetical: #** NOT SO GOOD: &amp;quot;Controls the angle that is re...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Verbiage ===&lt;br /&gt;
&lt;br /&gt;
# When writing a descriptor, or Help text, try to consider if your text has a subject + a verb.&lt;br /&gt;
#* hypothetical:&lt;br /&gt;
#** NOT SO GOOD: &amp;quot;Controls the angle that is reflected.&amp;quot;&lt;br /&gt;
#** BETTER:  &amp;quot;Controls the angle that &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;light&amp;lt;/font&amp;gt; is reflected.&lt;br /&gt;
#** BETTER YET (for Help text):  &amp;quot;&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;The Surface Reflection Power Tool&amp;lt;/font&amp;gt; controls the angle that &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;light&amp;lt;/font&amp;gt; is reflected from the water.&amp;quot;&lt;br /&gt;
# New UI text follows the Viewer Style Guide:&lt;br /&gt;
#* New UI text is highly localizable. The phrasing elimates geek-speak or robotic sentences in favor of conversational subject+verb sentences.&lt;br /&gt;
#* UI text does not depend on slang or idiom that does not translate easily.&lt;br /&gt;
# New Help text is also highly localizable in the same manner.&lt;br /&gt;
&lt;br /&gt;
=== Text and Layout ===&lt;br /&gt;
&lt;br /&gt;
# All new text strings should be extracted from a /skins/default/xui folder that contains XML files encoded as UTF-8.&lt;br /&gt;
#* New files use the existing standards of the Viewer&amp;#039;s hierarchical-loaded localization architecture.&lt;br /&gt;
#* The Viewer should be capable to ship multiple locales for any parent language, such as es-ES vs. es-MX&lt;br /&gt;
# Startup error messages, such as driver faults or wrong command parameters, are also internationalized in a similar manner.&lt;br /&gt;
# When text needs to be assembled from multiple parts (concatenation), it is done so in a way that can accommodate alternate word order and specialized formatting of non-text information.&lt;br /&gt;
# All GUI layout is wide enough to accommodate the reasonable text expansion of a foreign language.  Generally, this means every widget can accommodate approximately 50% more space than is required by its English text, without the need for manual resizing. &lt;br /&gt;
#* Whenever possible, window layouts put the widget below its label, instead of beside it. This allows a full line width for text expansion of the label.&lt;br /&gt;
#* Multi-line text widgets are programmed to word-wrap.&lt;br /&gt;
#* Programmatic word-wrap handles alternate international punctuation gracefully, such as a double-byte period 。, colon ：, 「quotation marks」, （parenthesis） , ？ , etc.&lt;br /&gt;
#* The buttons in Dialogs and Toasts resize dynamically to accommodate text expansion.  The largest button in a group of buttons may change in each locale.&lt;br /&gt;
#* It is important to abstract in your head the width of the &amp;#039;&amp;#039;widget&amp;#039;&amp;#039; from the width of the &amp;#039;&amp;#039;text string&amp;#039;&amp;#039;.  Foreign languages often result in longer strings to say the same thing.&lt;br /&gt;
#* Whenever possible, plan on 1.5 * width of the string AS YOU SEE IT IN ENGLISH.  (A set of examples is in the image below.)&lt;br /&gt;
#* Flush-right the Help button (?).&lt;br /&gt;
&lt;br /&gt;
:[[Image:i18n_widths.png]]&lt;/div&gt;</summary>
		<author><name>Ramzi Linden</name></author>
	</entry>
</feed>