<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cconti</id>
		<title>EiffelStudio: an EiffelSoftware project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cconti"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Cconti"/>
		<updated>2026-04-08T06:35:37Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=3862</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=3862"/>
				<updated>2006-06-28T14:26:17Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* l10n: completed and on the work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:Internationalization]]&lt;br /&gt;
[[Image:ebabylon.png|right|frame| Our Eiffel Tower of Babylon]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Many [people] would simply love seeing their computer screen showing a lot less of English, and far more of their own language.&amp;quot;'' -- gettext doc&lt;br /&gt;
&lt;br /&gt;
Our aim is not only to provide a framework to ease the translation of Eiffel-written applications, allowing the user to chose his/her preferred language at runtime, but also to let the developer access information and formats based on users' locale.&lt;br /&gt;
&lt;br /&gt;
==What is internationalisation?==&lt;br /&gt;
&lt;br /&gt;
The first thing that comes to mind is translation. But internationalisation isn't restricted to enabling translation: it includes making it possible to localise notations (time, date, numbers), measures, paper size, and much more.&lt;br /&gt;
&lt;br /&gt;
==What should we achieve?==&lt;br /&gt;
*Applications should be able to load localized strings at runtime and be provided with localized format strings (e.g date format).&lt;br /&gt;
*Developers can use tools that automagically extract strings from source code and can try to get them translated in a file to distribute along with the application.&lt;br /&gt;
*Users will still be unhappy and get depressed ''but in their own language'', which we can all agree is a significant step forward.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M2: May 5 ==&lt;br /&gt;
* [[Internationalization/feasibility|feasibility]]: look at string classes (unicode and not) and how strings are used in EiffelStudio (creation, composition) ''(Ivano, Carlo, Leo, Hong)''&lt;br /&gt;
* [[Internationalization/file_format|file format]]: compare existing file formats for dictionaries ''(Etienne, Andreas)''&lt;br /&gt;
* [[Internationalization/tool_evaluation|tool evaluation]]: list and compare existing translation tools ''(Christian, Martino)''&lt;br /&gt;
&lt;br /&gt;
==M3: June 13 ==&lt;br /&gt;
* write an initial .po to start translating and have a .mo for testing ''(Leo, Carlo)''&lt;br /&gt;
* [[Internationalization/mo parser|mo parser]]: extract translated strings from .mo files ''([[User:etienner|Etienne]], [[User:Trosim|Martino]])''&lt;br /&gt;
* [[Internationalization/translation function|translation function]]: map hard-coded strings to translated strings ''(Martino)''&lt;br /&gt;
** find a solution with templates&lt;br /&gt;
** globality: how to implement, the object should be shared between all modules (see [[Internationalization/class_structure|class structure]])&lt;br /&gt;
** find out how to use plurals (see [[Internationalization/plural_forms|plural forms]])&lt;br /&gt;
* Test unicode support in Vision2. [See test application in the [https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/library/i18n/example/ SVN repository]]&lt;br /&gt;
* compile a [[Internationalization/features list|list of basic features]] to provide (e.g. date/time format, system locale) ''[deferred]''&lt;br /&gt;
&lt;br /&gt;
==M4: June 28 ==&lt;br /&gt;
* internationalization of EiffelStudio: surround strings with our functions&lt;br /&gt;
* [[Internationalization/translation|translation]] of EiffelStudio in some languages, for demo purposes (Italian, German, Chinese, ...) (see [http://slhk.ath.cx/projects/estudio/ pootle])&lt;br /&gt;
* [[Internationalization/code_parser|code parser]]: extract strings to be translated from source code and generate .pot file ''(Leo)''&lt;br /&gt;
* language selection: add an entry in the preferences system&lt;br /&gt;
* create a function to detect current environment language and settings (aka [[Internationalization/locale|locale]])&lt;br /&gt;
&lt;br /&gt;
= Possible future developments =&lt;br /&gt;
&lt;br /&gt;
* collaborate with the [[ESWizard]] team. Create wizards for programs with translation facilities.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
* [[Internationalization/requirements_specification|Requirements specification]]&lt;br /&gt;
* [[Internationalization/developer_manual|Developer manual]]&lt;br /&gt;
* [[Internationalization/obstacles|Obstacles]]: why can't achieve all of our goals&lt;br /&gt;
&lt;br /&gt;
= l10n: completed and on the work =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!'''Language'''&lt;br /&gt;
!'''Status'''&lt;br /&gt;
|-&lt;br /&gt;
|Arabic&lt;br /&gt;
|Active&lt;br /&gt;
|-&lt;br /&gt;
|Chinese&lt;br /&gt;
|Active&lt;br /&gt;
|-&lt;br /&gt;
|Italian&lt;br /&gt;
|Active&lt;br /&gt;
|-&lt;br /&gt;
|Rhaeto-Romanic&lt;br /&gt;
|Active - Ready for use&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Relevant Links=&lt;br /&gt;
[http://www.debian.org/doc/manuals/intro-i18n/ Introduction to i18n]&lt;br /&gt;
&lt;br /&gt;
==What other people have done==&lt;br /&gt;
[http://doc.trolltech.com/4.1/i18n.html internationalisation with QT]&lt;br /&gt;
&lt;br /&gt;
[http://oss.erdfunkstelle.de/kde-i18n/tiki-index.php?page=miniHowtoGui howto for internationalisation of KDE programs ]&lt;br /&gt;
&lt;br /&gt;
[http://l10n.kde.org/docs/translation-howto/ another KDE howto (doesn't Gnome do any internationalisation?)]&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone interested in this project is welcome to [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-i18n join our mailinglist] es-i18n@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* Project Leader: [[User:Carlo|Carlo Vanini]]&lt;br /&gt;
* [[User:leo| Leo Fellmann]]&lt;br /&gt;
* [[User:kiwi| Ivano Somaini]]&lt;br /&gt;
* [[User:murbi|Andreas Murbach]]&lt;br /&gt;
* [[User:etienner|Etienne Reichenbach]]&lt;br /&gt;
* [[User:hong |Hong Zhang]]&lt;br /&gt;
* [[User:cconti | Christian Conti]]&lt;br /&gt;
* [[User:Trosim |Martino Trosi]]&lt;br /&gt;
* [[User:Schoelle| Bernd Schoeller]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=3861</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=3861"/>
				<updated>2006-06-28T14:19:43Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:Internationalization]]&lt;br /&gt;
[[Image:ebabylon.png|right|frame| Our Eiffel Tower of Babylon]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Many [people] would simply love seeing their computer screen showing a lot less of English, and far more of their own language.&amp;quot;'' -- gettext doc&lt;br /&gt;
&lt;br /&gt;
Our aim is not only to provide a framework to ease the translation of Eiffel-written applications, allowing the user to chose his/her preferred language at runtime, but also to let the developer access information and formats based on users' locale.&lt;br /&gt;
&lt;br /&gt;
==What is internationalisation?==&lt;br /&gt;
&lt;br /&gt;
The first thing that comes to mind is translation. But internationalisation isn't restricted to enabling translation: it includes making it possible to localise notations (time, date, numbers), measures, paper size, and much more.&lt;br /&gt;
&lt;br /&gt;
==What should we achieve?==&lt;br /&gt;
*Applications should be able to load localized strings at runtime and be provided with localized format strings (e.g date format).&lt;br /&gt;
*Developers can use tools that automagically extract strings from source code and can try to get them translated in a file to distribute along with the application.&lt;br /&gt;
*Users will still be unhappy and get depressed ''but in their own language'', which we can all agree is a significant step forward.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M2: May 5 ==&lt;br /&gt;
* [[Internationalization/feasibility|feasibility]]: look at string classes (unicode and not) and how strings are used in EiffelStudio (creation, composition) ''(Ivano, Carlo, Leo, Hong)''&lt;br /&gt;
* [[Internationalization/file_format|file format]]: compare existing file formats for dictionaries ''(Etienne, Andreas)''&lt;br /&gt;
* [[Internationalization/tool_evaluation|tool evaluation]]: list and compare existing translation tools ''(Christian, Martino)''&lt;br /&gt;
&lt;br /&gt;
==M3: June 13 ==&lt;br /&gt;
* write an initial .po to start translating and have a .mo for testing ''(Leo, Carlo)''&lt;br /&gt;
* [[Internationalization/mo parser|mo parser]]: extract translated strings from .mo files ''([[User:etienner|Etienne]], [[User:Trosim|Martino]])''&lt;br /&gt;
* [[Internationalization/translation function|translation function]]: map hard-coded strings to translated strings ''(Martino)''&lt;br /&gt;
** find a solution with templates&lt;br /&gt;
** globality: how to implement, the object should be shared between all modules (see [[Internationalization/class_structure|class structure]])&lt;br /&gt;
** find out how to use plurals (see [[Internationalization/plural_forms|plural forms]])&lt;br /&gt;
* Test unicode support in Vision2. [See test application in the [https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/library/i18n/example/ SVN repository]]&lt;br /&gt;
* compile a [[Internationalization/features list|list of basic features]] to provide (e.g. date/time format, system locale) ''[deferred]''&lt;br /&gt;
&lt;br /&gt;
==M4: June 28 ==&lt;br /&gt;
* internationalization of EiffelStudio: surround strings with our functions&lt;br /&gt;
* [[Internationalization/translation|translation]] of EiffelStudio in some languages, for demo purposes (Italian, German, Chinese, ...) (see [http://slhk.ath.cx/projects/estudio/ pootle])&lt;br /&gt;
* [[Internationalization/code_parser|code parser]]: extract strings to be translated from source code and generate .pot file ''(Leo)''&lt;br /&gt;
* language selection: add an entry in the preferences system&lt;br /&gt;
* create a function to detect current environment language and settings (aka [[Internationalization/locale|locale]])&lt;br /&gt;
&lt;br /&gt;
= Possible future developments =&lt;br /&gt;
&lt;br /&gt;
* collaborate with the [[ESWizard]] team. Create wizards for programs with translation facilities.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
* [[Internationalization/requirements_specification|Requirements specification]]&lt;br /&gt;
* [[Internationalization/developer_manual|Developer manual]]&lt;br /&gt;
* [[Internationalization/obstacles|Obstacles]]: why can't achieve all of our goals&lt;br /&gt;
&lt;br /&gt;
= l10n: completed and on the work =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!'''Language'''&lt;br /&gt;
!'''Status'''&lt;br /&gt;
|-&lt;br /&gt;
|Arabic&lt;br /&gt;
|Active&lt;br /&gt;
|-&lt;br /&gt;
|Chinese&lt;br /&gt;
|Active&lt;br /&gt;
|-&lt;br /&gt;
|Italian&lt;br /&gt;
|Active&lt;br /&gt;
|-&lt;br /&gt;
|Rhaeto-Romanic&lt;br /&gt;
|Active&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Relevant Links=&lt;br /&gt;
[http://www.debian.org/doc/manuals/intro-i18n/ Introduction to i18n]&lt;br /&gt;
&lt;br /&gt;
==What other people have done==&lt;br /&gt;
[http://doc.trolltech.com/4.1/i18n.html internationalisation with QT]&lt;br /&gt;
&lt;br /&gt;
[http://oss.erdfunkstelle.de/kde-i18n/tiki-index.php?page=miniHowtoGui howto for internationalisation of KDE programs ]&lt;br /&gt;
&lt;br /&gt;
[http://l10n.kde.org/docs/translation-howto/ another KDE howto (doesn't Gnome do any internationalisation?)]&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone interested in this project is welcome to [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-i18n join our mailinglist] es-i18n@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* Project Leader: [[User:Carlo|Carlo Vanini]]&lt;br /&gt;
* [[User:leo| Leo Fellmann]]&lt;br /&gt;
* [[User:kiwi| Ivano Somaini]]&lt;br /&gt;
* [[User:murbi|Andreas Murbach]]&lt;br /&gt;
* [[User:etienner|Etienne Reichenbach]]&lt;br /&gt;
* [[User:hong |Hong Zhang]]&lt;br /&gt;
* [[User:cconti | Christian Conti]]&lt;br /&gt;
* [[User:Trosim |Martino Trosi]]&lt;br /&gt;
* [[User:Schoelle| Bernd Schoeller]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3836</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3836"/>
				<updated>2006-06-27T11:36:45Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Format of locale on OS's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows: hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID). Note: the LCID is the same for different variants of language like Norwegian (Bokmal) and Norwegian (Nynorsk) (they use the same locale settings)&lt;br /&gt;
&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
There are some macros defined in windows.h that help getting these values.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class EXECUTION_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
SHARED_EXEC_ENVIRONMENT: located [https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/Eiffel/eiffel/shared/shared_exec_environment.e here]&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
in both cases the solution can be found the macros of windows.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Needed macro (the one that gets the user LCID): GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: NATURAL_32 is&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C inline use &amp;lt;windows.h&amp;gt;&amp;quot;&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;return GetUserDefaultLCID();&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3793</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3793"/>
				<updated>2006-06-26T06:25:16Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows: hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
There are some macros defined in windows.h that help getting these values.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class EXECUTION_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
SHARED_EXEC_ENVIRONMENT: located [https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/Eiffel/eiffel/shared/shared_exec_environment.e here]&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
in both cases the solution can be found the macros of windows.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Needed macro (the one that gets the user LCID): GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: NATURAL_32 is&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C inline use &amp;lt;windows.h&amp;gt;&amp;quot;&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;return GetUserDefaultLCID();&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3792</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3792"/>
				<updated>2006-06-26T06:21:41Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows: hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
There are some macros defined in windows.h that help getting these values.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class EXECUTION_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
SHARED_EXEC_ENVIRONMENT: located [https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/Eiffel/eiffel/shared/shared_exec_environment.e here]&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: NATURAL_32 is&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C inline use &amp;lt;windows.h&amp;gt;&amp;quot;&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;return GetUserDefaultLCID();&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3791</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3791"/>
				<updated>2006-06-26T06:20:42Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Format of locale on OS's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows: hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class EXECUTION_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
SHARED_EXEC_ENVIRONMENT: located [https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/Eiffel/eiffel/shared/shared_exec_environment.e here]&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: NATURAL_32 is&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C inline use &amp;lt;windows.h&amp;gt;&amp;quot;&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;return GetUserDefaultLCID();&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3764</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3764"/>
				<updated>2006-06-25T05:39:45Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class EXECUTION_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
SHARED_EXEC_ENVIRONMENT: does this class exist?&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: NATURAL_32 is&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C inline use &amp;lt;windows.h&amp;gt;&amp;quot;&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;return GetUserDefaultLCID();&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3763</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3763"/>
				<updated>2006-06-25T05:38:50Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class EXECUTION_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: NATURAL_32 is&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C inline use &amp;lt;windows.h&amp;gt;&amp;quot;&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;return GetUserDefaultLCID();&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3731</id>
		<title>Talk:Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3731"/>
				<updated>2006-06-23T14:54:43Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At present we are using [http://en.wikipedia.org/wiki/ISO_639 ISO 639-1] to identify the languages.&lt;br /&gt;
[http://www.unicode.org/onlinedat/languages.html Here] is a list of correspondences between different coding conventions.&lt;br /&gt;
&lt;br /&gt;
In GNU informations on current locale are stored in [http://man.splitbrain.org/locale(1) LC_* environment variables].  [http://man.splitbrain.org/locale(5) This] may explain how a locale is defined.&lt;br /&gt;
&lt;br /&gt;
(these notes should be added to the article)   --[[User:Carlo|Carlo]] 00:30, 19 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add them to the article.&lt;br /&gt;
&lt;br /&gt;
About the conversion that we need to do: do we have to build an entire structure and copy all of these win codes and corresponding ISO codes or we simply add a couple of them (like english, italian, german, french and chinese)?&lt;br /&gt;
&lt;br /&gt;
About the codes: I don't think it's sufficient to take only the language part... especially because there are languages that uses different scripts (info found on SortID for windows) and regional differences in the format (in the end we are not only translating eiffel... the objective is i18n and in this there are numeric formats and date formats too)&lt;br /&gt;
&lt;br /&gt;
just to be clear:&lt;br /&gt;
&amp;quot;it&amp;quot; is not sufficient, we need &amp;quot;it_ch&amp;quot; to have complete information&lt;br /&gt;
&lt;br /&gt;
--[[User:Cconti|Cconti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: My suggestion is to design a scalable structure, insert the codes and informations that we need now and let the opportunity to easily add other later on. (e.g. an hash_table of objects, each one representing a code with the related properties)&lt;br /&gt;
&lt;br /&gt;
: Sure we need more than just the language code, but for now it's enough to extract it (split language/nation where both available, codesets). On Linux locale (source) data are found at /usr/share/i18n/locales/ but parsing such information is, at present, out of our concern. --[[User:Carlo|Carlo]] 23:23, 22 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: There is already a feature in eiffel that gets the environment variables, it's called get (in class EXECUTION_ENVIRONMENT)&lt;br /&gt;
:: There is a big problem on windows with the macro (at least on my laptop):&lt;br /&gt;
:: if I run the program step by step eiffel crashes when it arrives at the macro&lt;br /&gt;
:: if I run it with a simple launch command it gives out this error: &amp;quot;Code: 12 (Operating system signal.) Tag: Segmentation violation&amp;quot; and eiffel crashes when it arrives at the print instruction I inserted&lt;br /&gt;
::--[[User:Cconti|Cconti]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3730</id>
		<title>Talk:Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3730"/>
				<updated>2006-06-23T14:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At present we are using [http://en.wikipedia.org/wiki/ISO_639 ISO 639-1] to identify the languages.&lt;br /&gt;
[http://www.unicode.org/onlinedat/languages.html Here] is a list of correspondences between different coding conventions.&lt;br /&gt;
&lt;br /&gt;
In GNU informations on current locale are stored in [http://man.splitbrain.org/locale(1) LC_* environment variables].  [http://man.splitbrain.org/locale(5) This] may explain how a locale is defined.&lt;br /&gt;
&lt;br /&gt;
(these notes should be added to the article)   --[[User:Carlo|Carlo]] 00:30, 19 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add them to the article.&lt;br /&gt;
&lt;br /&gt;
About the conversion that we need to do: do we have to build an entire structure and copy all of these win codes and corresponding ISO codes or we simply add a couple of them (like english, italian, german, french and chinese)?&lt;br /&gt;
&lt;br /&gt;
About the codes: I don't think it's sufficient to take only the language part... especially because there are languages that uses different scripts (info found on SortID for windows) and regional differences in the format (in the end we are not only translating eiffel... the objective is i18n and in this there are numeric formats and date formats too)&lt;br /&gt;
&lt;br /&gt;
just to be clear:&lt;br /&gt;
&amp;quot;it&amp;quot; is not sufficient, we need &amp;quot;it_ch&amp;quot; to have complete information&lt;br /&gt;
&lt;br /&gt;
--[[User:Cconti|Cconti]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: My suggestion is to design a scalable structure, insert the codes and informations that we need now and let the opportunity to easily add other later on. (e.g. an hash_table of objects, each one representing a code with the related properties)&lt;br /&gt;
&lt;br /&gt;
: Sure we need more than just the language code, but for now it's enough to extract it (split language/nation where both available, codesets). On Linux locale (source) data are found at /usr/share/i18n/locales/ but parsing such information is, at present, out of our concern. --[[User:Carlo|Carlo]] 23:23, 22 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: There is already a feature in eiffel that gets the environment variables, it's called get (in class EXECUTION_ENVIRONMENT)&lt;br /&gt;
&lt;br /&gt;
--[[User:Cconti|Cconti]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3729</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3729"/>
				<updated>2006-06-23T05:53:50Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class EXECUTION_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: STRING is&lt;br /&gt;
		-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
			-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
			-- the output is an hexadecimal version of the LCID&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3722</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3722"/>
				<updated>2006-06-22T20:49:51Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class EXECUTION_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: INTEGER is&lt;br /&gt;
		-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
			-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
			-- the output is an hexadecimal version of the LCID&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3721</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3721"/>
				<updated>2006-06-22T20:49:25Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* OS detection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: INTEGER is&lt;br /&gt;
		-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
			-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
			-- the output is an hexadecimal version of the LCID&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
Queries for OS detection cam be found in class PLATFORM&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3720</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3720"/>
				<updated>2006-06-22T20:46:56Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: INTEGER is&lt;br /&gt;
		-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
			-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
			-- the output is an hexadecimal version of the LCID&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3719</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3719"/>
				<updated>2006-06-22T20:41:06Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* References and useful links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: INTEGER is&lt;br /&gt;
		-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
			-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
			-- the output is an hexadecimal version of the LCID&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OS detection ==&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3711</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3711"/>
				<updated>2006-06-22T15:15:16Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: INTEGER is&lt;br /&gt;
		-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
			-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
			-- the output is an hexadecimal version of the LCID&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3710</id>
		<title>Talk:Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3710"/>
				<updated>2006-06-22T15:13:23Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At present we are using [http://en.wikipedia.org/wiki/ISO_639 ISO 639-1] to identify the languages.&lt;br /&gt;
[http://www.unicode.org/onlinedat/languages.html Here] is a list of correspondences between different coding conventions.&lt;br /&gt;
&lt;br /&gt;
In GNU informations on current locale are stored in [http://man.splitbrain.org/locale(1) LC_* environment variables].  [http://man.splitbrain.org/locale(5) This] may explain how a locale is defined.&lt;br /&gt;
&lt;br /&gt;
(these notes should be added to the article)   --[[User:Carlo|Carlo]] 00:30, 19 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add them to the article.&lt;br /&gt;
&lt;br /&gt;
About the conversion that we need to do: do we have to build an entire structure and copy all of these win codes and corresponding ISO codes or we simply add a couple of them (like english, italian, german, french and chinese)?&lt;br /&gt;
&lt;br /&gt;
About the codes: I don't think it's sufficient to take only the language part... especially because there are languages that uses different scripts (info found on SortID for windows) and regional differences in the format (in the end we are not only translating eiffel... the objective is i18n and in this there are numeric formats and date formats too)&lt;br /&gt;
&lt;br /&gt;
just to be clear:&lt;br /&gt;
&amp;quot;it&amp;quot; is not sufficient, we need &amp;quot;it_ch&amp;quot; to have complete information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Cconti|Cconti]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3709</id>
		<title>Talk:Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3709"/>
				<updated>2006-06-22T15:10:36Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At present we are using [http://en.wikipedia.org/wiki/ISO_639 ISO 639-1] to identify the languages.&lt;br /&gt;
[http://www.unicode.org/onlinedat/languages.html Here] is a list of correspondences between different coding conventions.&lt;br /&gt;
&lt;br /&gt;
In GNU informations on current locale are stored in [http://man.splitbrain.org/locale(1) LC_* environment variables].  [http://man.splitbrain.org/locale(5) This] may explain how a locale is defined.&lt;br /&gt;
&lt;br /&gt;
(these notes should be added to the article)   --[[User:Carlo|Carlo]] 00:30, 19 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add them to the article.&lt;br /&gt;
&lt;br /&gt;
About the conversion that we need to do: do we have to build an entire structure and copy all of these win codes and corresponding ISO codes or we simply add a couple of them (like english, italian, german, french and chinese)?&lt;br /&gt;
&lt;br /&gt;
About the codes: I don't think it's sufficient to take only the language part... especially because there are languages that uses different scripts (info found on SortID for windows) and regional differences in the format (in the end we are not only translating eiffel... the objective is i18n and in this there are numeric formats and date formats too)&lt;br /&gt;
&lt;br /&gt;
just to be clear:&lt;br /&gt;
&amp;quot;it&amp;quot; is not sufficient, we need &amp;quot;it_ch&amp;quot; to have complete information&lt;br /&gt;
&lt;br /&gt;
--[[User:Cconti|Cconti]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3708</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3708"/>
				<updated>2006-06-22T15:10:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: INTEGER is&lt;br /&gt;
		-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
			-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3706</id>
		<title>Talk:Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3706"/>
				<updated>2006-06-22T15:07:24Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At present we are using [http://en.wikipedia.org/wiki/ISO_639 ISO 639-1] to identify the languages.&lt;br /&gt;
[http://www.unicode.org/onlinedat/languages.html Here] is a list of correspondences between different coding conventions.&lt;br /&gt;
&lt;br /&gt;
In GNU informations on current locale are stored in [http://man.splitbrain.org/locale(1) LC_* environment variables].  [http://man.splitbrain.org/locale(5) This] may explain how a locale is defined.&lt;br /&gt;
&lt;br /&gt;
(these notes should be added to the article)   --[[User:Carlo|Carlo]] 00:30, 19 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add them to the article.&lt;br /&gt;
About the conversion that we need to do: do we have to build an entire structure and copy all of these win codes and corresponding ISO codes or we simply add a couple of them (like english, italian, german, french and chinese)?&lt;br /&gt;
&lt;br /&gt;
About the codes: I don't think it's sufficient to take only the language part... especially because there are languages that uses different scripts (info found on SortID for windows) and regional differences in the format (in the end we are not only translating eiffel... the objective is i18n and in this there are numeric formats and date formats too)&lt;br /&gt;
&lt;br /&gt;
just to be clear:&lt;br /&gt;
&amp;quot;it&amp;quot; is not sufficient, we need &amp;quot;it_ch&amp;quot; to have complete information&lt;br /&gt;
&lt;br /&gt;
--[[User:Cconti|Cconti]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3705</id>
		<title>Talk:Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Internationalization/locale&amp;diff=3705"/>
				<updated>2006-06-22T15:06:57Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At present we are using [http://en.wikipedia.org/wiki/ISO_639 ISO 639-1] to identify the languages.&lt;br /&gt;
[http://www.unicode.org/onlinedat/languages.html Here] is a list of correspondences between different coding conventions.&lt;br /&gt;
&lt;br /&gt;
In GNU informations on current locale are stored in [http://man.splitbrain.org/locale(1) LC_* environment variables].  [http://man.splitbrain.org/locale(5) This] may explain how a locale is defined.&lt;br /&gt;
&lt;br /&gt;
(these notes should be added to the article)   --[[User:Carlo|Carlo]] 00:30, 19 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Feel free to add them to the article.&lt;br /&gt;
About the conversion that we need to do: do we have to build an entire structure and copy all of these win codes and corresponding ISO codes or we simply add a couple of them (like english, italian, german, french and chinese)?&lt;br /&gt;
About the codes: I don't think it's sufficient to take only the language part... especially because there are languages that uses different scripts (info found on SortID for windows) and regional differences in the format (in the end we are not only translating eiffel... the objective is i18n and in this there are numeric formats and date formats too)&lt;br /&gt;
just to be clear:&lt;br /&gt;
&amp;quot;it&amp;quot; is not sufficient, we need &amp;quot;it_ch&amp;quot; to have complete information&lt;br /&gt;
--[[User:Cconti|Cconti]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3702</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3702"/>
				<updated>2006-06-22T14:44:22Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&amp;lt;br&amp;gt;&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,N]&lt;br /&gt;
language_id: INTEGER is&lt;br /&gt;
		-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
	external&lt;br /&gt;
		&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
			-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
	alias&lt;br /&gt;
		&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3697</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3697"/>
				<updated>2006-06-22T13:47:02Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
&amp;lt;br&amp;gt;	language_id: INTEGER is&lt;br /&gt;
&amp;lt;br&amp;gt;			-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
&amp;lt;br&amp;gt;		external&lt;br /&gt;
&amp;lt;br&amp;gt;			&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;				-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
&amp;lt;br&amp;gt;		alias&lt;br /&gt;
&amp;lt;br&amp;gt;			&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;		end&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3696</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3696"/>
				<updated>2006-06-22T13:42:05Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The function &amp;quot;get&amp;quot; that fetches the language environment variable (LANG) can be found in class SHARED_EXEC_ENVIRONMENT&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
	language_id: INTEGER is&lt;br /&gt;
&amp;lt;br&amp;gt;			-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
&amp;lt;br&amp;gt;		external&lt;br /&gt;
&amp;lt;br&amp;gt;			&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;				-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
&amp;lt;br&amp;gt;		alias&lt;br /&gt;
&amp;lt;br&amp;gt;			&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;		end&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3694</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3694"/>
				<updated>2006-06-22T10:47:26Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
	language_id: INTEGER is&lt;br /&gt;
&amp;lt;br&amp;gt;			-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
&amp;lt;br&amp;gt;		external&lt;br /&gt;
&amp;lt;br&amp;gt;			&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_STRING&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;				-- the macro gives an output of type LCID (is it a string?), ie EIF_STRING needs to be changed accordingly if possible&lt;br /&gt;
&amp;lt;br&amp;gt;		alias&lt;br /&gt;
&amp;lt;br&amp;gt;			&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;		end&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3693</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3693"/>
				<updated>2006-06-22T10:44:54Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
	language_id: INTEGER is&lt;br /&gt;
&amp;lt;br&amp;gt;			-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
&amp;lt;br&amp;gt;		external&lt;br /&gt;
&amp;lt;br&amp;gt;			&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_INTEGER&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;				-- the macro gives an output of type LCID, ie EIF_INTEGER needs to be changed accordingly if possible&lt;br /&gt;
&amp;lt;br&amp;gt;		alias&lt;br /&gt;
&amp;lt;br&amp;gt;			&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;		end&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3692</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3692"/>
				<updated>2006-06-22T10:43:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code should then look like this:&lt;br /&gt;
	language_id: INTEGER is&lt;br /&gt;
			-- `GetUserDefaultLCID' C encapsulation.&lt;br /&gt;
		external&lt;br /&gt;
			&amp;quot;C [macro %&amp;quot;windows.h%&amp;quot;] : EIF_INTEGER&amp;quot;&lt;br /&gt;
				-- the macro gives an output of type LCID, ie EIF_INTEGER needs to be changed accordingly if possible&lt;br /&gt;
		alias&lt;br /&gt;
			&amp;quot;GetUserDefaultLCID&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3691</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3691"/>
				<updated>2006-06-22T10:39:52Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&amp;lt;br&amp;gt;&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&amp;lt;br&amp;gt;&lt;br /&gt;
Macros for windows are contained in &amp;quot;windows.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3690</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3690"/>
				<updated>2006-06-22T10:35:43Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Found the macro needed: GetUserDefaultLCID()'''&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3689</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3689"/>
				<updated>2006-06-22T10:35:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Found the macro needed: GetUserDefaultLCID()&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3688</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3688"/>
				<updated>2006-06-22T10:32:55Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; (aka system locale) can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; (aka user locale) doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3687</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3687"/>
				<updated>2006-06-22T10:32:20Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if SortID is needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Locale id is formed by SortID and LanguageID.&lt;br /&gt;
SortID contains info on the language encoding (?) like japanese unicode order, japanese XJIS order, chinese unicode order, chinese BIG5 order,...&lt;br /&gt;
As one of the predefined LCIDs there is LOCALE_USER_DEFAULT. Problem: what's his hexadecimal code?&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3686</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3686"/>
				<updated>2006-06-22T10:19:02Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID) from the language id.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two solutions:&amp;lt;br&amp;gt;&lt;br /&gt;
* Find out how to get the language id&lt;br /&gt;
* Use the locale id (convenient if other data is needed)&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3685</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3685"/>
				<updated>2006-06-22T10:14:41Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID).&lt;br /&gt;
Thus only a converter LCID - Language is needed.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Definition problem:&amp;lt;br&amp;gt;&lt;br /&gt;
The NLS tables describe the ''language identifiers'', or ''locale identifiers'' (LCIDs), available to an OS design.&amp;lt;br&amp;gt;&lt;br /&gt;
vs&amp;lt;br&amp;gt;&lt;br /&gt;
MAKELCID This macro creates a ''locale identifier'' from a ''language identifier''.&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3684</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3684"/>
				<updated>2006-06-22T10:13:45Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID).&lt;br /&gt;
Thus only a converter LCID - Language is needed.&lt;br /&gt;
SUBLANGID takes a language id and returns a sublanguage id like SUBLANG_ITALIAN_SWISS.&lt;br /&gt;
PRIMARYLANGID takes a language id and returns a primary language id like SUBLANG_ITALIAN.&lt;br /&gt;
&lt;br /&gt;
Definition problem:&lt;br /&gt;
The NLS tables describe the ''language identifiers'', or ''locale identifiers'' (LCIDs), available to an OS design.&lt;br /&gt;
vs&lt;br /&gt;
MAKELCID This macro creates a ''locale identifier'' from a ''language identifier''.&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3682</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3682"/>
				<updated>2006-06-22T07:05:12Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* How to access to locale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
In Eiffel there exist a &amp;quot;locale_id&amp;quot; in class WEL_COMPARE_ITEM_STRUCT that uses the macro MAKELCID to get the locale identifier (aka LCID).&lt;br /&gt;
Thus only a converter LCID - Language is needed.&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3642</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3642"/>
				<updated>2006-06-20T11:25:22Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; can be found in the windows registry.&amp;lt;br&amp;gt;&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3641</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3641"/>
				<updated>2006-06-20T11:25:02Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The LCID for &amp;quot;Language for non-Unicode programs&amp;quot; can be found in the windows registry.&lt;br /&gt;
The LCID of &amp;quot;standards and formats&amp;quot; doesn't seem to be in the registry nor in the environment variables of windows.&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3640</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3640"/>
				<updated>2006-06-20T11:22:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
&lt;br /&gt;
== References and useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Locale Locale on wikipedia]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3639</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3639"/>
				<updated>2006-06-20T11:19:28Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&amp;lt;font size=1&amp;gt;(from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale])&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
&amp;lt;font size=1&amp;gt;(from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale])&amp;lt;/font&amp;gt;&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3609</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3609"/>
				<updated>2006-06-19T15:50:21Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
== Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale]) ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
== How to access to locale ==&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3604</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3604"/>
				<updated>2006-06-19T15:15:26Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
== Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale]) ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3602</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3602"/>
				<updated>2006-06-19T15:14:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Format of locale on OS's (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale]) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Internationalization]]&lt;br /&gt;
&lt;br /&gt;
== Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale]) ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Where to find locale ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
the environment variable is LANG&lt;br /&gt;
&lt;br /&gt;
here is a list for more specific variables:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! '''Locale category'''&lt;br /&gt;
! '''Application'''&lt;br /&gt;
|-&lt;br /&gt;
|LC_COLLATE&lt;br /&gt;
|Collation of strings (sort order.)&lt;br /&gt;
|-&lt;br /&gt;
|LC_CTYPE&lt;br /&gt;
|Classification and conversion of characters.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MESSAGES&lt;br /&gt;
|Translations of yes and no.&lt;br /&gt;
|-&lt;br /&gt;
|LC_MONETARY&lt;br /&gt;
|Format of monetary values.&lt;br /&gt;
|-&lt;br /&gt;
|LC_NUMERIC&lt;br /&gt;
|Format of non-monetary numeric values. &lt;br /&gt;
|-&lt;br /&gt;
|LC_TIME&lt;br /&gt;
|Date and time formats.&lt;br /&gt;
|-&lt;br /&gt;
|LC_ALL&lt;br /&gt;
|Sets all of the above (overrides all of them.)&lt;br /&gt;
|-&lt;br /&gt;
|LANG&lt;br /&gt;
|Sets all the categories, but can be overridden by the individual locale categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3586</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3586"/>
				<updated>2006-06-18T15:27:16Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale]) ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
* [http://www-950.ibm.com/software/globalization/icu/demo/locales info] about what's contained in a locale (language codes, time format,...)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Date_and_time_notation_by_country date and time notations]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=3585</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization&amp;diff=3585"/>
				<updated>2006-06-18T15:24:56Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* M4: June ??? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:Internationalization]]&lt;br /&gt;
[[Image:ebabylon.png|right|frame| Our Eiffel Tower of Babylon]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Many [people] would simply love seeing their computer screen showing a lot less of English, and far more of their own language.&amp;quot;'' -- gettext doc&lt;br /&gt;
&lt;br /&gt;
Our aim is not only to provide a framework to ease the translation of Eiffel-written applications, allowing the user to chose his/her preferred language at runtime, but also to let the developer access information and formats based on users' locale.&lt;br /&gt;
&lt;br /&gt;
==What is internationalisation?==&lt;br /&gt;
&lt;br /&gt;
The first thing that comes to mind is translation. But internationalisation isn't restricted to enabling translation: it includes making it possible to localise notations (time, date, numbers), measures, paper size, and much more.&lt;br /&gt;
&lt;br /&gt;
==What should we achieve?==&lt;br /&gt;
*Applications should be able to load localized strings at runtime and be provided with localized format strings (e.g date format).&lt;br /&gt;
*Developers can use tools that automagically extract strings from source code and can try to get them translated in a file to distribute along with the application.&lt;br /&gt;
*Users will still be unhappy and get depressed ''but in their own language'', which we can all agree is a significant step forward.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M2: May 5 ==&lt;br /&gt;
* [[Internationalization/feasibility|feasibility]]: look at string classes (unicode and not) and how strings are used in EiffelStudio (creation, composition) ''(Ivano, Carlo, Leo, Hong)''&lt;br /&gt;
* [[Internationalization/file_format|file format]]: compare existing file formats for dictionaries ''(Etienne, Andreas)''&lt;br /&gt;
* [[Internationalization/tool_evaluation|tool evaluation]]: list and compare existing translation tools ''(Christian, Martino)''&lt;br /&gt;
&lt;br /&gt;
==M3: June 13 ==&lt;br /&gt;
* write an initial .po to start translating and have a .mo for testing ''(Leo, Carlo)''&lt;br /&gt;
* [[Internationalization/mo parser|mo parser]]: extract translated strings from .mo files ''([[User:etienner|Etienne]], [[User:Trosim|Martino]])''&lt;br /&gt;
* [[Internationalization/translation function|translation function]]: map hard-coded strings to translated strings ''(Martino)''&lt;br /&gt;
** find a solution with templates&lt;br /&gt;
** globality: how to implement, the object should be shared between all modules (see [[Internationalization/class_structure|class structure]])&lt;br /&gt;
** find out how to use plurals (see [[Internationalization/plural_forms|plural forms]])&lt;br /&gt;
* Test unicode support in Vision2. [See test application in the [https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/library/i18n/example/ SVN repository]]&lt;br /&gt;
* compile a [[Internationalization/features list|list of basic features]] to provide (e.g. date/time format, system locale) ''[deferred]''&lt;br /&gt;
&lt;br /&gt;
==M4: June ??? ==&lt;br /&gt;
* internationalization of EiffelStudio: surround strings with our functions&lt;br /&gt;
* [[Internationalization/translation|translation]] of EiffelStudio in some languages, for demo purposes (Italian, German, Chinese, ...) (see [http://slhk.ath.cx/projects/estudio/ pootle])&lt;br /&gt;
* [[Internationalization/code_parser|code parser]]: extract strings to be translated from source code and generate .pot file ''(Leo)''&lt;br /&gt;
* language selection: add an entry in the preferences system&lt;br /&gt;
* create a function to detect current environment language and settings (aka [[Internationalization/locale|locale]])&lt;br /&gt;
&lt;br /&gt;
= Possible future developments =&lt;br /&gt;
&lt;br /&gt;
* collaborate with the [[ESWizard]] team. Create wizards for programs with translation facilities.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
* [[Internationalization/requirements_specification|Requirements specification]]&lt;br /&gt;
* I've downloaded EiffelStudio and would like to use it in my language... -&amp;gt; User manual?&lt;br /&gt;
* [[Internationalization/developer_manual|Developer manual]]&lt;br /&gt;
* [[Internationalization/obstacles|Obstacles]]: why can't achieve all of our goals&lt;br /&gt;
&lt;br /&gt;
=Relevant Links=&lt;br /&gt;
[http://www.debian.org/doc/manuals/intro-i18n/ Introduction to i18n]&lt;br /&gt;
&lt;br /&gt;
==What other people have done==&lt;br /&gt;
[http://doc.trolltech.com/4.1/i18n.html internationalisation with QT]&lt;br /&gt;
&lt;br /&gt;
[http://oss.erdfunkstelle.de/kde-i18n/tiki-index.php?page=miniHowtoGui howto for internationalisation of KDE programs ]&lt;br /&gt;
&lt;br /&gt;
[http://l10n.kde.org/docs/translation-howto/ another KDE howto (doesn't Gnome do any internationalisation?)]&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone interested in this project is welcome to [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-i18n join our mailinglist] es-i18n@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* Project Leader: [[User:Carlo|Carlo Vanini]]&lt;br /&gt;
* [[User:leo| Leo Fellmann]]&lt;br /&gt;
* [[User:kiwi| Ivano Somaini]]&lt;br /&gt;
* [[User:murbi|Andreas Murbach]]&lt;br /&gt;
* [[User:etienner|Etienne Reichenbach]]&lt;br /&gt;
* [[User:hong |Hong Zhang]]&lt;br /&gt;
* [[User:cconti | Christian Conti]]&lt;br /&gt;
* [[User:Trosim |Martino Trosi]]&lt;br /&gt;
* [[User:Schoelle| Bernd Schoeller]]&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3584</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3584"/>
				<updated>2006-06-18T15:21:26Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Format of locale on OS's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale]) ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Info ==&lt;br /&gt;
for info about what's contained in a locale (language codes, time format,...):&lt;br /&gt;
http://www-950.ibm.com/software/globalization/icu/demo/locales&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3583</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3583"/>
				<updated>2006-06-18T15:19:10Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale|Locale]) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale Locale])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Info ==&lt;br /&gt;
for info about what's contained in a locale (language codes, time format,...):&lt;br /&gt;
http://www-950.ibm.com/software/globalization/icu/demo/locales&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3582</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3582"/>
				<updated>2006-06-18T15:18:26Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale]) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Definition (from wikipedia: [http://en.wikipedia.org/wiki/Locale|Locale])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Info ==&lt;br /&gt;
for info about what's contained in a locale (language codes, time format,...):&lt;br /&gt;
http://www-950.ibm.com/software/globalization/icu/demo/locales&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3581</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3581"/>
				<updated>2006-06-18T15:16:49Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Definition (from wikipedia: Locale) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Definition (from wikipedia: [[[http://en.wikipedia.org/wiki/Locale]]])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Info ==&lt;br /&gt;
for info about what's contained in a locale (language codes, time format,...):&lt;br /&gt;
http://www-950.ibm.com/software/globalization/icu/demo/locales&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3580</id>
		<title>Internationalization/locale</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Internationalization/locale&amp;diff=3580"/>
				<updated>2006-06-18T15:16:12Z</updated>
		
		<summary type="html">&lt;p&gt;Cconti: /* Definition (from wikipedia) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Definition (from wikipedia: [[Locale]])==&lt;br /&gt;
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface.&lt;br /&gt;
&lt;br /&gt;
== Format of locale on OS's ==&lt;br /&gt;
* windows (for unmanaged code): hexadecimal code consisting of a language code (lower 10 bits) and culture code (upper bits), aka Locale Identifier (LCID)&lt;br /&gt;
* linux, unix: defined as [language[_territory][.codeset][@modifier]]&lt;br /&gt;
&lt;br /&gt;
== Info ==&lt;br /&gt;
for info about what's contained in a locale (language codes, time format,...):&lt;br /&gt;
http://www-950.ibm.com/software/globalization/icu/demo/locales&lt;/div&gt;</summary>
		<author><name>Cconti</name></author>	</entry>

	</feed>