Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

2
tools/Makefile.am Normal file
View File

@@ -0,0 +1,2 @@
SUBDIRS = locale-builder sgen

694
tools/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,40 @@
//
// CalendarType.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2012 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
namespace Mono.Tools.LocaleBuilder
{
public enum CalendarType
{
Gregorian = 1,
ThaiBuddhist = 2,
UmAlQuraCalendar = 3,
HijriCalendar = 4
}
}

View File

@@ -0,0 +1,242 @@
2010-05-07 Marek Habersack <mhabersack@novell.com>
* Makefile.am (lang-data, locale-data): updated URLs for the icu
tarballs - they now live on go-mono.com
2010-02-24 Atsushi Enomoto <atsushi@ximian.com>
* supp/ns_BE.xml : add number format. Fixed bug #324019.
2010-01-06 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : support FirstDayOfWeek. Fixed bug #567944.
Patch by Jose Antonio Sanchez Lazaro.
2009-12-18 Dimitar Dobrev <dpldobrev@yahoo.com>
* langs/ka.xml: added a file with the settings of the neutral
Georgian culture
* locales/ka-GE.xml: added a file with the settings of the
specific Georgian culture
* supp/ka-GE.xml: added a file with the date and time formats
of the Georgian culture
* lcids.xml: added entries for the neutral and specific
Georgian culture
* Makefile.am: included supp/ka-GE.xml in the build and dist the new
we're not downloading from primates.ximian.com.
[Fixes bug 564910].
2009-11-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
* Driver.cs: Generate locale data for neutral cultures too. Moonlight
requires it.
2009-05-20 Atsushi Enomoto <atsushi@ximian.com>
* README: added (I needed it!)
2009-03-05 Marek Habersack <mhabersack@novell.com>
* locales/en_TT.xml: added here since openi18n.org times out and
also I can't update icu_locales.tar.gz. File based on en_ZA.xml
from that tarball, with appropriate modifications.
* Makefile.am (supp_data_files): added supp/en_TT.xml
2007-11-03 Atsushi Enomoto <atsushi@ximian.com>
* DateTimeFormatEntry.cs, Driver.cs : adjust the count of
MonthNames and AbbreviatedMonthNames entries to 13.
Fixed bug #332553.
2007-10-30 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs, DateTimeFormatEntry.cs : since FullDateTimePattern
should be computed on the overriden Long[Date/Time]Pattern, compute
it later than reading all format resources (langs/locales/supp).
2007-08-21 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : for Euskara culture (eu_ES) do not trim dd which is
laid after 'ren' in the long format.
2007-05-15 Atsushi Enomoto <atsushi@ximian.com>
* CultureInfoEntry.cs : output Territory, which is used for RegionInfo.
* RegionInfoEntry.cs : added dummy int which is a slot for LCID.
2007-04-25 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : use invariant culture to sort culture names.
Fixed bug #81150, patch by Changwoo Ryu.
2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : in some cultures month/year and day/month could be in
reverse order, so don't assume month before year and day before
month. Made the "hack" code more practical.
2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
* langs/nn.xml, locales/nn_NO.xml, Driver.cs :
Did the same for nn-NO.
2006-03-29 Atsushi Enomoto <atsushi@ximian.com>
* langs/nb.xml
locales/nb_NO.xml : imported from CLDR 1.3 data. (I know I'm
directly adding them here, since there seems no simple way to
add them as data in "supp" dir).
* Driver.cs :
Reuse XPathDocument for lcids.xml.
For "nb-NO" we need tricky code since its parent culture is "no"
(not "nb"), while some properties seems based on "nb".
Maybe we need some fundamental fixes to consider lcids.xml for
parent-child relationship, but right now, it's mostly fruitless.
2005-08-17 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : add primary date/time pattern strings as the first
entry of for each "whole specific patterns".
(e.g. LongDatePatterns[0] should be LongDatePattern.)
2005-08-17 Atsushi Enomoto <atsushi@ximian.com>
* CultureInfoEntry.cs : added RegionId.
* Driver.cs : modified to not write RegionLCIDMap and use
CultureInfoEntry for that lookup purpose instead.
2005-08-15 Atsushi Enomoto <atsushi@ximian.com>
* RegionInfoEntry.cs,
Driver.cs,
Makefile.am : added RegionInfo table output support.
2005-08-11 Atsushi Enomoto <atsushi@ximian.com>
* regions.xml : ugh, it does not match something .net returns, so
remove it.
2005-08-11 Atsushi Enomoto <atsushi@ximian.com>
* regions.xml : new file. All region IDs from existing RegionInfo.cs.
2005-07-07 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : Fixed bug #75499. There were hy_AM.xml and
hy_AM_REVISED.xml files in the locale builder archive.
2005-06-27 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : basic pattern string should be added to extra pattern
array. This fixes bug #75353.
2005-05-19 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs, CultureInfoEntry.cs : Use hacky shallow copy to clone
zh-CHS into zh-CHT.
2005-05-18 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : quick workaround for zh-CHT related breakage.
2005-05-12 Atsushi Enomoto <atsushi@ximian.com>
* Entry.cs :
build fix. Incorrectly allowed access to protected member.
* CultureInfoEntry.cs,
Driver.cs :
Handle language "zh-CHS" as special case, since there is no "zh".
* Makefile :
use -debug+ instead of -g (convenient when verifying with csc).
2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : set \n for writer's NewLine explicitly (otherwise it
results in mixed line ending in culture-info-table.h).
2004-12-13 Ben Maurer <bmaurer@ximian.com>
* CultureInfoEntry.cs (AppendTableRow): Stringify the
textinfoentry
* TextInfoEntry.cs: New file for textinfo data
* textinfo.xml: textinfo data
* Driver.cs: Harness all the stuff above
* Makefile.am: add new files
Mon Aug 9 13:24:09 CEST 2004 Paolo Molaro <lupus@ximian.com>
* Driver.cs, Entry.cs, CultureInfoEntry.cs, DateTimeFormatEntry.cs,
NumberFormatEntry.cs: create a more compact representation of the
data.
2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* Driver.cs: handle single quotes in the pattern. We used to fail for,
at least, es and pt cultures with full patterns like
"EEEE d' de 'MMMM' de 'yyyy".
2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : To make "extra pattern only" xxxFormatLength possible,
fill values only when the exact element was available.
2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
* DateTimeFormatEntry.cs : Use "{0}" for empty array.
2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
* DateTimeFormatEntry.cs : Added "all datetime patterns" support.
* Driver.cs : Added "all datetime patterns" support and fixed some
XPathNavigator use to strictly navigate to "pattern" element.
2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : Percent patterns are not properly parsed since they are
in fact not separated by '.'
* Entry.cs : Escape '\' to "\\" (for Japanese yen-sign fix).
2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs :
- NumberDecimalDigits are almost differently specified by locale
xml files. Almost all of them have ".###", but we need ".##" in
almost all the locale. So let's *assume* that the number of
digit is always +1 extraneous by this Driver itself.
This change accompanies with some existing supp/*.xml changes.
- For decimal patterns and currency patterns, when numeric patterns
does not have ';'-separated patterns, it ignored the whole pattern
string. Fixed it by just copying the same patterns.
- When parsing percent patterns, '%' characters were in the way.
- When the decimal part of the percent pattern ends with ".##0",
the value of PercentDecimalDigits is 2.
- Assume PercentDecimalDigits as 2 by default.
2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : Let's ignore DTD that takes most of the running time.
2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : {3} is the almost default number for group digits.
2004-05-26 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : for af_ZA locale, am/pm part got required to support
"empty" string. So check am/pm elements and overwrite AMDesigner/
PMDesigner value even if they consist of empty string.
* (moved logs for supp/ content to supp/)
2004-05-25 Jackson Harper <jackson@ximian.com>
* Makefile.am: Extract xml files.
2004-05-24 Jackson Harper <jackson@ximian.com>
* Driver.cs: Filter on GetFiles so we only get the xml locale files.

View File

@@ -0,0 +1,48 @@
//
// Constants.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2012 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
namespace Mono.Tools.LocaleBuilder
{
static class Constants
{
//
// All values must match defines from culture-info.h
//
public const int NUM_DAYS = 7;
public const int NUM_MONTHS = 13;
public const int GROUP_SIZE = 2;
public const int NUM_CALENDARS = 4;
public const int NUM_SHORT_DATE_PATTERNS = 14;
public const int NUM_LONG_DATE_PATTERNS = 8;
public const int NUM_SHORT_TIME_PATTERNS = 12;
public const int NUM_LONG_TIME_PATTERNS = 9;
}
}

View File

@@ -0,0 +1,144 @@
//
// Mono.Tools.LocaleBuilder.CultureInfoEntry
//
// Author(s):
// Jackson Harper (jackson@ximian.com)
//
// (C) 2004 Novell, Inc (http://www.novell.com)
//
using System;
using System.Text;
using System.Collections.Generic;
using System.Globalization;
namespace Mono.Tools.LocaleBuilder
{
public class CultureInfoEntry : Entry
{
string language;
public string Script;
public string Territory;
public string EnglishName;
public string DisplayName;
public string NativeName;
public string ThreeLetterWindowsLanguageName;
public string TwoLetterISOLanguageName;
public string ThreeLetterISOLanguageName;
public string LCID;
public string ParentLcid;
public string SpecificLcid;
public RegionInfoEntry RegionInfoEntry;
public DateTimeFormatEntry DateTimeFormatEntry;
public NumberFormatEntry NumberFormatEntry;
public TextInfoEntry TextInfoEntry;
public int DateTimeIndex;
public int NumberIndex;
public string NativeCurrencyName;
public string NativeTerritoryName;
public string[] NativeCalendarNames = new string[Constants.NUM_CALENDARS];
public CalendarType CalendarType;
public GregorianCalendarTypes GregorianCalendarType;
public List<CultureInfoEntry> Children = new List<CultureInfoEntry> ();
public int Row;
public CultureInfoEntry ()
{
DateTimeFormatEntry = new DateTimeFormatEntry ();
NumberFormatEntry = new NumberFormatEntry ();
}
public string Language {
get {
return language;
}
set {
language = value;
}
}
public bool HasMissingLocale { get; set; }
public bool IsNeutral {
get {
return Territory == null;
}
}
public string OriginalName { get; set; }
public CultureInfoEntry Parent { get; set; }
public string Name {
get {
string s = language;
if (Script != null)
s = s + "-" + Script;
if (Territory != null)
s = s + "-" + Territory;
return s;
}
}
public string GetExportName ()
{
return OriginalName.Replace ('_', '-');
}
public override string ToString ()
{
StringBuilder builder = new StringBuilder ();
AppendTableRow (builder);
return builder.ToString ();
}
public void AppendTableRow (StringBuilder builder)
{
builder.Append ("\t{");
builder.Append (LCID).Append (", ");
builder.Append (ParentLcid).Append (", ");
int calendar_type = (int) CalendarType;
calendar_type <<= 8;
if (CalendarType == CalendarType.Gregorian)
calendar_type |= (int) GregorianCalendarType;
builder.Append (calendar_type).Append (", ");
builder.Append (RegionInfoEntry == null ? -1 : RegionInfoEntry.Index).Append (", ");
builder.Append (EncodeStringIdx (GetExportName ())).Append (", ");
builder.Append (EncodeStringIdx (EnglishName)).Append (", ");
builder.Append (EncodeStringIdx (NativeName)).Append (", ");
builder.Append (EncodeStringIdx (ThreeLetterWindowsLanguageName)).Append (", ");
builder.Append (EncodeStringIdx (ThreeLetterISOLanguageName)).Append (", ");
builder.Append (EncodeStringIdx (TwoLetterISOLanguageName)).Append (", ");
builder.Append (EncodeStringIdx (Territory)).Append (", ");
AppendNames (builder, NativeCalendarNames).Append (", ");
builder.Append (DateTimeFormatEntry.Row).Append (", ");
builder.Append (NumberFormatEntry.Row).Append (", ");
builder.Append (TextInfoEntry.ToString ());
builder.Append ('}');
}
private string ValuesString (int[] values)
{
StringBuilder builder = new StringBuilder ();
builder.Append ('{');
for (int i = 0; i < values.Length; i++) {
builder.Append (values[i].ToString ());
if (i + 1 < values.Length)
builder.Append (", ");
}
builder.Append ("}");
return builder.ToString ();
}
}
}

View File

@@ -0,0 +1,135 @@
//
// DateTimeFormatEntry.cs
//
// Authors:
// Jackson Harper (jackson@ximian.com)
// Marek Safar <marek.safar@gmail.com>
//
// (C) 2004, Novell, Inc (http://www.novell.com)
// Copyright (C) 2012 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System.Text;
using System.Collections.Generic;
namespace Mono.Tools.LocaleBuilder
{
public class DateTimeFormatEntry : Entry
{
public string NativeCalendarName;
public string[] AbbreviatedDayNames = new string[Constants.NUM_DAYS];
// Input data are mostly missing for abbreviated month but datetime 'MMM' parse depends on them
// we pre-fill them the most common ones
public string[] AbbreviatedMonthGenitiveNames = new string[Constants.NUM_MONTHS] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", null };
public string[] AbbreviatedMonthNames = new string[Constants.NUM_MONTHS] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", null };
public string AMDesignator;
public int? CalendarWeekRule;
public string DateSeparator;
public string[] DayNames = new string[Constants.NUM_DAYS];
public int? FirstDayOfWeek;
public string RawFullDateTimePattern;
public string LongDatePattern;
public string LongTimePattern;
public string MonthDayPattern;
public string[] MonthGenitiveNames = new string[Constants.NUM_MONTHS];
public string[] MonthNames = new string[Constants.NUM_MONTHS];
public string PMDesignator;
public string ShortDatePattern;
public string ShortTimePattern;
public string TimeSeparator;
public string YearMonthPattern;
public string[] ShortDatePatterns = new string[Constants.NUM_SHORT_DATE_PATTERNS];
public string[] LongDatePatterns = new string[Constants.NUM_LONG_DATE_PATTERNS];
public string[] ShortTimePatterns = new string[Constants.NUM_SHORT_TIME_PATTERNS];
public string[] LongTimePatterns = new string[Constants.NUM_LONG_TIME_PATTERNS];
public string[] ShortestDayNames = new string[Constants.NUM_DAYS];
public int Row;
public void AppendTableRow (StringBuilder builder)
{
builder.Append ("\t{");
builder.Append (EncodeStringIdx (LongDatePattern) + ", ");
builder.Append (EncodeStringIdx (ShortDatePattern) + ", ");
builder.Append (EncodeStringIdx (LongTimePattern) + ", ");
builder.Append (EncodeStringIdx (ShortTimePattern) + ", ");
builder.Append (EncodeStringIdx (YearMonthPattern) + ", ");
builder.Append (EncodeStringIdx (MonthDayPattern) + ", ");
builder.Append (EncodeStringIdx (AMDesignator) + ", ");
builder.Append (EncodeStringIdx (PMDesignator) + ", ");
AppendNames (builder, DayNames).Append (", ");
AppendNames (builder, AbbreviatedDayNames).Append (", ");
AppendNames (builder, ShortestDayNames).Append (", ");
AppendNames (builder, MonthNames).Append (", ");
AppendNames (builder, MonthGenitiveNames).Append (", ");
AppendNames (builder, AbbreviatedMonthNames).Append (", ");
AppendNames (builder, AbbreviatedMonthGenitiveNames).Append (", ");
// TODO:
builder.Append ((CalendarWeekRule ?? 0) + ", ");
builder.Append ((FirstDayOfWeek ?? 0) + ", ");
builder.Append (EncodeStringIdx (DateSeparator) + ", ");
builder.Append (EncodeStringIdx (TimeSeparator) + ", ");
AppendPatterns (builder, ShortDatePatterns);
builder.Append (',');
AppendPatterns (builder, LongDatePatterns);
builder.Append (',');
AppendPatterns (builder, ShortTimePatterns);
builder.Append (',');
AppendPatterns (builder, LongTimePatterns);
builder.Append ('}');
}
private void AppendPatterns (StringBuilder builder, IList<string> patterns)
{
builder.Append ('{');
for (int i = 0; i < patterns.Count; i++) {
if (i > 0)
builder.Append (',');
string s = EncodeStringIdx (patterns[i]);
builder.Append (s);
}
if (patterns.Count == 0)
builder.Append ('0');
builder.Append ('}');
}
public override string ToString ()
{
StringBuilder builder = new StringBuilder ();
AppendTableRow (builder);
return builder.ToString ();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,116 @@
//
// Entry.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2012 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Text;
using System.Collections.Generic;
namespace Mono.Tools.LocaleBuilder
{
public class Entry
{
// maps strings to indexes
static Dictionary<string, int> hash = new Dictionary<string, int> ();
static List<string> string_order = new List<string> ();
// idx 0 is reserved to indicate null
static int curpos = 1;
// serialize the strings in Hashtable.
public static string GetStrings ()
{
Console.WriteLine ("Total string data size: {0}", curpos);
if (curpos > UInt16.MaxValue)
throw new Exception ("need to increase idx size in culture-info.h");
StringBuilder ret = new StringBuilder ();
// the null entry
ret.Append ("\"\\0\"\n");
foreach (string s in string_order) {
ret.Append ("\t\"");
ret.Append (s);
ret.Append ("\\0\"\n");
}
return ret.ToString ();
}
static int AddString (string s, int size)
{
if (!hash.ContainsKey (s)) {
int ret;
string_order.Add (s);
ret = curpos;
hash.Add (s, curpos);
curpos += size + 1; // null terminator
return ret;
}
return hash[s];
}
protected static StringBuilder AppendNames (StringBuilder builder, IList<string> names)
{
builder.Append ('{');
for (int i = 0; i < names.Count; i++) {
if (i > 0)
builder.Append (", ");
builder.Append (EncodeStringIdx (names[i]));
}
builder.Append ("}");
return builder;
}
internal static String EncodeStringIdx (string str)
{
if (str == null)
return "0";
StringBuilder ret = new StringBuilder ();
byte[] ba = new UTF8Encoding ().GetBytes (str);
bool in_hex = false;
foreach (byte b in ba) {
if (b > 127 || (in_hex && is_hex (b))) {
ret.AppendFormat ("\\x{0:x}", b);
in_hex = true;
} else {
if (b == '\\')
ret.Append ('\\');
ret.Append ((char) b);
in_hex = false;
}
}
int res = AddString (ret.ToString (), ba.Length);
return res.ToString ();
}
private static bool is_hex (int e)
{
return (e >= '0' && e <= '9') || (e >= 'A' && e <= 'F') || (e >= 'a' && e <= 'f');
}
}
}

View File

@@ -0,0 +1,51 @@
MCS = mcs
RUNTIME = mono
MCSFLAGS = -debug+
# To build a reduced mono runtime with support only for some locales, # run:
# make minimal
# To build with a single locale (en_US), run:
# make minimal MINIMAL_LOCALES=en_US
# MINIMAL_LOCALES is a regular expression over the filenames in locales.
# make minimal saves about 60 KB of the mono binary size.
# To create the tables for all the supported locales, use:
# make culture-table
# After make minimal or make culture-table, you need to run:
# make install-culture-table
# to copy the needed files where the mono build will pick them up.
MINIMAL_LOCALES=en
CLEANFILES = locale-builder.exe culture-info-tables.h
locale_builder_sources = Driver.cs \
CalendarType.cs \
Constants.cs \
Patterns.cs \
CultureInfoEntry.cs \
DateTimeFormatEntry.cs \
NumberFormatEntry.cs \
RegionInfoEntry.cs \
TextInfoEntry.cs \
Entry.cs
EXTRA_DIST = $(locale_builder_sources) lcids.xml
locale-builder.exe: $(locale_builder_sources)
$(MCS) $(MCSFLAGS) /out:$@ $^
culture-table: locale-builder.exe locale-data
$(RUNTIME) locale-builder.exe
minimal: locale-builder.exe locale-data
$(RUNTIME) locale-builder.exe --locales '$(MINIMAL_LOCALES)'
locale-data:
if ! test -d CLDR/common ; then \
curl http://www.unicode.org/Public/cldr/24/core.zip -o core.zip ; \
unzip core.zip -d CLDR ; \
fi
install-culture-table: culture-info-tables.h
cp -f culture-info-tables.h ../../mono/metadata/.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,150 @@
//
// DateTimeFormatEntry.cs
//
// Authors:
// Jackson Harper (jackson@ximian.com)
// Marek Safar <marek.safar@gmail.com>
//
// (C) 2004, Novell, Inc (http://www.novell.com)
// Copyright (C) 2012 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System.Text;
using System.Globalization;
namespace Mono.Tools.LocaleBuilder
{
public class NumberFormatEntry : Entry
{
public string CurrencyDecimalDigits;
public string CurrencyDecimalSeparator = ",";
public string CurrencyGroupSeparator = ",";
public string[] CurrencyGroupSizes = new string[Constants.GROUP_SIZE];
public string CurrencyNegativePattern;
public string CurrencyPositivePattern;
public string CurrencySymbol;
public string NaNSymbol;
public string NegativeSign = "-";
public int NumberDecimalDigits;
public string NumberDecimalSeparator = ",";
public string NumberGroupSeparator = ",";
public string[] NumberGroupSizes = new string[Constants.GROUP_SIZE];
public string NumberNegativePattern;
public int PercentDecimalDigits;
public string PercentDecimalSeparator = ",";
public string PercentGroupSeparator = ",";
public string[] PercentGroupSizes = new string[Constants.GROUP_SIZE];
public string PercentNegativePattern;
public string PercentPositivePattern;
public string PercentSymbol = "%";
public string PerMilleSymbol = "‰";
public string InfinitySymbol = "Infinity";
public string PositiveSign = "+";
public DigitShapes DigitSubstitution = DigitShapes.None;
public string[] NativeDigits = new string[10] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
public int Row;
public string NegativeInfinitySymbol
{
get
{
if (InfinitySymbol.StartsWith (PositiveSign))
return NegativeSign + InfinitySymbol.Substring (1, InfinitySymbol.Length - 1);
return NegativeSign + InfinitySymbol;
}
}
public string PositiveInfinitySymbol
{
get
{
return InfinitySymbol;
}
}
public void AppendTableRow (StringBuilder builder)
{
builder.Append ("\t{");
builder.Append (EncodeStringIdx (CurrencyDecimalSeparator) + ", ");
builder.Append (EncodeStringIdx (CurrencyGroupSeparator) + ", ");
builder.Append (EncodeStringIdx (PercentDecimalSeparator) + ", ");
builder.Append (EncodeStringIdx (PercentGroupSeparator) + ", ");
builder.Append (EncodeStringIdx (NumberDecimalSeparator) + ", ");
builder.Append (EncodeStringIdx (NumberGroupSeparator) + ", ");
builder.Append (EncodeStringIdx (CurrencySymbol) + ", ");
builder.Append (EncodeStringIdx (PercentSymbol) + ", ");
builder.Append (EncodeStringIdx (NaNSymbol) + ", ");
builder.Append (EncodeStringIdx (PerMilleSymbol) + ", ");
builder.Append (EncodeStringIdx (NegativeInfinitySymbol) + ", ");
builder.Append (EncodeStringIdx (PositiveInfinitySymbol) + ", ");
builder.Append (EncodeStringIdx (NegativeSign) + ", ");
builder.Append (EncodeStringIdx (PositiveSign) + ", ");
builder.Append (CurrencyNegativePattern + ", ");
builder.Append (CurrencyPositivePattern + ", ");
builder.Append (PercentNegativePattern + ", ");
builder.Append (PercentPositivePattern + ", ");
builder.Append (NumberNegativePattern + ", ");
builder.Append (CurrencyDecimalDigits + ", ");
builder.Append (PercentDecimalDigits + ", ");
builder.Append (NumberDecimalDigits + ", ");
AppendGroupSizes (builder, CurrencyGroupSizes);
builder.Append (", ");
AppendGroupSizes (builder, PercentGroupSizes);
builder.Append (", ");
AppendGroupSizes (builder, NumberGroupSizes);
builder.Append ('}');
}
static void AppendGroupSizes (StringBuilder builder, string[] gs)
{
builder.Append ('{');
for (int i = 0; i < gs.Length; i++) {
if (i > 0)
builder.Append (", ");
if (gs[i] == null)
builder.Append (-1);
else
builder.Append (gs[i]);
}
builder.Append ('}');
}
public override string ToString ()
{
StringBuilder builder = new StringBuilder ();
AppendTableRow (builder);
return builder.ToString ();
}
}
}

View File

@@ -0,0 +1 @@
41b8aaf5ef1c6244ecf4b4846f0b34dd3de4b675

View File

@@ -0,0 +1,53 @@
* purpose
This tool is to generate globalization information from Unicode CLDR, with some changes
to fill the gap between .NET(Windows)-ism and the global standard.
* input resources
There is only an external resource: unicode CLDR. It can be downloaded from
http://www.unicode.org/Public/cldr/
CLDR specificatin can be found at http://www.unicode.org/reports/tr35/
All content has to me extracted into CLDR folder. The latest version used is 21.
There is an extra mono resource included in this directory called lcids.xml for LCIDs. It's
extracted from National Language Support (NLS) API Reference.
http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx
* generated file
culture-info-table.h contains the following sections:
- datetime_format_entries
See DateTimeFormatEntry.AppendTableRow() in DateTimeFormatEntry.cs.
- number_format_entries
See NumberFormatEntry.AppendTableRow() in NumberFormatEntry.cs.
- culture_entries
See CultureInfoEntry.AppendTableRow() in CultureInfoEntry.cs.
- culture_name_entries
See Driver.Run() in Driver.cs.
- region_entries
See RegionInfoEntry.AppendTableRow() in RegionInfoEntry.cs.
- region_name_entries
See Driver.Run() in Driver.cs.
- locale_strings
See Driver.Run() in Driver.cs.
In each entry, strings are extracted to locale_strings table, and in each structure they are
represented as an index to the string.
* updating the data
Update Makefile.am to get the latest CLDR data. However, CLDR is not complete and
it's missing data for many rarely used cultures. In such cases we provide empty value
but when someone has the knowleadge what the values should be it's recommended to
use online CLDR tool to fill the data gap.
To create the files used by the runtime after an update, run:
make culture-table
make install-culture-table
At the start of Makefile.am there are additional instructions for specific builds.

View File

@@ -0,0 +1,60 @@
//
// Mono.Tools.LocaleBuilder.RegionInfoEntry
//
// Author(s):
// Atsushi Enomoto <atsushi@ximian.com>
//
// (C) 2005, Novell, Inc (http://www.novell.com)
//
using System;
using System.Text;
using System.Collections;
namespace Mono.Tools.LocaleBuilder
{
public class RegionInfoEntry : Entry
{
public int Index; // Used to link region from culture, it must be 0-based index from region_name_entries
public string GeoId;
public string TwoLetterISORegionName;
public string ThreeLetterISORegionName;
public string ThreeLetterWindowsRegionName;
public string EnglishName;
public string CurrencySymbol;
public string ISOCurrencySymbol;
public string CurrencyEnglishName;
public string Name;
public string DisplayName;
public string NativeName;
public string CurrencyNativeName;
public bool IsMetric = true;
public void AppendTableRow (StringBuilder builder)
{
builder.Append ("\t{ ");
builder.Append (GeoId).Append (',');
builder.Append (EncodeStringIdx (TwoLetterISORegionName)).Append (',');
builder.Append (EncodeStringIdx (ThreeLetterISORegionName)).Append (',');
builder.Append (EncodeStringIdx (ThreeLetterWindowsRegionName)).Append (',');
builder.Append (EncodeStringIdx (EnglishName)).Append (',');
builder.Append (EncodeStringIdx (NativeName)).Append (',');
builder.Append (EncodeStringIdx (CurrencySymbol)).Append (',');
builder.Append (EncodeStringIdx (ISOCurrencySymbol)).Append (',');
builder.Append (EncodeStringIdx (CurrencyEnglishName)).Append (',');
builder.Append (EncodeStringIdx (CurrencyNativeName));
builder.Append ('}');
}
public override string ToString ()
{
StringBuilder builder = new StringBuilder ();
AppendTableRow (builder);
return builder.ToString ();
}
}
}

View File

@@ -0,0 +1,63 @@
//
// TextInfoEntry.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2012 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System.Text;
namespace Mono.Tools.LocaleBuilder
{
public class TextInfoEntry : Entry
{
public string ANSICodePage;
public string EBCDICCodePage;
public string MacCodePage;
public string OEMCodePage;
public string ListSeparator;
public bool IsRightToLeft;
public override string ToString ()
{
StringBuilder b = new StringBuilder ();
b.Append ("{ ");
b.Append (ANSICodePage).Append (", ");
b.Append (EBCDICCodePage).Append (", ");
b.Append (MacCodePage).Append (", ");
b.Append (OEMCodePage).Append (", ");
b.Append (IsRightToLeft ? "1" : "0").Append (", '");
// TODO: It's more than 1 char for some cultures
if (ListSeparator.Length <= 1)
b.Append (ListSeparator);
else
b.Append (";");
b.Append ("' }");
return b.ToString ();
}
}
}

View File

@@ -0,0 +1,355 @@
<lcids>
<lcid name="ar" id="0x0001" parent="0x007F" iso2="ar" iso3="ara" win="ARA" />
<lcid name="bg" id="0x0002" parent="0x007F" iso2="bg" iso3="bul" win="BGR" />
<lcid name="ca" id="0x0003" parent="0x007F" iso2="ca" iso3="cat" win="CAT" />
<lcid name="zh_Hans" id="0x0004" parent="0x7804" iso2="zh" iso3="zho" win="CHS" />
<lcid name="zh_CHS" id="0x0004" parent="0x0004" iso2="zh" iso3="zho" win="CHS" />
<lcid name="cs" id="0x0005" parent="0x007F" iso2="cs" iso3="ces" win="CSY" />
<lcid name="da" id="0x0006" parent="0x007F" iso2="da" iso3="dan" win="DAN" />
<lcid name="de" id="0x0007" parent="0x007F" iso2="de" iso3="deu" win="DEU" />
<lcid name="el" id="0x0008" parent="0x007F" iso2="el" iso3="ell" win="ELL" />
<lcid name="en" id="0x0009" parent="0x007F" iso2="en" iso3="eng" win="ENU" />
<lcid name="es" id="0x000A" parent="0x007F" iso2="es" iso3="spa" win="ESP" />
<lcid name="fi" id="0x000B" parent="0x007F" iso2="fi" iso3="fin" win="FIN" />
<lcid name="fr" id="0x000C" parent="0x007F" iso2="fr" iso3="fra" win="FRA" />
<lcid name="he" id="0x000D" parent="0x007F" iso2="he" iso3="heb" win="HEB" />
<lcid name="hu" id="0x000E" parent="0x007F" iso2="hu" iso3="hun" win="HUN" />
<lcid name="is" id="0x000F" parent="0x007F" iso2="is" iso3="isl" win="ISL" />
<lcid name="it" id="0x0010" parent="0x007F" iso2="it" iso3="ita" win="ITA" />
<lcid name="ja" id="0x0011" parent="0x007F" iso2="ja" iso3="jpn" win="JPN" />
<lcid name="ko" id="0x0012" parent="0x007F" iso2="ko" iso3="kor" win="KOR" />
<lcid name="nl" id="0x0013" parent="0x007F" iso2="nl" iso3="nld" win="NLD" />
<lcid name="no" id="0x0014" parent="0x007F" iso2="nb" iso3="nob" win="NOR" />
<lcid name="pl" id="0x0015" parent="0x007F" iso2="pl" iso3="pol" win="PLK" />
<lcid name="pt" id="0x0016" parent="0x007F" iso2="pt" iso3="por" win="PTB" />
<lcid name="rm" id="0x0017" parent="0x007F" iso2="rm" iso3="roh" win="RMC" />
<lcid name="ro" id="0x0018" parent="0x007F" iso2="ro" iso3="ron" win="ROM" />
<lcid name="ru" id="0x0019" parent="0x007F" iso2="ru" iso3="rus" win="RUS" />
<lcid name="hr" id="0x001A" parent="0x007F" iso2="hr" iso3="hrv" win="HRV" />
<lcid name="sk" id="0x001B" parent="0x007F" iso2="sk" iso3="slk" win="SKY" />
<lcid name="sq" id="0x001C" parent="0x007F" iso2="sq" iso3="sqi" win="SQI" />
<lcid name="sv" id="0x001D" parent="0x007F" iso2="sv" iso3="swe" win="SVE" />
<lcid name="th" id="0x001E" parent="0x007F" iso2="th" iso3="tha" win="THA" />
<lcid name="tr" id="0x001F" parent="0x007F" iso2="tr" iso3="tur" win="TRK" />
<lcid name="ur" id="0x0020" parent="0x007F" iso2="ur" iso3="urd" win="URD" />
<lcid name="id" id="0x0021" parent="0x007F" iso2="id" iso3="ind" win="IND" />
<lcid name="uk" id="0x0022" parent="0x007F" iso2="uk" iso3="ukr" win="UKR" />
<lcid name="be" id="0x0023" parent="0x007F" iso2="be" iso3="bel" win="BEL" />
<lcid name="sl" id="0x0024" parent="0x007F" iso2="sl" iso3="slv" win="SLV" />
<lcid name="et" id="0x0025" parent="0x007F" iso2="et" iso3="est" win="ETI" />
<lcid name="lv" id="0x0026" parent="0x007F" iso2="lv" iso3="lav" win="LVI" />
<lcid name="lt" id="0x0027" parent="0x007F" iso2="lt" iso3="lit" win="LTH" />
<lcid name="tg" id="0x0028" parent="0x007F" iso2="tg" iso3="tgk" win="TAJ" />
<lcid name="fa" id="0x0029" parent="0x007F" iso2="fa" iso3="fas" win="FAR" />
<lcid name="vi" id="0x002A" parent="0x007F" iso2="vi" iso3="vie" win="VIT" />
<lcid name="hy" id="0x002B" parent="0x007F" iso2="hy" iso3="hye" win="HYE" />
<lcid name="az" id="0x002C" parent="0x007F" iso2="az" iso3="aze" win="AZE" />
<lcid name="eu" id="0x002D" parent="0x007F" iso2="eu" iso3="eus" win="EUQ" />
<lcid name="hsb" id="0x002E" parent="0x007F" iso2="hsb" iso3="hsb" win="HSB" />
<lcid name="mk" id="0x002F" parent="0x007F" iso2="mk" iso3="mkd" win="MKI" />
<lcid name="tn" id="0x0032" parent="0x007F" iso2="tn" iso3="tsn" win="TSN" />
<lcid name="xh" id="0x0034" parent="0x007F" iso2="xh" iso3="xho" win="XHO" />
<lcid name="zu" id="0x0035" parent="0x007F" iso2="zu" iso3="zul" win="ZUL" />
<lcid name="af" id="0x0036" parent="0x007F" iso2="af" iso3="afr" win="AFK" />
<lcid name="ka" id="0x0037" parent="0x007F" iso2="ka" iso3="kat" win="KAT" />
<lcid name="fo" id="0x0038" parent="0x007F" iso2="fo" iso3="fao" win="FOS" />
<lcid name="hi" id="0x0039" parent="0x007F" iso2="hi" iso3="hin" win="HIN" />
<lcid name="mt" id="0x003A" parent="0x007F" iso2="mt" iso3="mlt" win="MLT" />
<lcid name="se" id="0x003B" parent="0x007F" iso2="se" iso3="sme" win="SME" />
<lcid name="ga" id="0x003C" parent="0x007F" iso2="ga" iso3="gle" win="IRE" />
<lcid name="ms" id="0x003E" parent="0x007F" iso2="ms" iso3="msa" win="MSL" />
<lcid name="kk" id="0x003F" parent="0x007F" iso2="kk" iso3="kaz" win="KKZ" />
<lcid name="ky" id="0x0040" parent="0x007F" iso2="ky" iso3="kir" win="KYR" />
<lcid name="sw" id="0x0041" parent="0x007F" iso2="sw" iso3="swa" win="SWK" />
<lcid name="tk" id="0x0042" parent="0x007F" iso2="tk" iso3="tuk" win="TUK" />
<lcid name="uz" id="0x0043" parent="0x007F" iso2="uz" iso3="uzb" win="UZB" />
<lcid name="tt" id="0x0044" parent="0x007F" iso2="tt" iso3="tat" win="TTT" />
<lcid name="bn" id="0x0045" parent="0x007F" iso2="bn" iso3="bng" win="BNG" />
<lcid name="pa" id="0x0046" parent="0x007F" iso2="pa" iso3="pan" win="PAN" />
<lcid name="gu" id="0x0047" parent="0x007F" iso2="gu" iso3="guj" win="GUJ" />
<lcid name="or" id="0x0048" parent="0x007F" iso2="or" iso3="ori" win="ORI" />
<lcid name="ta" id="0x0049" parent="0x007F" iso2="ta" iso3="tam" win="TAM" />
<lcid name="te" id="0x004A" parent="0x007F" iso2="te" iso3="tel" win="TEL" />
<lcid name="kn" id="0x004B" parent="0x007F" iso2="kn" iso3="kan" win="KDI" />
<lcid name="ml" id="0x004C" parent="0x007F" iso2="ml" iso3="mym" win="MYM" />
<lcid name="as" id="0x004D" parent="0x007F" iso2="as" iso3="asm" win="ASM" />
<lcid name="mr" id="0x004E" parent="0x007F" iso2="mr" iso3="mar" win="MAR" />
<lcid name="sa" id="0x004F" parent="0x007F" iso2="sa" iso3="san" win="SAN" />
<lcid name="mn" id="0x0050" parent="0x007F" iso2="mn" iso3="mon" win="MON" />
<lcid name="bo" id="0x0051" parent="0x007F" iso2="bo" iso3="bod" win="BOB" />
<lcid name="cy" id="0x0052" parent="0x007F" iso2="cy" iso3="cym" win="CYM" />
<lcid name="km" id="0x0053" parent="0x007F" iso2="km" iso3="khm" win="KHM" />
<lcid name="lo" id="0x0054" parent="0x007F" iso2="lo" iso3="lao" win="LAO" />
<lcid name="gl" id="0x0056" parent="0x007F" iso2="gl" iso3="glg" win="GLC" />
<lcid name="kok" id="0x0057" parent="0x007F" iso2="kok" iso3="kok" win="KNK" />
<lcid name="syr" id="0x005A" parent="0x007F" iso2="syr" iso3="syr" win="SYR" />
<lcid name="si" id="0x005B" parent="0x007F" iso2="si" iso3="sin" win="SIN" />
<lcid name="iu" id="0x005D" parent="0x007F" iso2="iu" iso3="iku" win="IUK" />
<lcid name="am" id="0x005E" parent="0x007F" iso2="am" iso3="amh" win="AMH" />
<lcid name="tzm" id="0x005F" parent="0x007F" iso2="tzm" iso3="tzm" win="TZM" />
<lcid name="ne" id="0x0061" parent="0x007F" iso2="ne" iso3="nep" win="NEP" />
<lcid name="fy" id="0x0062" parent="0x007F" iso2="fy" iso3="fry" win="FYN" />
<lcid name="ps" id="0x0063" parent="0x007F" iso2="ps" iso3="pus" win="PAS" />
<lcid name="fil" id="0x0064" parent="0x007F" iso2="fil" iso3="fil" win="FPO" />
<lcid name="dv" id="0x0065" parent="0x007F" iso2="dv" iso3="div" win="DIV" />
<lcid name="ha" id="0x0068" parent="0x007F" iso2="ha" iso3="hau" win="HAU" />
<lcid name="yo" id="0x006A" parent="0x007F" iso2="yo" iso3="yor" win="YOR" />
<lcid name="quz" id="0x006B" parent="0x007F" iso2="quz" iso3="qub" win="QUB" />
<lcid name="nso" id="0x006C" parent="0x007F" iso2="nso" iso3="nso" win="NSO" />
<lcid name="ba" id="0x006D" parent="0x007F" iso2="ba" iso3="bak" win="BAS" />
<lcid name="lb" id="0x006E" parent="0x007F" iso2="lb" iso3="ltz" win="LBX" />
<lcid name="kl" id="0x006F" parent="0x007F" iso2="kl" iso3="kal" win="KAL" />
<lcid name="ig" id="0x0070" parent="0x007F" iso2="ig" iso3="ibo" win="IBO" />
<lcid name="ii" id="0x0078" parent="0x007F" iso2="ii" iso3="iii" win="III" />
<lcid name="arn" id="0x007A" parent="0x007F" iso2="arn" iso3="arn" win="MPD" />
<lcid name="moh" id="0x007C" parent="0x007F" iso2="moh" iso3="moh" win="MWK" />
<lcid name="br" id="0x007E" parent="0x007F" iso2="br" iso3="bre" win="BRE" />
<lcid name="ug" id="0x0080" parent="0x007F" iso2="ug" iso3="uig" win="UIG" />
<lcid name="mi" id="0x0081" parent="0x007F" iso2="mi" iso3="mri" win="MRI" />
<lcid name="oc" id="0x0082" parent="0x007F" iso2="oc" iso3="oci" win="OCI" />
<lcid name="co" id="0x0083" parent="0x007F" iso2="co" iso3="cos" win="COS" />
<lcid name="gsw" id="0x0084" parent="0x007F" iso2="gsw" iso3="gsw" win="GSW" />
<lcid name="sah" id="0x0085" parent="0x007F" iso2="sah" iso3="sah" win="SAH" />
<lcid name="qut" id="0x0086" parent="0x007F" iso2="qut" iso3="qut" win="QUT" />
<lcid name="rw" id="0x0087" parent="0x007F" iso2="rw" iso3="kin" win="KIN" />
<lcid name="wo" id="0x0088" parent="0x007F" iso2="wo" iso3="wol" win="WOL" />
<lcid name="prs" id="0x008C" parent="0x007F" iso2="prs" iso3="prs" win="PRS" />
<lcid name="gd" id="0x0091" parent="0x007F" iso2="gd" iso3="gla" win="GLA" />
<lcid name="ar_SA" id="0x0401" parent="0x0001" iso2="ar" iso3="ara" win="ARA" />
<lcid name="bg_BG" id="0x0402" parent="0x0002" iso2="bg" iso3="bul" win="BGR" />
<lcid name="ca_ES" id="0x0403" parent="0x0003" iso2="ca" iso3="cat" win="CAT" />
<lcid name="zh_TW" id="0x0404" parent="0x7C04" iso2="zh" iso3="zho" win="CHT" />
<lcid name="cs_CZ" id="0x0405" parent="0x0005" iso2="cs" iso3="ces" win="CSY" />
<lcid name="da_DK" id="0x0406" parent="0x0006" iso2="da" iso3="dan" win="DAN" />
<lcid name="de_DE" id="0x0407" parent="0x0007" iso2="de" iso3="deu" win="DEU" />
<lcid name="el_GR" id="0x0408" parent="0x0008" iso2="el" iso3="ell" win="ELL" />
<lcid name="en_US" id="0x0409" parent="0x0009" iso2="en" iso3="eng" win="ENU" />
<lcid name="fi_FI" id="0x040B" parent="0x000B" iso2="fi" iso3="fin" win="FIN" />
<lcid name="fr_FR" id="0x040C" parent="0x000C" iso2="fr" iso3="fra" win="FRA" />
<lcid name="he_IL" id="0x040D" parent="0x000D" iso2="he" iso3="heb" win="HEB" />
<lcid name="hu_HU" id="0x040E" parent="0x000E" iso2="hu" iso3="hun" win="HUN" />
<lcid name="is_IS" id="0x040F" parent="0x000F" iso2="is" iso3="isl" win="ISL" />
<lcid name="it_IT" id="0x0410" parent="0x0010" iso2="it" iso3="ita" win="ITA" />
<lcid name="ja_JP" id="0x0411" parent="0x0011" iso2="ja" iso3="jpn" win="JPN" />
<lcid name="ko_KR" id="0x0412" parent="0x0012" iso2="ko" iso3="kor" win="KOR" />
<lcid name="nl_NL" id="0x0413" parent="0x0013" iso2="nl" iso3="nld" win="NLD" />
<lcid name="nb_NO" id="0x0414" parent="0x7C14" iso2="nb" iso3="nob" win="NOR" />
<lcid name="pl_PL" id="0x0415" parent="0x0015" iso2="pl" iso3="pol" win="PLK" />
<lcid name="pt_BR" id="0x0416" parent="0x0016" iso2="pt" iso3="por" win="PTB" />
<lcid name="rm_CH" id="0x0417" parent="0x0017" iso2="rm" iso3="roh" win="RMC" />
<lcid name="ro_RO" id="0x0418" parent="0x0018" iso2="ro" iso3="ron" win="ROM" />
<lcid name="ru_RU" id="0x0419" parent="0x0019" iso2="ru" iso3="rus" win="RUS" />
<lcid name="hr_HR" id="0x041A" parent="0x001A" iso2="hr" iso3="hrv" win="HRV" />
<lcid name="sk_SK" id="0x041B" parent="0x001B" iso2="sk" iso3="slk" win="SKY" />
<lcid name="sq_AL" id="0x041C" parent="0x001C" iso2="sq" iso3="sqi" win="SQI" />
<lcid name="sv_SE" id="0x041D" parent="0x001D" iso2="sv" iso3="swe" win="SVE" />
<lcid name="th_TH" id="0x041E" parent="0x001E" iso2="th" iso3="tha" win="THA" />
<lcid name="tr_TR" id="0x041F" parent="0x001F" iso2="tr" iso3="tur" win="TRK" />
<lcid name="ur_PK" id="0x0420" parent="0x0020" iso2="ur" iso3="urd" win="URD" />
<lcid name="id_ID" id="0x0421" parent="0x0021" iso2="id" iso3="ind" win="IND" />
<lcid name="uk_UA" id="0x0422" parent="0x0022" iso2="uk" iso3="ukr" win="UKR" />
<lcid name="be_BY" id="0x0423" parent="0x0023" iso2="be" iso3="bel" win="BEL" />
<lcid name="sl_SI" id="0x0424" parent="0x0024" iso2="sl" iso3="slv" win="SLV" />
<lcid name="et_EE" id="0x0425" parent="0x0025" iso2="et" iso3="est" win="ETI" />
<lcid name="lv_LV" id="0x0426" parent="0x0026" iso2="lv" iso3="lav" win="LVI" />
<lcid name="lt_LT" id="0x0427" parent="0x0027" iso2="lt" iso3="lit" win="LTH" />
<lcid name="tg_Cyrl_TJ" id="0x0428" parent="0x7C28" iso2="tg" iso3="tgk" win="TAJ" />
<lcid name="fa_IR" id="0x0429" parent="0x0029" iso2="fa" iso3="fas" win="FAR" />
<lcid name="vi_VN" id="0x042A" parent="0x002A" iso2="vi" iso3="vie" win="VIT" />
<lcid name="hy_AM" id="0x042B" parent="0x002B" iso2="hy" iso3="hye" win="HYE" />
<lcid name="az_Latn_AZ" id="0x042C" parent="0x782C" iso2="az" iso3="aze" win="AZE" />
<lcid name="eu_ES" id="0x042D" parent="0x002D" iso2="eu" iso3="eus" win="EUQ" />
<lcid name="hsb_DE" id="0x042E" parent="0x002E" iso2="hsb" iso3="hsb" win="HSB" />
<lcid name="mk_MK" id="0x042F" parent="0x002F" iso2="mk" iso3="mkd" win="MKI" />
<lcid name="tn_ZA" id="0x0432" parent="0x0032" iso2="tn" iso3="tsn" win="TSN" />
<lcid name="xh_ZA" id="0x0434" parent="0x0034" iso2="xh" iso3="xho" win="XHO" />
<lcid name="zu_ZA" id="0x0435" parent="0x0035" iso2="zu" iso3="zul" win="ZUL" />
<lcid name="af_ZA" id="0x0436" parent="0x0036" iso2="af" iso3="afr" win="AFK" />
<lcid name="ka_GE" id="0x0437" parent="0x0037" iso2="ka" iso3="kat" win="KAT" />
<lcid name="fo_FO" id="0x0438" parent="0x0038" iso2="fo" iso3="fao" win="FOS" />
<lcid name="hi_IN" id="0x0439" parent="0x0039" iso2="hi" iso3="hin" win="HIN" />
<lcid name="mt_MT" id="0x043A" parent="0x003A" iso2="mt" iso3="mlt" win="MLT" />
<lcid name="se_NO" id="0x043B" parent="0x003B" iso2="se" iso3="sme" win="SME" />
<lcid name="ms_MY" id="0x043E" parent="0x003E" iso2="ms" iso3="msa" win="MSL" />
<lcid name="kk_KZ" id="0x043F" parent="0x003F" iso2="kk" iso3="kaz" win="KKZ" />
<lcid name="ky_KG" id="0x0440" parent="0x0040" iso2="ky" iso3="kir" win="KYR" />
<lcid name="sw_KE" id="0x0441" parent="0x0041" iso2="sw" iso3="swa" win="SWK" />
<lcid name="tk_TM" id="0x0442" parent="0x0042" iso2="tk" iso3="tuk" win="TUK" />
<lcid name="uz_Latn_UZ" id="0x0443" parent="0x7C43" iso2="uz" iso3="uzb" win="UZB" />
<lcid name="tt_RU" id="0x0444" parent="0x0044" iso2="tt" iso3="tat" win="TTT" />
<lcid name="bn_IN" id="0x0445" parent="0x0045" iso2="bn" iso3="bng" win="BNG" />
<lcid name="pa_IN" id="0x0446" parent="0x0046" iso2="pa" iso3="pan" win="PAN" />
<lcid name="gu_IN" id="0x0447" parent="0x0047" iso2="gu" iso3="guj" win="GUJ" />
<lcid name="or_IN" id="0x0448" parent="0x0048" iso2="or" iso3="ori" win="ORI" />
<lcid name="ta_IN" id="0x0449" parent="0x0049" iso2="ta" iso3="tam" win="TAM" />
<lcid name="te_IN" id="0x044A" parent="0x004A" iso2="te" iso3="tel" win="TEL" />
<lcid name="kn_IN" id="0x044B" parent="0x004B" iso2="kn" iso3="kan" win="KDI" />
<lcid name="ml_IN" id="0x044C" parent="0x004C" iso2="ml" iso3="mym" win="MYM" />
<lcid name="as_IN" id="0x044D" parent="0x004D" iso2="as" iso3="asm" win="ASM" />
<lcid name="mr_IN" id="0x044E" parent="0x004E" iso2="mr" iso3="mar" win="MAR" />
<lcid name="sa_IN" id="0x044F" parent="0x004F" iso2="sa" iso3="san" win="SAN" />
<lcid name="mn_MN" id="0x0450" parent="0x7850" iso2="mn" iso3="mon" win="MNN" />
<lcid name="bo_CN" id="0x0451" parent="0x0051" iso2="bo" iso3="bod" win="BOB" />
<lcid name="cy_GB" id="0x0452" parent="0x0052" iso2="cy" iso3="cym" win="CYM" />
<lcid name="km_KH" id="0x0453" parent="0x0053" iso2="km" iso3="khm" win="KHM" />
<lcid name="lo_LA" id="0x0454" parent="0x0054" iso2="lo" iso3="lao" win="LAO" />
<lcid name="gl_ES" id="0x0456" parent="0x0056" iso2="gl" iso3="glg" win="GLC" />
<lcid name="kok_IN" id="0x0457" parent="0x0057" iso2="kok" iso3="kok" win="KNK" />
<lcid name="syr_SY" id="0x045A" parent="0x005A" iso2="syr" iso3="syr" win="SYR" />
<lcid name="si_LK" id="0x045B" parent="0x005B" iso2="si" iso3="sin" win="SIN" />
<lcid name="iu_Cans_CA" id="0x045D" parent="0x785D" iso2="iu" iso3="iku" win="IUS" />
<lcid name="am_ET" id="0x045E" parent="0x005E" iso2="am" iso3="amh" win="AMH" />
<lcid name="ne_NP" id="0x0461" parent="0x0061" iso2="ne" iso3="nep" win="NEP" />
<lcid name="fy_NL" id="0x0462" parent="0x0062" iso2="fy" iso3="fry" win="FYN" />
<lcid name="ps_AF" id="0x0463" parent="0x0063" iso2="ps" iso3="pus" win="PAS" />
<lcid name="fil_PH" id="0x0464" parent="0x0064" iso2="fil" iso3="fil" win="FPO" />
<lcid name="dv_MV" id="0x0465" parent="0x0065" iso2="dv" iso3="div" win="DIV" />
<lcid name="ha_Latn_NG" id="0x0468" parent="0x7C68" iso2="ha" iso3="hau" win="HAU" />
<lcid name="yo_NG" id="0x046A" parent="0x006A" iso2="yo" iso3="yor" win="YOR" />
<lcid name="quz_BO" id="0x046B" parent="0x006B" iso2="quz" iso3="qub" win="QUB" />
<lcid name="nso_ZA" id="0x046C" parent="0x006C" iso2="nso" iso3="nso" win="NSO" />
<lcid name="ba_RU" id="0x046D" parent="0x006D" iso2="ba" iso3="bak" win="BAS" />
<lcid name="lb_LU" id="0x046E" parent="0x006E" iso2="lb" iso3="ltz" win="LBX" />
<lcid name="kl_GL" id="0x046F" parent="0x006F" iso2="kl" iso3="kal" win="KAL" />
<lcid name="ig_NG" id="0x0470" parent="0x0070" iso2="ig" iso3="ibo" win="IBO" />
<lcid name="ii_CN" id="0x0478" parent="0x0078" iso2="ii" iso3="iii" win="III" />
<lcid name="arn_CL" id="0x047A" parent="0x007A" iso2="arn" iso3="arn" win="MPD" />
<lcid name="moh_CA" id="0x047C" parent="0x007C" iso2="moh" iso3="moh" win="MWK" />
<lcid name="br_FR" id="0x047E" parent="0x007E" iso2="br" iso3="bre" win="BRE" />
<lcid name="ug_CN" id="0x0480" parent="0x0080" iso2="ug" iso3="uig" win="UIG" />
<lcid name="mi_NZ" id="0x0481" parent="0x0081" iso2="mi" iso3="mri" win="MRI" />
<lcid name="oc_FR" id="0x0482" parent="0x0082" iso2="oc" iso3="oci" win="OCI" />
<lcid name="co_FR" id="0x0483" parent="0x0083" iso2="co" iso3="cos" win="COS" />
<lcid name="gsw_FR" id="0x0484" parent="0x0084" iso2="gsw" iso3="gsw" win="GSW" />
<lcid name="sah_RU" id="0x0485" parent="0x0085" iso2="sah" iso3="sah" win="SAH" />
<lcid name="qut_GT" id="0x0486" parent="0x0086" iso2="qut" iso3="qut" win="QUT" />
<lcid name="rw_RW" id="0x0487" parent="0x0087" iso2="rw" iso3="kin" win="KIN" />
<lcid name="wo_SN" id="0x0488" parent="0x0088" iso2="wo" iso3="wol" win="WOL" />
<lcid name="prs_AF" id="0x048C" parent="0x008C" iso2="prs" iso3="prs" win="PRS" />
<lcid name="gd_GB" id="0x0491" parent="0x0091" iso2="gd" iso3="gla" win="GLA" />
<lcid name="ar_IQ" id="0x0801" parent="0x0001" iso2="ar" iso3="ara" win="ARI" />
<lcid name="zh_CN" id="0x0804" parent="0x0004" iso2="zh" iso3="zho" win="CHS" />
<lcid name="de_CH" id="0x0807" parent="0x0007" iso2="de" iso3="deu" win="DES" />
<lcid name="en_GB" id="0x0809" parent="0x0009" iso2="en" iso3="eng" win="ENG" />
<lcid name="es_MX" id="0x080A" parent="0x000A" iso2="es" iso3="spa" win="ESM" />
<lcid name="fr_BE" id="0x080C" parent="0x000C" iso2="fr" iso3="fra" win="FRB" />
<lcid name="it_CH" id="0x0810" parent="0x0010" iso2="it" iso3="ita" win="ITS" />
<lcid name="nl_BE" id="0x0813" parent="0x0013" iso2="nl" iso3="nld" win="NLB" />
<lcid name="nn_NO" id="0x0814" parent="0x7814" iso2="nn" iso3="nno" win="NON" />
<lcid name="pt_PT" id="0x0816" parent="0x0016" iso2="pt" iso3="por" win="PTG" />
<lcid name="sr_Latn_CS" id="0x081A" parent="0x701A" iso2="sr" iso3="srp" win="SRL" />
<lcid name="sv_FI" id="0x081D" parent="0x001D" iso2="sv" iso3="swe" win="SVF" />
<lcid name="az_Cyrl_AZ" id="0x082C" parent="0x742C" iso2="az" iso3="aze" win="AZC" />
<lcid name="dsb_DE" id="0x082E" parent="0x7C2E" iso2="dsb" iso3="dsb" win="DSB" />
<lcid name="se_SE" id="0x083B" parent="0x003B" iso2="se" iso3="smf" win="SMF" />
<lcid name="ga_IE" id="0x083C" parent="0x003C" iso2="ga" iso3="gle" win="IRE" />
<lcid name="ms_BN" id="0x083E" parent="0x003E" iso2="ms" iso3="msa" win="MSB" />
<lcid name="uz_Cyrl_UZ" id="0x0843" parent="0x7843" iso2="uz" iso3="uzb" win="UZB" />
<lcid name="bn_BD" id="0x0845" parent="0x0045" iso2="bn" iso3="bng" win="BNB" />
<lcid name="mn_Mong_CN" id="0x0850" parent="0x7C50" iso2="mn" iso3="mon" win="MNG" />
<lcid name="iu_Latn_CA" id="0x085D" parent="0x7C5D" iso2="iu" iso3="iku" win="IUK" />
<lcid name="tzm_Latn_DZ" id="0x085F" parent="0x7C5F" iso2="tzm" iso3="tzm" win="TZM" />
<lcid name="quz_EC" id="0x086B" parent="0x006B" iso2="quz" iso3="que" win="QUE" />
<lcid name="ar_EG" id="0x0C01" parent="0x0001" iso2="ar" iso3="ara" win="ARE" />
<lcid name="zh_HK" id="0x0C04" parent="0x7C04" iso2="zh" iso3="zho" win="ZHH" />
<lcid name="de_AT" id="0x0C07" parent="0x0007" iso2="de" iso3="deu" win="DEA" />
<lcid name="en_AU" id="0x0C09" parent="0x0009" iso2="en" iso3="eng" win="ENA" />
<lcid name="es_ES" id="0x0C0A" parent="0x000A" iso2="es" iso3="spa" win="ESN" />
<lcid name="fr_CA" id="0x0C0C" parent="0x000C" iso2="fr" iso3="fra" win="FRC" />
<lcid name="sr_Cyrl_CS" id="0x0C1A" parent="0x6C1A" iso2="sr" iso3="srp" win="SRB" />
<lcid name="se_FI" id="0x0C3B" parent="0x003B" iso2="se" iso3="smg" win="SMG" />
<lcid name="quz_PE" id="0x0C6B" parent="0x006B" iso2="quz" iso3="qup" win="QUP" />
<lcid name="ar_LY" id="0x1001" parent="0x0001" iso2="ar" iso3="ara" win="ARL" />
<lcid name="zh_SG" id="0x1004" parent="0x0004" iso2="zh" iso3="zho" win="ZHI" />
<lcid name="de_LU" id="0x1007" parent="0x0007" iso2="de" iso3="deu" win="DEL" />
<lcid name="en_CA" id="0x1009" parent="0x0009" iso2="en" iso3="eng" win="ENC" />
<lcid name="es_GT" id="0x100A" parent="0x000A" iso2="es" iso3="spa" win="ESG" />
<lcid name="fr_CH" id="0x100C" parent="0x000C" iso2="fr" iso3="fra" win="FRS" />
<lcid name="hr_BA" id="0x101A" parent="0x001A" iso2="hr" iso3="hrb" win="HRB" />
<lcid name="smj_NO" id="0x103B" parent="0x7C3B" iso2="smj" iso3="smj" win="SMJ" />
<lcid name="ar_DZ" id="0x1401" parent="0x0001" iso2="ar" iso3="ara" win="ARG" />
<lcid name="zh_MO" id="0x1404" parent="0x7C04" iso2="zh" iso3="zho" win="ZHM" />
<lcid name="de_LI" id="0x1407" parent="0x0007" iso2="de" iso3="deu" win="DEC" />
<lcid name="en_NZ" id="0x1409" parent="0x0009" iso2="en" iso3="eng" win="ENZ" />
<lcid name="es_CR" id="0x140A" parent="0x000A" iso2="es" iso3="spa" win="ESC" />
<lcid name="fr_LU" id="0x140C" parent="0x000C" iso2="fr" iso3="fra" win="FRL" />
<lcid name="bs_Latn_BA" id="0x141A" parent="0x681A" iso2="bs" iso3="bsb" win="BSB" />
<lcid name="smj_SE" id="0x143B" parent="0x7C3B" iso2="smj" iso3="smk" win="SMK" />
<lcid name="ar_MA" id="0x1801" parent="0x0001" iso2="ar" iso3="ara" win="ARM" />
<lcid name="en_IE" id="0x1809" parent="0x0009" iso2="en" iso3="eng" win="ENI" />
<lcid name="es_PA" id="0x180A" parent="0x000A" iso2="es" iso3="spa" win="ESA" />
<lcid name="fr_MC" id="0x180C" parent="0x000C" iso2="fr" iso3="fra" win="FRM" />
<lcid name="sr_Latn_BA" id="0x181A" parent="0x701A" iso2="sr" iso3="srs" win="SRS" />
<lcid name="sma_NO" id="0x183B" parent="0x783B" iso2="sma" iso3="sma" win="SMA" />
<lcid name="ar_TN" id="0x1C01" parent="0x0001" iso2="ar" iso3="ara" win="ART" />
<lcid name="en_ZA" id="0x1C09" parent="0x0009" iso2="en" iso3="eng" win="ENS" />
<lcid name="es_DO" id="0x1C0A" parent="0x000A" iso2="es" iso3="spa" win="ESD" />
<lcid name="sr_Cyrl_BA" id="0x1C1A" parent="0x6C1A" iso2="sr" iso3="srn" win="SRN" />
<lcid name="sma_SE" id="0x1C3B" parent="0x783B" iso2="sma" iso3="smb" win="SMB" />
<lcid name="ar_OM" id="0x2001" parent="0x0001" iso2="ar" iso3="ara" win="ARO" />
<lcid name="en_JM" id="0x2009" parent="0x0009" iso2="en" iso3="eng" win="ENJ" />
<lcid name="es_VE" id="0x200A" parent="0x000A" iso2="es" iso3="spa" win="ESV" />
<lcid name="bs_Cyrl_BA" id="0x201A" parent="0x641A" iso2="bs" iso3="bsc" win="BSC" />
<lcid name="sms_FI" id="0x203B" parent="0x743B" iso2="sms" iso3="sms" win="SMS" />
<lcid name="ar_YE" id="0x2401" parent="0x0001" iso2="ar" iso3="ara" win="ARY" />
<lcid name="en_029" id="0x2409" parent="0x0009" iso2="en" iso3="eng" win="ENB" />
<lcid name="es_CO" id="0x240A" parent="0x000A" iso2="es" iso3="spa" win="ESO" />
<lcid name="sr_Latn_RS" id="0x241A" parent="0x701A" iso2="sr" iso3="srp" win="SRM" />
<lcid name="smn_FI" id="0x243B" parent="0x703B" iso2="smn" iso3="smn" win="SMN" />
<lcid name="ar_SY" id="0x2801" parent="0x0001" iso2="ar" iso3="ara" win="ARS" />
<lcid name="en_BZ" id="0x2809" parent="0x0009" iso2="en" iso3="eng" win="ENL" />
<lcid name="es_PE" id="0x280A" parent="0x000A" iso2="es" iso3="spa" win="ESR" />
<lcid name="sr_Cyrl_RS" id="0x281A" parent="0x6C1A" iso2="sr" iso3="srp" win="SRO" />
<lcid name="ar_JO" id="0x2C01" parent="0x0001" iso2="ar" iso3="ara" win="ARJ" />
<lcid name="en_TT" id="0x2C09" parent="0x0009" iso2="en" iso3="eng" win="ENT" />
<lcid name="es_AR" id="0x2C0A" parent="0x000A" iso2="es" iso3="spa" win="ESS" />
<lcid name="sr_Latn_ME" id="0x2C1A" parent="0x701A" iso2="sr" iso3="srp" win="SRP" />
<lcid name="ar_LB" id="0x3001" parent="0x0001" iso2="ar" iso3="ara" win="ARB" />
<lcid name="en_ZW" id="0x3009" parent="0x0009" iso2="en" iso3="eng" win="ENW" />
<lcid name="es_EC" id="0x300A" parent="0x000A" iso2="es" iso3="spa" win="ESF" />
<lcid name="sr_Cyrl_ME" id="0x301A" parent="0x6C1A" iso2="sr" iso3="srp" win="SRQ" />
<lcid name="ar_KW" id="0x3401" parent="0x0001" iso2="ar" iso3="ara" win="ARK" />
<lcid name="en_PH" id="0x3409" parent="0x0009" iso2="en" iso3="eng" win="ENP" />
<lcid name="es_CL" id="0x340A" parent="0x000A" iso2="es" iso3="spa" win="ESL" />
<lcid name="ar_AE" id="0x3801" parent="0x0001" iso2="ar" iso3="ara" win="ARU" />
<lcid name="es_UY" id="0x380A" parent="0x000A" iso2="es" iso3="spa" win="ESY" />
<lcid name="ar_BH" id="0x3C01" parent="0x0001" iso2="ar" iso3="ara" win="ARH" />
<lcid name="es_PY" id="0x3C0A" parent="0x000A" iso2="es" iso3="spa" win="ESZ" />
<lcid name="ar_QA" id="0x4001" parent="0x0001" iso2="ar" iso3="ara" win="ARQ" />
<lcid name="en_IN" id="0x4009" parent="0x0009" iso2="en" iso3="eng" win="ENN" />
<lcid name="es_BO" id="0x400A" parent="0x000A" iso2="es" iso3="spa" win="ESB" />
<lcid name="en_MY" id="0x4409" parent="0x0009" iso2="en" iso3="eng" win="ENM" />
<lcid name="es_SV" id="0x440A" parent="0x000A" iso2="es" iso3="spa" win="ESE" />
<lcid name="en_SG" id="0x4809" parent="0x0009" iso2="en" iso3="eng" win="ENE" />
<lcid name="es_HN" id="0x480A" parent="0x000A" iso2="es" iso3="spa" win="ESH" />
<lcid name="es_NI" id="0x4C0A" parent="0x000A" iso2="es" iso3="spa" win="ESI" />
<lcid name="es_PR" id="0x500A" parent="0x000A" iso2="es" iso3="spa" win="ESU" />
<lcid name="es_US" id="0x540A" parent="0x000A" iso2="es" iso3="spa" win="EST" />
<lcid name="bs_Cyrl" id="0x641A" parent="0x781A" iso2="bs" iso3="bsc" win="BSC" />
<lcid name="bs_Latn" id="0x681A" parent="0x781A" iso2="bs" iso3="bsb" win="BSB" />
<lcid name="sr_Cyrl" id="0x6C1A" parent="0x7C1A" iso2="sr" iso3="srp" win="SRO" />
<lcid name="sr_Latn" id="0x701A" parent="0x7C1A" iso2="sr" iso3="srp" win="SRM" />
<lcid name="smn" id="0x703B" parent="0x003B" iso2="smn" iso3="smn" win="SMN" />
<lcid name="az_Cyrl" id="0x742C" parent="0x002C" iso2="az" iso3="aze" win="AZC" />
<lcid name="sms" id="0x743B" parent="0x003B" iso2="sms" iso3="sms" win="SMS" />
<lcid name="zh" id="0x7804" parent="0x007F" iso2="zh" iso3="zho" win="CHS" />
<lcid name="nn" id="0x7814" parent="0x0014" iso2="nn" iso3="nno" win="NON" />
<lcid name="bs" id="0x781A" parent="0x007F" iso2="bs" iso3="bsb" win="BSB" />
<lcid name="az_Latn" id="0x782C" parent="0x002C" iso2="az" iso3="aze" win="AZE" />
<lcid name="sma" id="0x783B" parent="0x003B" iso2="sma" iso3="smb" win="SMB" />
<lcid name="uz_Cyrl" id="0x7843" parent="0x0043" iso2="uz" iso3="uzb" win="UZB" />
<lcid name="mn_Cyrl" id="0x7850" parent="0x0050" iso2="mn" iso3="mon" win="MNN" />
<lcid name="iu_Cans" id="0x785D" parent="0x005D" iso2="iu" iso3="iku" win="IUS" />
<lcid name="zh_Hant" id="0x7C04" parent="0x7804" iso2="zh" iso3="zho" win="CHT" />
<lcid name="zh_CHT" id="0x7C04" parent="0x7C04" iso2="zh" iso3="zho" win="CHT" />
<lcid name="nb" id="0x7C14" parent="0x0014" iso2="nb" iso3="nob" win="NOR" />
<lcid name="sr" id="0x7C1A" parent="0x007F" iso2="sr" iso3="srp" win="SRB" />
<lcid name="tg_Cyrl" id="0x7C28" parent="0x0028" iso2="tg" iso3="tgk" win="TAJ" />
<lcid name="dsb" id="0x7C2E" parent="0x002E" iso2="dsb" iso3="dsb" win="DSB" />
<lcid name="smj" id="0x7C3B" parent="0x003B" iso2="smj" iso3="smk" win="SMK" />
<lcid name="uz_Latn" id="0x7C43" parent="0x0043" iso2="uz" iso3="uzb" win="UZB" />
<lcid name="mn_Mong" id="0x7C50" parent="0x0050" iso2="mn" iso3="mon" win="MNG" />
<lcid name="iu_Latn" id="0x7C5D" parent="0x005D" iso2="iu" iso3="iku" win="IUK" />
<lcid name="tzm_Latn" id="0x7C5F" parent="0x005F" iso2="tzm" iso3="tzm" win="TZM" />
<lcid name="ha_Latn" id="0x7C68" parent="0x0068" iso2="ha" iso3="hau" win="HAU" />
</lcids>

9
tools/sgen/Makefile.am Normal file
View File

@@ -0,0 +1,9 @@
bin_PROGRAMS = sgen-grep-binprot
AM_CPPFLAGS = $(GLIB_CFLAGS) -I$(top_srcdir)
sgen_grep_binprot_SOURCES = \
sgen-grep-binprot.c
sgen_grep_binprot_LDADD = \
$(GLIB_LIBS) $(LIBICONV)

710
tools/sgen/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff