Merge pull request #1809 from kumpera/double_loading_fix
[mono-project.git] / tools / locale-builder / README
blobd5e2a6075b182aaba08ab9b516f79f6d3312eff1
1 * purpose
3         This tool is to generate globalization information from Unicode CLDR, with some changes
4         to fill the gap between .NET(Windows)-ism and the global standard.
6 * input resources
8         There is only an external resource: unicode CLDR. It can be downloaded from
9         http://www.unicode.org/Public/cldr/
11         CLDR specificatin can be found at http://www.unicode.org/reports/tr35/
13         All content has to me extracted into CLDR folder. The latest version used is 21.
15         There is an extra mono resource included in this directory called lcids.xml for LCIDs. It's
16         extracted from National Language Support (NLS) API Reference.
17         http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx
19 * generated file
21         culture-info-table.h contains the following sections:
23         - datetime_format_entries
24           See DateTimeFormatEntry.AppendTableRow() in DateTimeFormatEntry.cs.
25         - number_format_entries
26           See NumberFormatEntry.AppendTableRow() in NumberFormatEntry.cs.
27         - culture_entries
28           See CultureInfoEntry.AppendTableRow() in CultureInfoEntry.cs.
29         - culture_name_entries
30           See Driver.Run() in Driver.cs.
31         - region_entries
32           See RegionInfoEntry.AppendTableRow() in RegionInfoEntry.cs.
33         - region_name_entries
34           See Driver.Run() in Driver.cs.
35         - locale_strings
36           See Driver.Run() in Driver.cs.
38         In each entry, strings are extracted to locale_strings table, and in each structure they are
39         represented as an index to the string.
41 * updating the data
43         Update Makefile.am to get the latest CLDR data. However, CLDR is not complete and
44         it's missing data for many rarely used cultures. In such cases we provide empty value
45         but when someone has the knowleadge what the values should be it's recommended to
46         use online CLDR tool to fill the data gap.
48         To create the files used by the runtime after an update, run:
49                 make culture-table
50                 make install-culture-table
52         At the start of Makefile.am there are additional instructions for specific builds.