mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-11 16:03:20 +00:00
ICU-10013 ICU 51 tools tree maintenance branch, from icu/tools/trunk r33429
X-SVN-Rev: 33430
This commit is contained in:
commit
52762fcad5
357 changed files with 94933 additions and 0 deletions
179
.gitattributes
vendored
Normal file
179
.gitattributes
vendored
Normal file
|
@ -0,0 +1,179 @@
|
|||
* text=auto !eol
|
||||
|
||||
*.c text !eol
|
||||
*.cc text !eol
|
||||
*.classpath text !eol
|
||||
*.cpp text !eol
|
||||
*.css text !eol
|
||||
*.dsp text !eol
|
||||
*.dsw text !eol
|
||||
*.filters text !eol
|
||||
*.h text !eol
|
||||
*.htm text !eol
|
||||
*.html text !eol
|
||||
*.in text !eol
|
||||
*.java text !eol
|
||||
*.launch text !eol
|
||||
*.mak text !eol
|
||||
*.md text !eol
|
||||
*.MF text !eol
|
||||
*.mk text !eol
|
||||
*.pl text !eol
|
||||
*.pm text !eol
|
||||
*.project text !eol
|
||||
*.properties text !eol
|
||||
*.py text !eol
|
||||
*.rc text !eol
|
||||
*.sh text eol=lf
|
||||
*.sln text !eol
|
||||
*.stub text !eol
|
||||
*.txt text !eol
|
||||
*.ucm text !eol
|
||||
*.vcproj text !eol
|
||||
*.vcxproj text !eol
|
||||
*.xml text !eol
|
||||
*.xsl text !eol
|
||||
*.xslt text !eol
|
||||
Makefile text !eol
|
||||
configure text !eol
|
||||
LICENSE text !eol
|
||||
README text !eol
|
||||
|
||||
*.bin -text
|
||||
*.brk -text
|
||||
*.cnv -text
|
||||
*.icu -text
|
||||
*.res -text
|
||||
*.nrm -text
|
||||
*.spp -text
|
||||
*.tri2 -text
|
||||
|
||||
currency/.classpath -text
|
||||
currency/.project -text
|
||||
currency/.settings/org.eclipse.core.resources.prefs -text
|
||||
currency/.settings/org.eclipse.jdt.core.prefs -text
|
||||
currency/.settings/org.eclipse.jdt.ui.prefs -text
|
||||
multi/c/Makefile-c.inc -text
|
||||
multi/c/patch/3_0 -text
|
||||
multi/c/patch/3_2 -text
|
||||
multi/c/patch/3_4_1 -text
|
||||
multi/common/Makefile-multi.inc -text
|
||||
multi/j/Makefile-j.inc -text
|
||||
multi/proj/icu4cscan/Makefile -text
|
||||
multi/proj/icu4cscan/Makefile.local.sample -text
|
||||
multi/proj/icu4cscan/Makefile_c -text
|
||||
multi/proj/icu4cscan/Makefile_j -text
|
||||
multi/proj/icu4cscan/dtd/icucaps.dtd -text
|
||||
multi/proj/icu4cscan/old-xmls.tar.bz2 -text
|
||||
multi/proj/icu4cscan/zappit.sed -text
|
||||
multi/proj/icu4jscan/.classpath -text
|
||||
multi/proj/icu4jscan/.project -text
|
||||
multi/proj/icu4jscan/src/com/ibm/icu/dev/scan/CapDocument.java -text
|
||||
multi/proj/icu4jscan/src/com/ibm/icu/dev/scan/CapElement.java -text
|
||||
multi/proj/icu4jscan/src/com/ibm/icu/dev/scan/CapNode.java -text
|
||||
multi/proj/icu4jscan/src/com/ibm/icu/dev/scan/CapScan.java -text
|
||||
multi/proj/icu4jscan/src/com/ibm/icu/dev/scan/ScanICU.java -text
|
||||
multi/proj/icu4jscan/src/com/ibm/icu/dev/scan/ScanJava.java -text
|
||||
multi/proj/icu4jscan/src/com/ibm/icu/dev/scan/SimpleScan.java -text
|
||||
multi/proj/icu4jscan/src/com/ibm/icu/dev/scan/Spinner.java -text
|
||||
multi/proj/provider/Makefile.local-sample -text
|
||||
multi/proj/provider/icu-config.sed -text
|
||||
multi/proj/provider/readme.txt -text
|
||||
release/c/bomfix.py -text
|
||||
release/java/.classpath -text
|
||||
release/java/.project -text
|
||||
release/java/Makefile -text
|
||||
release/java/icu4c.css -text
|
||||
release/java/src/com/ibm/icu/dev/tools/docs/dumpAllCFunc_xml.xslt -text
|
||||
release/java/src/com/ibm/icu/dev/tools/docs/dumpAllCppFunc_xml.xslt -text
|
||||
release/java/src/com/ibm/icu/dev/tools/docs/genreport_xml.xslt -text
|
||||
scripts/icurun -text
|
||||
scripts/reticket -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/__init__.py -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/dcut.py -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/htdocs/css/icuxtn.css -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/htdocs/js/review.js -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/review.py -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/templates/nothing.html -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/templates/review.html -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/ticketmgr.py -text
|
||||
trac/IcuCodeTools/0.11/icucodetools/tktlist.py -text
|
||||
trac/IcuCodeTools/0.11/license.html -text
|
||||
trac/IcuCodeTools/0.11/readme.txt -text
|
||||
trac/IcuCodeTools/0.11/setup.cfg -text
|
||||
trac/IcuCodeTools/0.11/setup.py -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/__init__.py -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/dcut.py -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/htdocs/css/icuxtn.css -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/htdocs/js/review.js -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/review.py -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/templates/nothing.html -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/templates/review.html -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/ticketmgr.py -text
|
||||
trac/IcuCodeTools/0.12/icucodetools/tktlist.py -text
|
||||
trac/IcuCodeTools/0.12/license.html -text
|
||||
trac/IcuCodeTools/0.12/readme.txt -text
|
||||
trac/IcuCodeTools/0.12/setup.cfg -text
|
||||
trac/IcuCodeTools/0.12/setup.py -text
|
||||
unicodetools/com/ibm/rbm/docs/images/TitleLogo_transparent.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/arrow_bullet.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/diamond_bullet.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/ibm_logo_small_white.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/RBReporter.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/basic_file.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/basic_group.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/basic_resource.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/basic_translation.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/basic_untranslated.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/create_group.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/empty_group.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/empty_resource.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/empty_screen.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/empty_with_preferences.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/laf_metal.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/laf_motif.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/laf_windows.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/lookup_resource.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/main_page.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/menu_file.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/menu_file_export.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/menu_file_import.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/menu_help.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/menu_options.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/menu_popup_tree.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/new_baseclass.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/new_bundle.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/preferences_dialog.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_groups_bundle.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_groups_file.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_search.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_stats_bundle.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_stats_file.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_tree_basic.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_untrans_bundle.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_untrans_dialog0.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/screenshots/view_untrans_file.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/spacer.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/template_l.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/template_line.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/template_ll.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/template_u.gif -text
|
||||
unicodetools/com/ibm/rbm/docs/images/template_ul.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/TitleLogo_transparent.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/tree_icon_bundle.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/tree_icon_country.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/tree_icon_file.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/tree_icon_group.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/tree_icon_item.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/tree_icon_language.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/tree_icon_project.gif -text
|
||||
unicodetools/com/ibm/rbm/gui/images/tree_icon_variant.gif -text
|
||||
|
||||
# The following file types are stored in Git-LFS.
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.dat filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gif filter=lfs diff=lfs merge=lfs -text
|
||||
|
55
.gitignore
vendored
Normal file
55
.gitignore
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
multi/c/Makefile.local
|
||||
multi/packages/*.jar
|
||||
multi/packages/*.tgz
|
||||
multi/proj/chello/out
|
||||
multi/proj/icu4cscan/Makefile.local
|
||||
multi/proj/icu4cscan/cooked
|
||||
multi/proj/icu4cscan/dtdcache
|
||||
multi/proj/icu4cscan/jxml
|
||||
multi/proj/icu4cscan/xml
|
||||
multi/proj/icu4jscan/bin
|
||||
multi/proj/provider/Makefile.local
|
||||
multi/proj/provider/out
|
||||
multi/tmp
|
||||
release/c/uconfigtest
|
||||
release/c/uconfigtest.local
|
||||
release/java/APIChangeReport*
|
||||
release/java/Makefile.local
|
||||
release/java/classes
|
||||
release/java/lib
|
||||
trac/IcuCodeTools/0.11/*.egg-info
|
||||
trac/IcuCodeTools/0.11/build
|
||||
trac/IcuCodeTools/0.11/icucodetools/*.pyc
|
||||
trac/IcuCodeTools/0.12/*.egg-info
|
||||
trac/IcuCodeTools/0.12/build
|
||||
trac/IcuCodeTools/0.12/icucodetools/*.pyc
|
||||
unicode/c/genprops/*.d
|
||||
unicode/c/genprops/*.ncb
|
||||
unicode/c/genprops/*.o
|
||||
unicode/c/genprops/*.opt
|
||||
unicode/c/genprops/*.pdb
|
||||
unicode/c/genprops/*.plg
|
||||
unicode/c/genprops/Debug
|
||||
unicode/c/genprops/Makefile
|
||||
unicode/c/genprops/Release
|
||||
unicode/c/genprops/debug
|
||||
unicode/c/genprops/genprops
|
||||
unicode/c/genprops/genprops.[0-9]
|
||||
unicode/c/genprops/genprops.vcproj.*.*.user
|
||||
unicode/c/genprops/release
|
||||
unicode/c/genprops/x64
|
||||
unicode/c/genprops/x86
|
||||
unicode/c/genuca/*.d
|
||||
unicode/c/genuca/*.o
|
||||
unicode/c/genuca/*.pdb
|
||||
unicode/c/genuca/Debug
|
||||
unicode/c/genuca/Makefile
|
||||
unicode/c/genuca/Release
|
||||
unicode/c/genuca/debug
|
||||
unicode/c/genuca/genuca
|
||||
unicode/c/genuca/genuca.8
|
||||
unicode/c/genuca/genuca.vcproj.*.*.user
|
||||
unicode/c/genuca/release
|
||||
unicode/c/genuca/x64
|
||||
unicode/c/genuca/x86
|
||||
unicodetools/com/ibm/rbm/lib
|
81
colprobe/Makefile.in
Normal file
81
colprobe/Makefile.in
Normal file
|
@ -0,0 +1,81 @@
|
|||
## Makefile.in for ICU - extra/colprobe
|
||||
## Copyright (c) 2001, International Business Machines Corporation and
|
||||
## others. All Rights Reserved.
|
||||
|
||||
## Source directory information
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
top_builddir = ../..
|
||||
|
||||
include $(top_builddir)/icudefs.mk
|
||||
|
||||
## Build directory information
|
||||
subdir = extra/colprobe
|
||||
|
||||
## Extra files to remove for 'make clean'
|
||||
CLEANFILES = *~ $(DEPS)
|
||||
|
||||
## Target information
|
||||
TARGET = colprobe
|
||||
LONGNAME = longname
|
||||
|
||||
CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/io
|
||||
LIBS = $(LIBICUI18N) $(LIBICUUC) $(LIBUSTDIO) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
|
||||
|
||||
OBJECTS = colprobeNew.o line.o sortedlines.o strengthprobe.o uprinter.o
|
||||
LONGNAME_OBJ = longname.o
|
||||
|
||||
DEPS = $(OBJECTS:.o=.d)
|
||||
LONGNAME_DEPS = $(LONGNAME_OBJ:.o=.d)
|
||||
|
||||
## List of phony targets
|
||||
.PHONY : all all-local install install-local clean clean-local \
|
||||
distclean distclean-local dist dist-local check check-local
|
||||
|
||||
## Clear suffix list
|
||||
.SUFFIXES :
|
||||
|
||||
## List of standard targets
|
||||
all: all-local
|
||||
install: install-local
|
||||
clean: clean-local
|
||||
distclean : distclean-local
|
||||
dist: dist-local
|
||||
check: all check-local
|
||||
|
||||
all-local: $(TARGET)
|
||||
|
||||
install-local:
|
||||
|
||||
dist-local:
|
||||
|
||||
clean-local:
|
||||
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
|
||||
$(RMV) $(OBJECTS) $(TARGET)
|
||||
|
||||
distclean-local: clean-local
|
||||
$(RMV) Makefile
|
||||
|
||||
check-local: all-local
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
$(TARGET) : $(OBJECTS)
|
||||
$(LINK.cc) -o $@ $^ $(LIBS)
|
||||
|
||||
$(LONGNAME) : $(LONGNAME_OBJ)
|
||||
$(LINK.cc) -o $@ $^ $(LIBS)
|
||||
|
||||
invoke:
|
||||
ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
|
||||
|
||||
ifeq (,$(MAKECMDGOALS))
|
||||
-include $(DEPS)
|
||||
else
|
||||
ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
|
||||
-include $(DEPS)
|
||||
endif
|
||||
endif
|
1730
colprobe/colprobe.cpp
Normal file
1730
colprobe/colprobe.cpp
Normal file
File diff suppressed because it is too large
Load diff
148
colprobe/colprobe.dsp
Normal file
148
colprobe/colprobe.dsp
Normal file
|
@ -0,0 +1,148 @@
|
|||
# Microsoft Developer Studio Project File - Name="colprobe" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=colprobe - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "colprobe.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "colprobe.mak" CFG="colprobe - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "colprobe - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "colprobe - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "colprobe - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
MTL=midl.exe
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "../../../include" /I "../../tools/toolutil" /I "../../common" /I "../../i18n" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 icuio.lib icuuc.lib icuin.lib icutu.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"../../../lib"
|
||||
|
||||
!ELSEIF "$(CFG)" == "colprobe - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
MTL=midl.exe
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../../tools/toolutil" /I "../../common" /I "../../i18n" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 icuiod.lib icuucd.lib icuind.lib icutud.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../lib"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "colprobe - Win32 Release"
|
||||
# Name "colprobe - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\colprobeNew.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\line.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sortedlines.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\strengthprobe.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\targetsetgenerator.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\uprinter.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\colprobe.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\line.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sortedlines.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\strengthprobe.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\targetsetgenerator.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\uprinter.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
15
colprobe/colprobe.h
Normal file
15
colprobe/colprobe.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef COLPROBE_H
|
||||
#define COLPROBE_H
|
||||
|
||||
#include "unicode/uniset.h"
|
||||
#include "unicode/normlzr.h"
|
||||
|
||||
typedef int (*CompareFn) (const void *elem1, const void *elem2);
|
||||
typedef int (*GetSortKeyFn) (const UChar *string, int32_t len, uint8_t *buffer, int32_t buffCapacity);
|
||||
//typedef int (__cdecl *CompareFn)(const void *elem1, const void *elem2);
|
||||
void generateRepertoire(const char *locale, UnicodeSet &rep, UBool &hanAppears, UErrorCode &status);
|
||||
UnicodeSet flatten(const UnicodeSet &source, UErrorCode &status);
|
||||
|
||||
//UnicodeSet generateRepertoire(const char *locale);
|
||||
|
||||
#endif
|
1078
colprobe/colprobeNew.cpp
Normal file
1078
colprobe/colprobeNew.cpp
Normal file
File diff suppressed because it is too large
Load diff
164
colprobe/createComparisonTables.pl
Executable file
164
colprobe/createComparisonTables.pl
Executable file
|
@ -0,0 +1,164 @@
|
|||
#! /usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
|
||||
|
||||
my $locale = $ARGV[0];
|
||||
|
||||
|
||||
my $long_name = `/home/weiv/src/icu/source/extra/colprobe/longname $locale`;
|
||||
my $pageTitle = $locale."_collation";
|
||||
my $filename = $pageTitle.".html";
|
||||
|
||||
open TABLE, ">$filename";
|
||||
|
||||
|
||||
print TABLE <<"EndOfTemplate";
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>$pageTitle</title>
|
||||
<style>
|
||||
<!--
|
||||
table { border-spacing: 0; border-collapse: collapse; width: 100%;
|
||||
border: 1px solid black }
|
||||
td, th { width: 10%; border-spacing: 0; border-collapse: collapse; color: black;
|
||||
vertical-align: top; border: 1px solid black }
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<p><b><font color="#FF0000">Collation:</font> $locale ($long_name) <a href="http://oss.software.ibm.com/cgi-bin/icu/lx/en/?_=$locale">Demo</a>,
|
||||
|
||||
<a href="../all_diff_xml/comparison_charts.html">Cover
|
||||
Page</a>, <a href="../all_diff_xml/index.html">Index</a></b></p>
|
||||
<table>
|
||||
<tr>
|
||||
EndOfTemplate
|
||||
|
||||
my $dirCommon = "common";
|
||||
my $refCommon = $dirCommon."/UCARules.txt";
|
||||
my $nameCommon = $dirCommon."/".$locale."_collation.html";
|
||||
my $colorCommon = "#AD989D";
|
||||
|
||||
my $loc;
|
||||
|
||||
if(!(-e $nameCommon)) {
|
||||
$locale =~ /_/;
|
||||
$loc = $`;
|
||||
$nameCommon = "$dirCommon/$loc"."_collation.html";
|
||||
}
|
||||
print TABLE " <th bgcolor=\"$colorCommon\">COMMON (<a href=\"$refCommon\">UCA</a> <a href=\"../$dirCommon/xml/$locale.xml\">xml</a>)</th>\n";
|
||||
|
||||
my $dirLinux = "linux";
|
||||
my $refLinux = $dirLinux."/".$locale.".utf8_default_raw.html";
|
||||
my $rawLinux = $dirLinux."/".$locale.".utf8_raw.html";
|
||||
my $defLinux = $dirLinux."/".$locale;
|
||||
my $nameLinux = "$dirLinux/$locale".".utf8_collation.html";
|
||||
my $colorLinux = "#1191F1";
|
||||
|
||||
print TABLE " <th bgcolor=\"$colorLinux\">LINUX (";
|
||||
if (!(-e $nameLinux)) {
|
||||
#try the variant that has @euro stuck in
|
||||
$nameLinux = "$dirLinux/$locale".'.utf8@euro_collation.html';
|
||||
if(-e $nameLinux) {
|
||||
$refLinux = $dirLinux."/".$locale.'.utf8@euro_default_raw.html';
|
||||
$rawLinux = $dirLinux."/".$locale.'.utf8@euro_raw.html';
|
||||
}
|
||||
}
|
||||
if (-e $nameLinux) {
|
||||
print TABLE "<a href=\"$rawLinux\">Ordering</a> <a href=\"$defLinux\">Definition</a> <a href=\"$refLinux\">base</a>";
|
||||
}
|
||||
|
||||
print TABLE " <a href=\"../$dirLinux/xml/$locale.xml\">xml</a>)</th>\n";
|
||||
|
||||
my $dirWin = "winxp";
|
||||
my $refWin = $dirWin."/".$locale."_default_raw.html";
|
||||
my $rawWin = $dirWin."/".$locale."_raw.html";
|
||||
my $nameWin = "$dirWin/$locale"."_collation.html";
|
||||
my $colorWin = "#98FB98";
|
||||
|
||||
print TABLE " <th bgcolor=\"$colorWin\">WINDOWS (";
|
||||
if (-e $nameWin) {
|
||||
print TABLE "<a href=\"$rawWin\">Ordering</a> <a href=\"$refWin\">base</a> ";
|
||||
}
|
||||
print TABLE "<a href=\"../windows/xml/$locale.xml\">xml</a>)</th>\n";
|
||||
|
||||
print TABLE " </tr>\n <tr>";
|
||||
|
||||
|
||||
readRules($nameCommon, "#AD989D", "Same as the UCA.");
|
||||
readRules($nameLinux, "#1191F1", "No data available.");
|
||||
readRules($nameWin, "#98FB98", "No data available.");
|
||||
|
||||
|
||||
print TABLE <<"EndOfFooter";
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
EndOfFooter
|
||||
|
||||
|
||||
sub readRules {
|
||||
# readRules($file, $color)
|
||||
my $filename = shift;
|
||||
my $color = shift;
|
||||
my $comment = shift;
|
||||
my $noLines = 0;
|
||||
my $printOut = 0;
|
||||
|
||||
my $file;
|
||||
|
||||
if(-e $filename) {
|
||||
open($file, "<$filename") || die "something very strange happened\n";
|
||||
print TABLE "<td bgcolor=\"$color\">\n";
|
||||
while (<$file>) {
|
||||
if (/\}\<br\>$/) {
|
||||
$printOut = 0;
|
||||
|
||||
}
|
||||
if ($printOut) {
|
||||
print TABLE $_;
|
||||
$noLines++;
|
||||
}
|
||||
if (/Sequence/) {
|
||||
$printOut = 1;
|
||||
print "found sequence\n";
|
||||
$noLines = 0;
|
||||
}
|
||||
|
||||
}
|
||||
if (!$noLines) {
|
||||
print TABLE "Same ordering as base\n";
|
||||
}
|
||||
print TABLE "</td>\n";
|
||||
} else {
|
||||
print TABLE "<td bgcolor=\"$color\">\n$comment</td>\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Tasting of food product
|
||||
# 650-574-4551 $50 1 hour
|
||||
|
||||
|
||||
# <td bgcolor="#AD989D">1.0-alpha</td>
|
||||
# <td bgcolor="#FF6633">1.0</td>
|
||||
# <td bgcolor="#FF6633">=</td>
|
||||
# <td bgcolor="#FF6633"><span title="006E {LATIN SMALL LETTER N}">&n</span><br>
|
||||
# <span title="006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y}"> < ny</span><br>
|
||||
|
||||
# <span title="006E 006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y} / 006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y}"> = nny / ny</span><br>
|
||||
# <span title="006E 0059 {LATIN SMALL LETTER N} {LATIN CAPITAL LETTER Y}"> <<< nY</span><br>
|
||||
# </td>
|
||||
# <td bgcolor="#FF6633">=</td>
|
||||
# <td bgcolor="#FFFF33">1.2</td>
|
||||
|
||||
# <td bgcolor="#98FB98">Windows XP</td>
|
||||
# <td bgcolor="#FF6633">=</td>
|
||||
# <td bgcolor="#FF6633">=</td>
|
209
colprobe/doComparisonTable.pl
Executable file
209
colprobe/doComparisonTable.pl
Executable file
|
@ -0,0 +1,209 @@
|
|||
#! /usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
use IO::File;
|
||||
|
||||
|
||||
my $locale = $ARGV[0];
|
||||
|
||||
|
||||
my $long_name = `/home/weiv/src/icu/source/extra/colprobe/longname $locale`;
|
||||
print "Long name is $long_name\n";
|
||||
my $pageTitle = $locale." collation";
|
||||
my $filename = $locale.".html";
|
||||
|
||||
open TABLE, ">$filename";
|
||||
|
||||
|
||||
print TABLE <<"EndOfTemplate";
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>$pageTitle</title>
|
||||
<style>
|
||||
<!--
|
||||
table { border-spacing: 0; border-collapse: collapse; width: 100%;
|
||||
border: 1px solid black }
|
||||
td, th { width: 10%; border-spacing: 0; border-collapse: collapse; color: black;
|
||||
vertical-align: top; border: 1px solid black }
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<p><b><font color="#FF0000">Collation:</font> $locale ($long_name) <a href="http://oss.software.ibm.com/cgi-bin/icu/lx/en/?_=$locale">Demo</a>,
|
||||
|
||||
<a href="../../comparison_charts.html">Cover
|
||||
Page</a>, <a href="../main/index.html">Locale Diffs Index</a>, <a href="index.html">Collation Diffs Index</a></b></p>
|
||||
<table>
|
||||
<tr>
|
||||
EndOfTemplate
|
||||
|
||||
my $dirCommon = "icucollations";
|
||||
my $refCommon = $dirCommon."/UCARules.txt";
|
||||
my $nameCommon = $dirCommon."/".$locale."_collation.html";
|
||||
my $colorCommon = "#AD989D";
|
||||
|
||||
my $loc = $locale;
|
||||
|
||||
if(!(-e $nameCommon)) {
|
||||
$locale =~ /_/;
|
||||
$loc = $`;
|
||||
$nameCommon = "$dirCommon/$loc"."_collation.html";
|
||||
}
|
||||
|
||||
print "Common is $nameCommon\n";
|
||||
|
||||
print TABLE " <th bgcolor=\"$colorCommon\">COMMON (";
|
||||
if(-e $nameCommon) {
|
||||
print TABLE "<a href=\"../../common/collation/$loc.xml\">xml</a> ";
|
||||
}
|
||||
print TABLE "<a href=\"../../common/collation/root.xml\">UCA</a>)</th>\n";
|
||||
|
||||
my $dirLinux = "linuxcollations";
|
||||
my $refLinux = $dirLinux."/".$locale.".utf8_default_raw.html";
|
||||
my $rawLinux = $dirLinux."/".$locale.".utf8_raw.html";
|
||||
my $defLinux = $dirLinux."/".$locale;
|
||||
my $nameLinux = "$dirLinux/$locale"."_collation.html";
|
||||
my $colorLinux = "#1191F1";
|
||||
|
||||
print TABLE " <th bgcolor=\"$colorLinux\">LINUX";
|
||||
if (!(-e $nameLinux)) {
|
||||
#try the variant that has @euro stuck in
|
||||
$nameLinux = "$dirLinux/$locale".'.utf8@euro_collation.html';
|
||||
if(-e $nameLinux) {
|
||||
$refLinux = $dirLinux."/".$locale.'.utf8@euro_default_raw.html';
|
||||
$rawLinux = $dirLinux."/".$locale.'.utf8@euro_raw.html';
|
||||
}
|
||||
}
|
||||
if (-e $nameLinux) {
|
||||
print TABLE " (<a href=\"../../linux/collation/$locale.xml\">xml</a>";
|
||||
my $linuxBase = &getBaseLocale("$dirLinux/base", $locale);
|
||||
if($linuxBase ne "") {
|
||||
print TABLE " <a href=\"../../linux/collation/$linuxBase.xml\">Base ($linuxBase)</a>";
|
||||
}
|
||||
print TABLE ")";
|
||||
}
|
||||
print TABLE "</th>\n";
|
||||
|
||||
|
||||
my $dirWin = "w2kcollations";
|
||||
my $refWin = $dirWin."/".$locale."_default_raw.html";
|
||||
my $rawWin = $dirWin."/".$locale."_raw.html";
|
||||
my $nameWin = "$dirWin/$locale"."_collation.html";
|
||||
my $colorWin = "#98FB98";
|
||||
$loc = $locale;
|
||||
#try fallback for windows
|
||||
print TABLE " <th bgcolor=\"$colorWin\">WINDOWS";
|
||||
if(!(-e $nameWin)) {
|
||||
$locale =~ /_/;
|
||||
$loc = $`;
|
||||
$nameWin = "$dirWin/$loc"."_collation.html";
|
||||
}
|
||||
|
||||
print "Windows loc is $loc\n";
|
||||
|
||||
if (-e $nameWin) {
|
||||
print TABLE " (<a href=\"../../windows/collation/$loc.xml\">xml</a>";
|
||||
my $winBase = &getBaseLocale("$dirWin/base", $locale);
|
||||
if($winBase ne "") {
|
||||
print TABLE "<a href=\"../../windows/collation/$winBase.xml\">base ($winBase)</a>";
|
||||
}
|
||||
print TABLE ")";
|
||||
}
|
||||
print TABLE "</th>\n";
|
||||
print TABLE " </tr>\n <tr>";
|
||||
|
||||
|
||||
readRules($nameCommon, "#AD989D", "Same as the UCA.");
|
||||
readRules($nameLinux, "#1191F1", "No data available.");
|
||||
readRules($nameWin, "#98FB98", "No data available.");
|
||||
|
||||
|
||||
print TABLE <<"EndOfFooter";
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
EndOfFooter
|
||||
|
||||
|
||||
sub readRules {
|
||||
# readRules($file, $color)
|
||||
my $filename = shift;
|
||||
my $color = shift;
|
||||
my $comment = shift;
|
||||
my $noLines = 0;
|
||||
my $printOut = 0;
|
||||
|
||||
my $file;
|
||||
|
||||
if(-e $filename) {
|
||||
open($file, "<$filename") || die "something very strange happened\n";
|
||||
print TABLE "<td bgcolor=\"$color\">\n";
|
||||
while (<$file>) {
|
||||
if (/\}\<br\>$/) {
|
||||
$printOut = 0;
|
||||
|
||||
}
|
||||
if ($printOut) {
|
||||
if(!/^$/ && !/ <br>$/) {
|
||||
print TABLE $_;
|
||||
$noLines++;
|
||||
}
|
||||
}
|
||||
if (/Sequence/) {
|
||||
$printOut = 1;
|
||||
print "found sequence\n";
|
||||
$noLines = 0;
|
||||
}
|
||||
|
||||
}
|
||||
if (!$noLines) {
|
||||
print TABLE "Same ordering as base\n";
|
||||
}
|
||||
print TABLE "</td>\n";
|
||||
} else {
|
||||
print TABLE "<td bgcolor=\"$color\">\n$comment</td>\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub getBaseLocale(){
|
||||
my $basefile = shift;
|
||||
my $locale = shift;
|
||||
my $baseFH = IO::File->new($basefile,"r")
|
||||
or die "could not open the file $basefile for reading: $! \n";
|
||||
my $bse;
|
||||
my $loc;
|
||||
while(defined ( my $line = <$baseFH>)){
|
||||
if( $line =~ /\<$locale\>/){
|
||||
($loc,$bse) = split (/\>/, $line);
|
||||
$bse =~ s/^\s+\<//;
|
||||
return $bse;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Tasting of food product
|
||||
# 650-574-4551 $50 1 hour
|
||||
|
||||
|
||||
# <td bgcolor="#AD989D">1.0-alpha</td>
|
||||
# <td bgcolor="#FF6633">1.0</td>
|
||||
# <td bgcolor="#FF6633">=</td>
|
||||
# <td bgcolor="#FF6633"><span title="006E {LATIN SMALL LETTER N}">&n</span><br>
|
||||
# <span title="006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y}"> < ny</span><br>
|
||||
|
||||
# <span title="006E 006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y} / 006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y}"> = nny / ny</span><br>
|
||||
# <span title="006E 0059 {LATIN SMALL LETTER N} {LATIN CAPITAL LETTER Y}"> <<< nY</span><br>
|
||||
# </td>
|
||||
# <td bgcolor="#FF6633">=</td>
|
||||
# <td bgcolor="#FFFF33">1.2</td>
|
||||
|
||||
# <td bgcolor="#98FB98">Windows XP</td>
|
||||
# <td bgcolor="#FF6633">=</td>
|
||||
# <td bgcolor="#FF6633">=</td>
|
246
colprobe/extractCollationData.pl
Executable file
246
colprobe/extractCollationData.pl
Executable file
|
@ -0,0 +1,246 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use Unicode::UCD 'charinfo';
|
||||
use Unicode::Normalize;
|
||||
use utf8;
|
||||
use open ':utf8';
|
||||
|
||||
my $printout = 0;
|
||||
my $braces = 0;
|
||||
my $colls = 0;
|
||||
my $aliased = 0;
|
||||
my $newName = "";
|
||||
my $filename;
|
||||
my $suffix;
|
||||
my $locale;
|
||||
|
||||
NEW_FILE:
|
||||
foreach my $arg (@ARGV) {
|
||||
if($newName =~ /^$/) {
|
||||
$locale = $arg;
|
||||
$locale =~ s#^.*/##g;
|
||||
$locale =~ s/\.txt//;
|
||||
} else {
|
||||
$newName = "";
|
||||
}
|
||||
my $command = "/home/weiv/build/current/bin/uconv -x hex-any/Java -f utf8 -t utf8 $arg";
|
||||
print $command."\n";
|
||||
my @bundle = `$command`;
|
||||
foreach $_ (@bundle) {
|
||||
#while(<>) {
|
||||
#print $ARGV if eof;
|
||||
if(/^\/\//) {
|
||||
next;
|
||||
}
|
||||
if(/collations/) {
|
||||
print "found Collations\n";
|
||||
$colls = 1;
|
||||
if(/alias/) {
|
||||
print "collations are aliased\n";
|
||||
$aliased = 1;
|
||||
}
|
||||
}
|
||||
if($aliased) {
|
||||
print "processing aliased data: $_\n";
|
||||
if(/\{/) {
|
||||
print "Braces opened\n";
|
||||
$braces = 1;
|
||||
}
|
||||
if($braces && /\"(.*)\"/) {
|
||||
$newName = $1;
|
||||
print "Aliasing to $newName\n";
|
||||
}
|
||||
if($braces && /\}/) {
|
||||
$braces = 0;
|
||||
print "Braces closed\n";
|
||||
$aliased = 0;
|
||||
print "Switching from $filename to $newName\n";
|
||||
$arg =~ s/$locale\.txt$/$newName\.txt/;
|
||||
print "$arg\n";
|
||||
redo NEW_FILE;
|
||||
}
|
||||
|
||||
}
|
||||
if(/standard|phonebook|traditional|pinyin|stroke|direct/ && $colls) {
|
||||
print "found $& collation\n";
|
||||
$suffix = "_".uc($&);
|
||||
if(/standard/) {
|
||||
$suffix = "";
|
||||
}
|
||||
}
|
||||
if(/Sequence/ && $colls) {
|
||||
#binmode ARGV, ":utf8";
|
||||
$printout = 1;
|
||||
#$filename = $ARGV;
|
||||
$filename = $locale;
|
||||
if($suffix) {
|
||||
$filename .= "_".$suffix;
|
||||
}
|
||||
$filename .= "_collation.html";
|
||||
print "filename is $filename\n";
|
||||
#open(OUT, ">:utf8", "$filename");
|
||||
open(OUT, ">$filename");
|
||||
printHeading($arg);
|
||||
#next;
|
||||
}
|
||||
my $line = $_;
|
||||
if($line =~ /\{/ && $printout) {
|
||||
$braces++;
|
||||
}
|
||||
if($printout) {
|
||||
print OUT processLine($line);
|
||||
print OUT "\n";
|
||||
}
|
||||
if( $line =~ /\}/ && $printout) {
|
||||
$braces--;
|
||||
if($braces == 0) {
|
||||
$printout = 0;
|
||||
printFooting();
|
||||
close(OUT);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub processLine {
|
||||
my $line = shift;
|
||||
$_ = $line;
|
||||
my $i = 0;
|
||||
my $j = 0;
|
||||
my $result;
|
||||
# remove comments
|
||||
s#//.*$##g;
|
||||
# remove "Sequence" if present
|
||||
s/Sequence\s*//;
|
||||
# remove leading brace if present
|
||||
s/^\s*{//;
|
||||
# remove trailing brace if present
|
||||
s/}\s*$//;
|
||||
# remove trailing quote
|
||||
s/"\s*$//;
|
||||
#remove lead quote
|
||||
s/^\s*"//;
|
||||
#separate options
|
||||
s/(\[.*\])/\n\1/g;
|
||||
#separate resets
|
||||
s/\s*\&\s*/\n\& /g;
|
||||
#separate strengths and insert spaces
|
||||
s/\s*(<{1,4})\s*/\n\1 /g;
|
||||
#separate equals and insert spaces
|
||||
s/\s*=\s*/\n= /g;
|
||||
|
||||
# break into individual reset/strength/setting lines
|
||||
my @lines = split(/\n/);
|
||||
|
||||
my $line;
|
||||
my $name;
|
||||
my $spanEnd = "";
|
||||
my $result = "";
|
||||
my $names = "";
|
||||
my $codes = "";
|
||||
my $lrm = "";
|
||||
|
||||
foreach $line (@lines) {
|
||||
# skip empty lines
|
||||
if($line =~ /^$/) {
|
||||
next;
|
||||
}
|
||||
$spanEnd = "";
|
||||
$name = "";
|
||||
$lrm = "";
|
||||
$line = NFC($line);
|
||||
# for resets and strengths we will get name for elements
|
||||
if($line =~ /<{1,4} |= |& \[.*\]|& /) {
|
||||
$name = "<span title=\"";
|
||||
$names = "";
|
||||
$codes = "";
|
||||
my $start = $&;
|
||||
my $rest = $';
|
||||
for ($j = 0; $j < length($rest); $j++) {
|
||||
my $char = substr($rest, $j, 1);
|
||||
my $charVal = ord($char);
|
||||
# some of elements are part of the syntax, so they are
|
||||
# entered without translation to the name
|
||||
if($charVal == 0x002F || $charVal == 0x007C) {
|
||||
$name .= $codes.$names." $char ";
|
||||
$codes = "";
|
||||
$names = "";
|
||||
} elsif($charVal == 0x0027) { #quote requires more processing
|
||||
#$name .= "'";
|
||||
} else {
|
||||
my $charinfo = charinfo($charVal);
|
||||
$codes .= $charinfo->{'code'}." ";
|
||||
$names .= "{".$charinfo->{'name'}."} ";
|
||||
if($charinfo->{'bidi'} eq "R" || $charinfo->{'bidi'} eq "AL") {
|
||||
$lrm = "‎";
|
||||
}
|
||||
#$name .= $charinfo->{'code'}." {".$charinfo->{'name'}."} ";
|
||||
}
|
||||
}
|
||||
$name .= $codes.$names."\" >";
|
||||
$spanEnd = "</span>";
|
||||
}
|
||||
#print $name."\n";
|
||||
if($line =~ /^<<<</) {
|
||||
$line = " $line";
|
||||
} elsif($line =~ /^<<</) {
|
||||
$line = " $line";
|
||||
} elsif($line =~ /^<</) {
|
||||
$line = " $line";
|
||||
} elsif($line =~ /^</) {
|
||||
$line = " $line";
|
||||
} elsif($line =~ /^=/) {
|
||||
$line = " $line";
|
||||
}
|
||||
# insert spaces around vertical bars (fix prefixes)
|
||||
|
||||
# insert spaces around slashes (fix expansions)
|
||||
$line =~ s#/# / #g;
|
||||
# replace &
|
||||
$line =~ s/\&/&/g;
|
||||
# replace spaces
|
||||
$line =~ s/ / /g;
|
||||
# replace <
|
||||
$line =~ s/</</g;
|
||||
# replace >
|
||||
$line =~ s/>/>/g;
|
||||
|
||||
#$lines[$i] = $name.$lrm.$line."</span><br>";
|
||||
#$i++;
|
||||
$result .= $name.$lrm.$line.$spanEnd."<br>\n";
|
||||
}
|
||||
|
||||
#$_ = join("\n", @lines);
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
sub printHeading {
|
||||
my $filename = shift;
|
||||
$filename =~ s/\.txt//;
|
||||
print OUT <<"EndOfHeading";
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
# Collation data resource bundle generated for locale: $filename<br>
|
||||
# For platform icu reference platform UCA<br><br>
|
||||
|
||||
|
||||
$filename {<br>
|
||||
CollationElements {<br>
|
||||
Sequence {<br>
|
||||
EndOfHeading
|
||||
}
|
||||
|
||||
sub printFooting {
|
||||
print OUT <<"EndOfFooting";
|
||||
}<br>
|
||||
}<br>
|
||||
}<br>
|
||||
|
||||
</pre>
|
||||
</html>
|
||||
EndOfFooting
|
||||
}
|
24
colprobe/gcd2.pl
Executable file
24
colprobe/gcd2.pl
Executable file
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
|
||||
#my $localeMinusA = `locale -a`;
|
||||
my $localeMinusA = `cat ~/src/icu/source/extra/colprobe/locale.txt`;
|
||||
my @locales = split(/\n/, $localeMinusA);
|
||||
my $locale;
|
||||
my $command;
|
||||
|
||||
my $platform = $ARGV[0];
|
||||
|
||||
mkdir $platform."logs2";
|
||||
mkdir $platform;
|
||||
|
||||
foreach $locale (@locales) {
|
||||
$command = "~/src/icu/source/extra/colprobe/colprobe --platform $platform --ref $platform --diff $locale >$platform"."logs2/$locale"."Log.txt 2>&1";
|
||||
($locale, $_) = split(/\./, $locale);
|
||||
$command .= "; cp /usr/share/i18n/locales/$locale $platform/";
|
||||
print "$command\n";
|
||||
`$command`;
|
||||
#chdir "..";
|
||||
|
||||
}
|
23
colprobe/genCollData.pl
Executable file
23
colprobe/genCollData.pl
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
|
||||
my $localeMinusA = `locale -a`;
|
||||
my @locales = split(/\n/, $localeMinusA);
|
||||
my $locale;
|
||||
my $command;
|
||||
|
||||
my $platform = $ARGV[0];
|
||||
|
||||
mkdir $platform."logs";
|
||||
mkdir $platform;
|
||||
|
||||
foreach $locale (@locales) {
|
||||
$command = "~/src/icu/source/extra/colprobe/colprobe --output resb --platform linux --ref linux $locale >$platform"."logs/$locale"."Log.txt 2>&1";
|
||||
($locale, $_) = split(/\./, $locale);
|
||||
$command .= "; cp /usr/share/i18n/locales/$locale $platform/";
|
||||
print "$command\n";
|
||||
`$command`;
|
||||
#chdir "..";
|
||||
|
||||
}
|
701
colprobe/line.cpp
Normal file
701
colprobe/line.cpp
Normal file
|
@ -0,0 +1,701 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2003, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
*******************************************************************************
|
||||
*
|
||||
* File line.cpp
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 03/18/2003 weiv Creation.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#include "line.h"
|
||||
#include <stdio.h>
|
||||
|
||||
UnicodeSet * Line::needsQuoting = NULL;
|
||||
|
||||
void
|
||||
Line::init()
|
||||
{
|
||||
len = 0;
|
||||
expLen = 0;
|
||||
strength = UCOL_OFF;
|
||||
strengthFromEmpty = UCOL_OFF;
|
||||
cumulativeStrength = UCOL_OFF;
|
||||
expStrength = UCOL_OFF;
|
||||
previous = NULL;
|
||||
next = NULL;
|
||||
left = NULL;
|
||||
right = NULL;
|
||||
isContraction = FALSE;
|
||||
isExpansion = FALSE;
|
||||
isRemoved = FALSE;
|
||||
isReset = FALSE;
|
||||
expIndex = 0;
|
||||
firstCC = 0;
|
||||
lastCC = 0;
|
||||
sortKey = NULL;
|
||||
}
|
||||
|
||||
Line::Line()
|
||||
{
|
||||
init();
|
||||
memset(name, 0, 25*sizeof(UChar));
|
||||
memset(expansionString, 0, 25*sizeof(UChar));
|
||||
}
|
||||
|
||||
Line::Line(const UChar* name, int32_t len)
|
||||
{
|
||||
init();
|
||||
this->len = len;
|
||||
u_memcpy(this->name, name, len);
|
||||
memset(expansionString, 0, 25*sizeof(UChar));
|
||||
UChar32 c;
|
||||
U16_GET(name, 0, 0, len, c);
|
||||
firstCC = u_getCombiningClass(c);
|
||||
U16_GET(name, 0, len-1, len, c);
|
||||
lastCC = u_getCombiningClass(c);
|
||||
}
|
||||
|
||||
Line::Line(const UChar name)
|
||||
{
|
||||
init();
|
||||
len = 1;
|
||||
this->name[0] = name;
|
||||
this->name[1] = 0;
|
||||
memset(expansionString, 0, 25*sizeof(UChar));
|
||||
firstCC = u_getCombiningClass(name);
|
||||
lastCC = firstCC;
|
||||
}
|
||||
|
||||
Line::Line(const UnicodeString &string)
|
||||
{
|
||||
init();
|
||||
setTo(string);
|
||||
}
|
||||
|
||||
Line::Line(const char *buff, int32_t buffLen, UErrorCode &status) :
|
||||
previous(NULL),
|
||||
next(NULL),
|
||||
left(NULL),
|
||||
right(NULL)
|
||||
{
|
||||
initFromString(buff, buffLen, status);
|
||||
}
|
||||
|
||||
Line::Line(const Line &other) :
|
||||
previous(NULL),
|
||||
next(NULL),
|
||||
left(NULL),
|
||||
right(NULL)
|
||||
{
|
||||
*this = other;
|
||||
}
|
||||
|
||||
Line &
|
||||
Line::operator=(const Line &other) {
|
||||
len = other.len;
|
||||
expLen = other.expLen;
|
||||
strength = other.strength;
|
||||
strengthFromEmpty = other.strengthFromEmpty;
|
||||
cumulativeStrength = other.cumulativeStrength;
|
||||
expStrength = other.expStrength;
|
||||
isContraction = other.isContraction;
|
||||
isExpansion = other.isExpansion;
|
||||
isRemoved = other.isRemoved;
|
||||
isReset = other.isReset;
|
||||
expIndex = other.expIndex;
|
||||
firstCC = other.firstCC;
|
||||
lastCC = other.lastCC;
|
||||
u_strcpy(name, other.name);
|
||||
u_strcpy(expansionString, other.expansionString);
|
||||
sortKey = other.sortKey;
|
||||
left = other.left;
|
||||
right = other.right;
|
||||
return *this;
|
||||
}
|
||||
|
||||
UBool
|
||||
Line::operator==(const Line &other) const {
|
||||
if(this == &other) {
|
||||
return TRUE;
|
||||
}
|
||||
if(len != other.len) {
|
||||
return FALSE;
|
||||
}
|
||||
if(u_strcmp(name, other.name) != 0) {
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
UBool
|
||||
Line::equals(const Line &other) const {
|
||||
if(this == &other) {
|
||||
return TRUE;
|
||||
}
|
||||
if(len != other.len) {
|
||||
return FALSE;
|
||||
}
|
||||
if(u_strcmp(name, other.name) != 0) {
|
||||
return FALSE;
|
||||
}
|
||||
if(strength != other.strength) {
|
||||
return FALSE;
|
||||
}
|
||||
if(expLen != other.expLen) {
|
||||
return FALSE;
|
||||
}
|
||||
if(u_strcmp(expansionString, other.expansionString)) {
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
UBool
|
||||
Line::operator!=(const Line &other) const {
|
||||
return !(*this == other);
|
||||
}
|
||||
|
||||
|
||||
Line::~Line() {
|
||||
}
|
||||
|
||||
void
|
||||
Line::copyArray(Line *dest, const Line *src, int32_t size) {
|
||||
int32_t i = 0;
|
||||
for(i = 0; i < size; i++) {
|
||||
dest[i] = src[i];
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Line::setName(const UChar* name, int32_t len) {
|
||||
this->len = len;
|
||||
u_memcpy(this->name, name, len);
|
||||
UChar32 c;
|
||||
U16_GET(name, 0, 0, len, c);
|
||||
firstCC = u_getCombiningClass(c);
|
||||
U16_GET(name, 0, len-1, len, c);
|
||||
lastCC = u_getCombiningClass(c);
|
||||
}
|
||||
|
||||
void
|
||||
Line::setToConcat(const Line *first, const Line *second) {
|
||||
u_strcpy(name, first->name);
|
||||
u_strcat(name, second->name);
|
||||
len = first->len + second->len;
|
||||
firstCC = first->firstCC;
|
||||
lastCC = second->lastCC;
|
||||
}
|
||||
|
||||
UnicodeString
|
||||
Line::stringToName(UChar *string, int32_t len) {
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
UnicodeString result;
|
||||
char buffer[256];
|
||||
int32_t i = 0;
|
||||
UChar32 c;
|
||||
while(i < len) {
|
||||
U16_NEXT(string, i, len, c);
|
||||
if(c < 0x10000) {
|
||||
sprintf(buffer, "%04X ", c);
|
||||
} else {
|
||||
sprintf(buffer, "%06X ", c);
|
||||
}
|
||||
result.append(buffer);
|
||||
}
|
||||
i = 0;
|
||||
while(i < len) {
|
||||
U16_NEXT(string, i, len, c);
|
||||
u_charName(c, U_EXTENDED_CHAR_NAME, buffer, 256, &status);
|
||||
result.append("{");
|
||||
result.append(buffer);
|
||||
result.append("} ");
|
||||
}
|
||||
/*
|
||||
for(i = 0; i < len; i++) {
|
||||
sprintf(buffer, "%04X ", string[i]);
|
||||
result.append(buffer);
|
||||
}
|
||||
for(i = 0; i < len; i++) {
|
||||
u_charName(string[i], U_EXTENDED_CHAR_NAME, buffer, 256, &status);
|
||||
result.append("{");
|
||||
result.append(buffer);
|
||||
result.append("} ");
|
||||
}
|
||||
*/
|
||||
return result;
|
||||
}
|
||||
|
||||
UnicodeString
|
||||
Line::toBundleString()
|
||||
{
|
||||
|
||||
UnicodeString result;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
if(!needsQuoting) {
|
||||
needsQuoting = new UnicodeSet("[[:whitespace:][:c:][:z:][[:ascii:]-[a-zA-Z0-9]]]", status);
|
||||
}
|
||||
UChar NFC[50];
|
||||
int32_t NFCLen = unorm_normalize(name, len, UNORM_NFC, 0, NFC, 50, &status);
|
||||
result.append("\"");
|
||||
if(isReset) {
|
||||
result.append("&");
|
||||
} else {
|
||||
result.append(strengthToString(strength, FALSE, FALSE));
|
||||
}
|
||||
UBool quote = needsQuoting->containsSome(name) || needsQuoting->containsSome(NFC);
|
||||
if(quote) {
|
||||
result.append("'");
|
||||
}
|
||||
if(NFC[0] == 0x22) {
|
||||
result.append("\\u0022");
|
||||
} else {
|
||||
result.append(NFC, NFCLen);
|
||||
}
|
||||
if(quote && NFC[0] != 0x0027) {
|
||||
result.append("'");
|
||||
}
|
||||
if(expLen && !isReset) {
|
||||
quote = needsQuoting->containsSome(expansionString);
|
||||
result.append(" / ");
|
||||
if(quote) {
|
||||
result.append("'");
|
||||
}
|
||||
result.append(expansionString);
|
||||
if(quote) {
|
||||
result.append("'");
|
||||
}
|
||||
}
|
||||
result.append("\" //");
|
||||
|
||||
result.append(stringToName(NFC, NFCLen));
|
||||
if(expLen && !isReset) {
|
||||
result.append(" / ");
|
||||
result.append(stringToName(expansionString, expLen));
|
||||
}
|
||||
result.append("\n");
|
||||
return result;
|
||||
}
|
||||
|
||||
UnicodeString
|
||||
Line::toHTMLString()
|
||||
{
|
||||
UnicodeString result;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
UChar NFC[50];
|
||||
int32_t NFCLen = unorm_normalize(name, len, UNORM_NFC, 0, NFC, 50, &status);
|
||||
result.append("<span title=\"");
|
||||
result.append(stringToName(NFC, NFCLen));
|
||||
if(expLen && !isReset) {
|
||||
result.append(" / ");
|
||||
result.append(stringToName(expansionString, expLen));
|
||||
}
|
||||
result.append("\">");
|
||||
if(isReset) {
|
||||
result.append("&");
|
||||
} else {
|
||||
result.append(strengthToString(strength, FALSE, TRUE));
|
||||
}
|
||||
result.append(NFC, NFCLen);
|
||||
if(expLen && !isReset) {
|
||||
result.append(" / ");
|
||||
result.append(expansionString);
|
||||
}
|
||||
result.append("</span><br>\n");
|
||||
return result;
|
||||
}
|
||||
|
||||
UnicodeString
|
||||
Line::toString(UBool pretty) {
|
||||
UnicodeString result;
|
||||
if(!pretty) {
|
||||
result.setTo(name);
|
||||
if(expLen) {
|
||||
result.append("/");
|
||||
result.append(expansionString);
|
||||
}
|
||||
} else {
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
UChar NFC[50];
|
||||
int32_t NFCLen = unorm_normalize(name, len, UNORM_NFC, 0, NFC, 50, &status);
|
||||
result.setTo(NFC, NFCLen);
|
||||
if(expLen) {
|
||||
result.append("/");
|
||||
result.append(expansionString);
|
||||
}
|
||||
/*
|
||||
if(NFCLen != len || u_strncmp(name, NFC, len) != 0) {
|
||||
result.append("(NFC: ");
|
||||
result.append(NFC, NFCLen);
|
||||
result.append(stringToName(NFC, NFCLen));
|
||||
result.append(")");
|
||||
}
|
||||
*/
|
||||
result.append(" # ");
|
||||
result.append(stringToName(NFC, NFCLen));
|
||||
if(expLen) {
|
||||
result.append("/ ");
|
||||
result.append(stringToName(expansionString, expLen));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Line::setTo(const UnicodeString &string) {
|
||||
int32_t len = string.length();
|
||||
u_strncpy(name, string.getBuffer(), len);
|
||||
name[len] = 0;
|
||||
this->len = len;
|
||||
UChar32 c;
|
||||
U16_GET(name, 0, 0, len, c);
|
||||
firstCC = u_getCombiningClass(c);
|
||||
U16_GET(name, 0, len-1, len, c);
|
||||
lastCC = u_getCombiningClass(c);
|
||||
}
|
||||
|
||||
void
|
||||
Line::setTo(const UChar32 n) {
|
||||
UBool isError = FALSE;
|
||||
len = 0; // we are setting the line to char, not appending
|
||||
U16_APPEND(name, len, 25, n, isError);
|
||||
name[len] = 0;
|
||||
firstCC = u_getCombiningClass(n);
|
||||
lastCC = firstCC;
|
||||
}
|
||||
|
||||
|
||||
UnicodeString
|
||||
Line::strengthIndent(UColAttributeValue strength, int indentSize, UnicodeString &result)
|
||||
{
|
||||
int i;
|
||||
int numIndents = strength+1;
|
||||
if(strength > UCOL_IDENTICAL) {
|
||||
return result;
|
||||
} else if(strength == UCOL_IDENTICAL) {
|
||||
numIndents = 5;
|
||||
}
|
||||
for(i = 0; i < numIndents*indentSize; i++) {
|
||||
result.append(" ");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
UnicodeString
|
||||
Line::strengthToString(UColAttributeValue strength, UBool pretty, UBool html) {
|
||||
UnicodeString result;
|
||||
if(html) {
|
||||
switch(strength) {
|
||||
case UCOL_IDENTICAL:
|
||||
result.append(" = ");
|
||||
break;
|
||||
case UCOL_QUATERNARY:
|
||||
result.append(" <<<< ");
|
||||
break;
|
||||
case UCOL_TERTIARY:
|
||||
result.append(" <<< ");
|
||||
break;
|
||||
case UCOL_SECONDARY:
|
||||
result.append(" << ");
|
||||
break;
|
||||
case UCOL_PRIMARY:
|
||||
result.append(" < ");
|
||||
break;
|
||||
case UCOL_OFF:
|
||||
result.append(" >? ");
|
||||
break;
|
||||
default:
|
||||
result.append(" ?! ");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(strength) {
|
||||
case UCOL_IDENTICAL:
|
||||
if(pretty) {
|
||||
result.append(" ");
|
||||
}
|
||||
result.append(" = ");
|
||||
break;
|
||||
case UCOL_QUATERNARY:
|
||||
if(pretty) {
|
||||
result.append(" ");
|
||||
}
|
||||
result.append(" <<<< ");
|
||||
break;
|
||||
case UCOL_TERTIARY:
|
||||
//u_fprintf(file, "<3");
|
||||
if(pretty) {
|
||||
result.append(" ");
|
||||
}
|
||||
result.append(" <<< ");
|
||||
break;
|
||||
case UCOL_SECONDARY:
|
||||
//u_fprintf(file, "<2");
|
||||
if(pretty) {
|
||||
result.append(" ");
|
||||
}
|
||||
result.append(" << ");
|
||||
break;
|
||||
case UCOL_PRIMARY:
|
||||
//u_fprintf(file, "<1");
|
||||
if(pretty) {
|
||||
result.append(" ");
|
||||
}
|
||||
result.append(" < ");
|
||||
break;
|
||||
case UCOL_OFF:
|
||||
result.append(" >? ");
|
||||
break;
|
||||
default:
|
||||
result.append(" ?! ");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Line *
|
||||
Line::nextInteresting() {
|
||||
Line *result = this->next;
|
||||
while(result && result->strength != UCOL_IDENTICAL) {
|
||||
result = result->next;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void
|
||||
Line::append(const UChar* n, int32_t length)
|
||||
{
|
||||
u_strncat(name, n, length);
|
||||
name[len+length] = 0;
|
||||
len += length;
|
||||
UChar32 end;
|
||||
U16_GET(n, 0, length-1, length, end);
|
||||
lastCC = u_getCombiningClass(end);
|
||||
}
|
||||
|
||||
void
|
||||
Line::append(const UChar n)
|
||||
{
|
||||
name[len] = n;
|
||||
name[len+1] = 0;
|
||||
len++;
|
||||
lastCC = u_getCombiningClass(n);
|
||||
}
|
||||
|
||||
void
|
||||
Line::append(const Line &l)
|
||||
{
|
||||
append(l.name, l.len);
|
||||
lastCC = l.lastCC;
|
||||
}
|
||||
|
||||
void
|
||||
Line::clear()
|
||||
{
|
||||
name[0] = 0;
|
||||
len = 0;
|
||||
}
|
||||
|
||||
int32_t
|
||||
Line::write(char *buff, int32_t, UErrorCode &)
|
||||
{
|
||||
/*
|
||||
UChar name[25];
|
||||
int32_t len;
|
||||
UChar expansionString[25];
|
||||
int32_t expLen;
|
||||
|
||||
UColAttributeValue strength;
|
||||
UColAttributeValue strengthFromEmpty;
|
||||
UColAttributeValue cumulativeStrength;
|
||||
UColAttributeValue expStrength;
|
||||
|
||||
Line *previous;
|
||||
Line *next;
|
||||
|
||||
UBool isContraction;
|
||||
UBool isExpansion;
|
||||
UBool isRemoved;
|
||||
UBool isReset;
|
||||
|
||||
int32_t expIndex;
|
||||
uint8_t firstCC;
|
||||
uint8_t lastCC;
|
||||
*/
|
||||
int32_t resLen = 0;
|
||||
int32_t i = 0;
|
||||
sprintf(buff+resLen, "%04X", name[0]);
|
||||
resLen += 4;
|
||||
for(i = 1; i < len; i++) {
|
||||
sprintf(buff+resLen, " %04X", name[i]);
|
||||
resLen += 5;
|
||||
}
|
||||
sprintf(buff+resLen, "/");
|
||||
resLen += 1;
|
||||
|
||||
i = 0;
|
||||
if(expLen) {
|
||||
sprintf(buff+resLen, "%04X", expansionString[0]);
|
||||
resLen += 4;
|
||||
for(i = 1; i < expLen; i++) {
|
||||
sprintf(buff+resLen, " %04X", expansionString[i]);
|
||||
resLen += 5;
|
||||
}
|
||||
}
|
||||
sprintf(buff+resLen, "; ");
|
||||
resLen += 2;
|
||||
|
||||
sprintf(buff+resLen, "%02i ", strength);
|
||||
resLen += 3;
|
||||
sprintf(buff+resLen, "%02i", strengthFromEmpty);
|
||||
resLen += 2;
|
||||
sprintf(buff+resLen, "%02i", cumulativeStrength);
|
||||
resLen += 2;
|
||||
sprintf(buff+resLen, "%02i", expStrength);
|
||||
resLen += 2;
|
||||
|
||||
// Various flags. The only interesting ones are isReset and isRemoved. We will not output removed lines
|
||||
//sprintf(buff+resLen, "%1i%1i%1i%1i ", isContraction, isExpansion, isRemoved, isReset);
|
||||
//resLen += 5;
|
||||
sprintf(buff+resLen, "%1i%1i ", isRemoved, isReset);
|
||||
resLen += 3;
|
||||
|
||||
// first and last CC
|
||||
// can be calculated on reading
|
||||
//sprintf(buff+resLen, "%03i %03i ", firstCC, lastCC);
|
||||
//resLen += 8;
|
||||
|
||||
sprintf(buff+resLen, "%08X", expIndex);
|
||||
resLen += 8;
|
||||
|
||||
buff[resLen] = 0;
|
||||
|
||||
return resLen;
|
||||
}
|
||||
|
||||
void
|
||||
Line::initFromString(const char *buff, int32_t, UErrorCode &)
|
||||
{
|
||||
int32_t bufIndex = 0;
|
||||
int32_t i = 0;
|
||||
|
||||
sscanf(buff+bufIndex, "%04X", &name[i]);
|
||||
i++;
|
||||
bufIndex += 4;
|
||||
while(buff[bufIndex] != '/') {
|
||||
sscanf(buff+bufIndex, " %04X", &name[i]);
|
||||
i++;
|
||||
bufIndex += 5;
|
||||
}
|
||||
len = i;
|
||||
name[len] = 0;
|
||||
bufIndex++;
|
||||
|
||||
if(i > 1) {
|
||||
isContraction = TRUE;
|
||||
} else {
|
||||
isContraction = FALSE;
|
||||
}
|
||||
|
||||
if(buff[bufIndex] == ';') {
|
||||
isExpansion = FALSE;
|
||||
bufIndex += 2;
|
||||
expansionString[0] = 0;
|
||||
expLen = 0;
|
||||
} else {
|
||||
i = 0;
|
||||
sscanf(buff+bufIndex, "%04X", &expansionString[i]);
|
||||
i++;
|
||||
bufIndex += 4;
|
||||
while(buff[bufIndex] != ';') {
|
||||
sscanf(buff+bufIndex, " %04X", &expansionString[i]);
|
||||
i++;
|
||||
bufIndex += 5;
|
||||
}
|
||||
expLen = i;
|
||||
expansionString[expLen] = 0;
|
||||
bufIndex += 2;
|
||||
}
|
||||
sscanf(buff+bufIndex, "%02i ", &strength);
|
||||
bufIndex += 3;
|
||||
sscanf(buff+bufIndex, "%02i", &strengthFromEmpty);
|
||||
bufIndex += 2;
|
||||
sscanf(buff+bufIndex, "%02i", &cumulativeStrength);
|
||||
bufIndex += 2;
|
||||
sscanf(buff+bufIndex, "%02i", &expStrength);
|
||||
bufIndex += 2;
|
||||
|
||||
sscanf(buff+bufIndex, "%1i%1i ", &isRemoved, &isReset);
|
||||
bufIndex += 3;
|
||||
|
||||
sscanf(buff+bufIndex, "%08X", &expIndex);
|
||||
bufIndex += 8;
|
||||
|
||||
// calculate first and last CC
|
||||
UChar32 c;
|
||||
U16_GET(name, 0, 0, len, c);
|
||||
firstCC = u_getCombiningClass(c);
|
||||
U16_GET(name, 0, len-1, len, c);
|
||||
lastCC = u_getCombiningClass(c);
|
||||
}
|
||||
|
||||
void
|
||||
Line::swapCase(UChar *string, int32_t &sLen)
|
||||
{
|
||||
UChar32 c = 0;
|
||||
int32_t i = 0, j = 0;
|
||||
UChar buff[256];
|
||||
UBool isError = FALSE;
|
||||
while(i < sLen) {
|
||||
U16_NEXT(string, i, sLen, c);
|
||||
if(u_isUUppercase(c)) {
|
||||
c = u_tolower(c);
|
||||
} else if(u_isULowercase(c)) {
|
||||
c = u_toupper(c);
|
||||
}
|
||||
U16_APPEND(buff, j, 256, c, isError);
|
||||
}
|
||||
buff[j] = 0;
|
||||
u_strcpy(string, buff);
|
||||
sLen = j;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Line::swapCase()
|
||||
{
|
||||
swapCase(name, len);
|
||||
swapCase(expansionString, expLen);
|
||||
}
|
||||
|
||||
UnicodeString
|
||||
Line::dumpSortkey()
|
||||
{
|
||||
|
||||
char buffer[256];
|
||||
char *buff = buffer;
|
||||
*buff = 0;
|
||||
uint8_t *key = sortKey;
|
||||
if(sortKey) {
|
||||
while(*key) {
|
||||
sprintf(buff, "%02X ", *key);
|
||||
key++;
|
||||
buff += 3;
|
||||
if(buff - buffer > 252) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return UnicodeString(buffer);
|
||||
}
|
||||
|
113
colprobe/line.h
Normal file
113
colprobe/line.h
Normal file
|
@ -0,0 +1,113 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2003, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
*******************************************************************************
|
||||
*
|
||||
* File line.h
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 03/18/2003 weiv Creation.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
//
|
||||
// class Line
|
||||
//
|
||||
// Each line from the source file (containing a name, presumably) gets
|
||||
// one of these structs.
|
||||
//
|
||||
|
||||
#ifndef COLPROBE_LINE_H
|
||||
#define COLPROBE_LINE_H
|
||||
#include "unicode/utypes.h"
|
||||
#include "unicode/ucol.h"
|
||||
#include "unicode/ustring.h"
|
||||
#include "unicode/unistr.h"
|
||||
#include "unicode/uchar.h"
|
||||
#include "unicode/uniset.h"
|
||||
#include "colprobe.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
static const int MAX_EXPANSION_PREFIXES = 10;
|
||||
|
||||
class Line {
|
||||
public:
|
||||
static void copyArray(Line *dest, const Line *src, int32_t size);
|
||||
Line();
|
||||
Line(const Line &other);
|
||||
Line(const UChar* name, int32_t len);
|
||||
Line(const UnicodeString &string);
|
||||
Line(const UChar name);
|
||||
Line(const char *buff, int32_t buffLen, UErrorCode &status);
|
||||
~Line();
|
||||
Line & operator=(const Line &other);
|
||||
UBool operator==(const Line &other) const;
|
||||
UBool operator!=(const Line &other) const;
|
||||
void setToConcat(const Line *first, const Line *second);
|
||||
void setName(const UChar* name, int32_t len);
|
||||
UnicodeString toString(UBool pretty = FALSE);
|
||||
UnicodeString toBundleString();
|
||||
UnicodeString toHTMLString();
|
||||
int32_t write(char *buff, int32_t buffLen, UErrorCode &status);
|
||||
void initFromString(const char *buff, int32_t buffLen, UErrorCode &status);
|
||||
|
||||
|
||||
UnicodeString strengthIndent(UColAttributeValue strength, int indentSize, UnicodeString &result);
|
||||
UnicodeString strengthToString(UColAttributeValue strength, UBool pretty, UBool html = FALSE);
|
||||
UnicodeString stringToName(UChar *string, int32_t len);
|
||||
void setTo(const UnicodeString &string);
|
||||
void setTo(const UChar32 n);
|
||||
UBool equals(const Line &other) const;
|
||||
Line *nextInteresting();
|
||||
void append(const UChar n);
|
||||
void append(const UChar* n, int32_t length);
|
||||
void append(const Line &l);
|
||||
void clear();
|
||||
void swapCase();
|
||||
void swapCase(UChar *string, int32_t &sLen);
|
||||
UnicodeString dumpSortkey();
|
||||
void init();
|
||||
|
||||
|
||||
public:
|
||||
UChar name[25];
|
||||
int32_t len;
|
||||
UChar expansionString[25];
|
||||
int32_t expLen;
|
||||
|
||||
UColAttributeValue strength;
|
||||
UColAttributeValue strengthFromEmpty;
|
||||
UColAttributeValue cumulativeStrength;
|
||||
UColAttributeValue expStrength;
|
||||
|
||||
Line *previous;
|
||||
Line *next;
|
||||
|
||||
// In case this element is a contraction
|
||||
// we keep a pointer at which lines were components
|
||||
Line *left;
|
||||
Line *right;
|
||||
|
||||
UBool isContraction;
|
||||
UBool isExpansion;
|
||||
UBool isRemoved;
|
||||
UBool isReset;
|
||||
|
||||
int32_t expIndex;
|
||||
uint8_t firstCC;
|
||||
uint8_t lastCC;
|
||||
|
||||
uint8_t *sortKey;
|
||||
public:
|
||||
static UnicodeSet *needsQuoting;
|
||||
};
|
||||
|
||||
|
||||
#endif //COLPROBE_LINE_H
|
241
colprobe/locale.txt
Normal file
241
colprobe/locale.txt
Normal file
|
@ -0,0 +1,241 @@
|
|||
af
|
||||
af_ZA
|
||||
am
|
||||
am_ET
|
||||
ar
|
||||
ar_AE
|
||||
ar_BH
|
||||
ar_DZ
|
||||
ar_EG
|
||||
ar_IN
|
||||
ar_IQ
|
||||
ar_JO
|
||||
ar_KW
|
||||
ar_LB
|
||||
ar_LY
|
||||
ar_MA
|
||||
ar_OM
|
||||
ar_QA
|
||||
ar_SA
|
||||
ar_SD
|
||||
ar_SY
|
||||
ar_TN
|
||||
ar_YE
|
||||
be
|
||||
be_BY
|
||||
bg
|
||||
bg_BG
|
||||
bn
|
||||
bn_IN
|
||||
ca
|
||||
ca_ES
|
||||
#ca_ES_PREEURO
|
||||
cs
|
||||
cs_CZ
|
||||
da
|
||||
da_DK
|
||||
de
|
||||
de_AT
|
||||
#de_AT_PREEURO
|
||||
de_BE
|
||||
de_CH
|
||||
de_DE
|
||||
#de_DE_PREEURO
|
||||
de_LU
|
||||
#de_LU_PREEURO
|
||||
de__PHONEBOOK
|
||||
el
|
||||
el_GR
|
||||
#el_GR_PREEURO
|
||||
en
|
||||
en_AU
|
||||
en_BE
|
||||
#en_BE_PREEURO
|
||||
en_BW
|
||||
en_CA
|
||||
en_GB
|
||||
#en_GB_EURO
|
||||
en_HK
|
||||
en_IE
|
||||
#en_IE_PREEURO
|
||||
en_IN
|
||||
en_MT
|
||||
en_NZ
|
||||
en_PH
|
||||
en_SG
|
||||
en_US
|
||||
en_US_POSIX
|
||||
en_VI
|
||||
en_ZA
|
||||
en_ZW
|
||||
eo
|
||||
es
|
||||
es_AR
|
||||
es_BO
|
||||
es_CL
|
||||
es_CO
|
||||
es_CR
|
||||
es_DO
|
||||
es_EC
|
||||
es_ES
|
||||
#es_ES_PREEURO
|
||||
es_GT
|
||||
es_HN
|
||||
es_MX
|
||||
es_NI
|
||||
es_PA
|
||||
es_PE
|
||||
es_PR
|
||||
es_PY
|
||||
es_SV
|
||||
es_US
|
||||
es_UY
|
||||
es_VE
|
||||
es__TRADITIONAL
|
||||
et
|
||||
et_EE
|
||||
eu
|
||||
eu_ES
|
||||
#eu_ES_PREEURO
|
||||
fa
|
||||
fa_AF
|
||||
fa_IR
|
||||
fi
|
||||
fi_FI
|
||||
#fi_FI_PREEURO
|
||||
fo
|
||||
fo_FO
|
||||
fr
|
||||
fr_BE
|
||||
#fr_BE_PREEURO
|
||||
fr_CA
|
||||
fr_CH
|
||||
fr_FR
|
||||
#fr_FR_PREEURO
|
||||
fr_LU
|
||||
#fr_LU_PREEURO
|
||||
ga
|
||||
ga_IE
|
||||
#ga_IE_PREEURO
|
||||
gl
|
||||
gl_ES
|
||||
#gl_ES_PREEURO
|
||||
gu
|
||||
gu_IN
|
||||
gv
|
||||
gv_GB
|
||||
he
|
||||
he_IL
|
||||
hi
|
||||
hi_IN
|
||||
hi__DIRECT
|
||||
hr
|
||||
hr_HR
|
||||
hu
|
||||
hu_HU
|
||||
hy
|
||||
hy_AM
|
||||
hy_AM_REVISED
|
||||
id
|
||||
id_ID
|
||||
is
|
||||
is_IS
|
||||
it
|
||||
it_CH
|
||||
it_IT
|
||||
#it_IT_PREEURO
|
||||
ja
|
||||
ja_JP
|
||||
#ja_JP_TRADITIONAL
|
||||
kk_KZ
|
||||
kl
|
||||
kl_GL
|
||||
kn
|
||||
kn_IN
|
||||
ko
|
||||
ko_KR
|
||||
kok
|
||||
kok_IN
|
||||
kw
|
||||
kw_GB
|
||||
lt
|
||||
lt_LT
|
||||
lv
|
||||
lv_LV
|
||||
mk
|
||||
mk_MK
|
||||
mr
|
||||
mr_IN
|
||||
ms_MY
|
||||
mt
|
||||
mt_MT
|
||||
nb
|
||||
nb_NO
|
||||
nl
|
||||
nl_BE
|
||||
#nl_BE_PREEURO
|
||||
nl_NL
|
||||
#nl_NL_PREEURO
|
||||
nn
|
||||
nn_NO
|
||||
om
|
||||
om_ET
|
||||
om_KE
|
||||
pl
|
||||
pl_PL
|
||||
ps
|
||||
ps_AF
|
||||
pt
|
||||
pt_BR
|
||||
pt_PT
|
||||
#pt_PT_PREEURO
|
||||
ro
|
||||
ro_RO
|
||||
ru
|
||||
ru_RU
|
||||
ru_UA
|
||||
sh
|
||||
sh_YU
|
||||
sk
|
||||
sk_SK
|
||||
sl
|
||||
sl_SI
|
||||
so
|
||||
so_DJ
|
||||
so_ET
|
||||
so_KE
|
||||
so_SO
|
||||
sq
|
||||
sq_AL
|
||||
sr
|
||||
sr_YU
|
||||
sv
|
||||
sv_FI
|
||||
sv_SE
|
||||
sw
|
||||
sw_KE
|
||||
sw_TZ
|
||||
ta
|
||||
ta_IN
|
||||
te
|
||||
te_IN
|
||||
th
|
||||
th_TH
|
||||
#th_TH_TRADITIONAL
|
||||
ti
|
||||
ti_ER
|
||||
ti_ET
|
||||
tr
|
||||
tr_TR
|
||||
uk
|
||||
uk_UA
|
||||
vi
|
||||
vi_VN
|
||||
zh
|
||||
zh_CN
|
||||
zh_HK
|
||||
zh_MO
|
||||
zh_SG
|
||||
zh_TW
|
||||
zh_TW_STROKE
|
||||
zh__PINYIN
|
48
colprobe/longname.cpp
Normal file
48
colprobe/longname.cpp
Normal file
|
@ -0,0 +1,48 @@
|
|||
#include "unicode/unistr.h"
|
||||
#include "unicode/locid.h"
|
||||
#include "unicode/ucnv.h"
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc,
|
||||
char* argv[])
|
||||
{
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
const char *loc = argv[1];
|
||||
int32_t hasCountry;
|
||||
UConverter *conv = ucnv_open("utf8", &status);
|
||||
|
||||
|
||||
UChar UBuffer[256];
|
||||
int32_t uBufLen = 0;
|
||||
char buffer[256];
|
||||
int32_t bufLen = 0;
|
||||
|
||||
uBufLen = uloc_getDisplayLanguage(loc, "en", UBuffer, 256, &status);
|
||||
bufLen = ucnv_fromUChars(conv, buffer, 256, UBuffer, uBufLen, &status);
|
||||
//u_UCharsToChars(UBuffer, buffer, uBufLen);
|
||||
buffer[bufLen] = 0;
|
||||
printf("%s", buffer);
|
||||
|
||||
if(hasCountry = uloc_getCountry(loc, buffer, 256, &status)) {
|
||||
uBufLen = uloc_getDisplayCountry(loc, "en", UBuffer, 256, &status);
|
||||
bufLen = ucnv_fromUChars(conv, buffer, 256, UBuffer, uBufLen, &status);
|
||||
//u_UCharsToChars(UBuffer, buffer, uBufLen);
|
||||
buffer[bufLen] = 0;
|
||||
printf("_%s", buffer);
|
||||
}
|
||||
|
||||
if(uloc_getVariant(loc, buffer, 256, &status)) {
|
||||
uBufLen = uloc_getDisplayVariant(loc, "en", UBuffer, 256, &status);
|
||||
bufLen = ucnv_fromUChars(conv, buffer, 256, UBuffer, uBufLen, &status);
|
||||
//u_UCharsToChars(UBuffer, buffer, uBufLen);
|
||||
buffer[bufLen] = 0;
|
||||
if(!hasCountry) {
|
||||
printf("_");
|
||||
}
|
||||
printf("_%s", buffer);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
4
colprobe/readme.txt
Normal file
4
colprobe/readme.txt
Normal file
|
@ -0,0 +1,4 @@
|
|||
There are several tools in this directory that should make it easier to generate collation data:
|
||||
extractCollationData.pl - perl script that reads ICU resource bundle files and outputs a locale_collation.html file if collation elements are present in the locale. Arguments are the list of locale source files (*.txt) that need to be processed.
|
||||
createComparisonTables.pl - takes a locale name. Looks in directories that should contain the html data produced by colprobe or extractCollationData.
|
||||
tableStarter.pl - invokes createComparisonTables.pl with a list of locales.
|
2067
colprobe/sortedlines.cpp
Normal file
2067
colprobe/sortedlines.cpp
Normal file
File diff suppressed because it is too large
Load diff
120
colprobe/sortedlines.h
Normal file
120
colprobe/sortedlines.h
Normal file
|
@ -0,0 +1,120 @@
|
|||
#ifndef COLPROBE_SORTEDLINES_H
|
||||
#define COLPROBE_SORTEDLINES_H
|
||||
|
||||
// colprobe includes
|
||||
#include "colprobe.h"
|
||||
#include "line.h"
|
||||
#include "uprinter.h"
|
||||
#include "strengthprobe.h"
|
||||
|
||||
|
||||
// ICU includes
|
||||
#include "unicode/uniset.h"
|
||||
#include "unicode/usetiter.h"
|
||||
#include "unicode/uscript.h"
|
||||
#include "hash.h"
|
||||
|
||||
class SortedLines {
|
||||
Line empty;
|
||||
Line *UB[UCOL_OFF];
|
||||
UnicodeSet ignorables[UCOL_OFF];
|
||||
|
||||
Line **toSort;
|
||||
int32_t toSortCapacity;
|
||||
Line *lines;
|
||||
int32_t size;
|
||||
int32_t capacity;
|
||||
|
||||
UnicodeSet repertoire;
|
||||
UnicodeSet excludeBounds;
|
||||
|
||||
StrengthProbe probe;
|
||||
|
||||
Line *first;
|
||||
Line *last;
|
||||
Line *current;
|
||||
SortedLines() {};
|
||||
|
||||
UPrinter *logger;
|
||||
UPrinter *debug;
|
||||
|
||||
Hashtable *contractionsTable;
|
||||
Hashtable *duplicators; // elements that duplicate preceding characters
|
||||
int32_t maxExpansionPrefixSize;
|
||||
|
||||
// Properties of the sort
|
||||
UBool wordSort;
|
||||
UBool frenchSecondary;
|
||||
UBool upperFirst;
|
||||
|
||||
uint8_t *sortkeys;
|
||||
int32_t sortkeyOffset;
|
||||
public:
|
||||
SortedLines(const UnicodeSet &set, const UnicodeSet &excludeBounds, const StrengthProbe &probe, UPrinter *logger, UPrinter *debug);
|
||||
SortedLines(FILE *file, UPrinter *logger, UPrinter *debug, UErrorCode &status);
|
||||
~SortedLines();
|
||||
void analyse(UErrorCode &status);
|
||||
|
||||
void sort(UBool setStrengths = TRUE, UBool link = FALSE);
|
||||
void sort(Line **sortingArray, int32_t sizeToSort, UBool setStrengths = TRUE, UBool link = FALSE);
|
||||
|
||||
Line *getFirst();
|
||||
Line *getLast();
|
||||
void add(Line *line, UBool linkIn = FALSE);
|
||||
void insert(Line *line, int32_t index);
|
||||
Line *getNext();
|
||||
Line *getPrevious();
|
||||
Line *operator[](int32_t index);
|
||||
int32_t addContractionsToRepertoire(UErrorCode &status);
|
||||
|
||||
int32_t getSize() const;
|
||||
|
||||
int32_t detectExpansions();
|
||||
|
||||
UnicodeString toString(UBool useLinks = FALSE);
|
||||
UnicodeString toStringFromEmpty();
|
||||
UnicodeString toPrettyString(UBool useLinks, UBool printSortKeys = FALSE);
|
||||
UnicodeString toOutput(const char *format,
|
||||
const char *locale, const char *platform, const char *reference,
|
||||
UBool useLinks, UBool initialize, UBool moreToCome);
|
||||
UnicodeString toBundle(const char *locale, const char *platform, const char *reference,
|
||||
UBool useLinks, UBool initialize, UBool moreToCome);
|
||||
UnicodeString toHTML(const char *locale, const char *platform, const char *reference,
|
||||
UBool useLinks, UBool initialize, UBool moreToCome);
|
||||
UnicodeString toXML(const char *locale, const char *platform, const char *reference,
|
||||
UBool useLinks, UBool initialize, UBool moreToCome);
|
||||
UnicodeString arrayToString(Line** sortedLines, int32_t linesSize, UBool pretty, UBool useLinks, UBool printSortKeys);
|
||||
void setSortingArray(Line **sortingArray, Line *elements, int32_t sizeToSort);
|
||||
int32_t setSortingArray(Line **sortingArray, Hashtable *table);
|
||||
|
||||
void reduceDifference(SortedLines& reference);
|
||||
void getRepertoire(UnicodeSet &fillIn);
|
||||
void removeDecompositionsFromRepertoire();
|
||||
void getBounds(UErrorCode &status);
|
||||
void classifyRepertoire();
|
||||
void toFile(FILE *file, UBool useLinks, UErrorCode &status);
|
||||
void swapCase();
|
||||
void calculateSortKeys();
|
||||
void calculateSortKey(Line &line);
|
||||
private:
|
||||
void init();
|
||||
void init(UnicodeSet &rep, Line *lin);
|
||||
int32_t detectContractions(Line **firstRep, int32_t firstSize,
|
||||
Line **secondRep, int32_t secondSize,
|
||||
Line *toAddTo, int32_t &toAddToSize,
|
||||
Line *lesserToAddTo, int32_t &lesserToAddToSize,
|
||||
int32_t capacity, UErrorCode &status);
|
||||
|
||||
void calculateCumulativeStrengths(Line *start, Line *end);
|
||||
void transferCumulativeStrength(Line *previous, Line *that);
|
||||
void updateBounds(UnicodeSet &set);
|
||||
void addAll(Line* toAdd, int32_t toAddSize);
|
||||
void setDistancesFromEmpty(Line* array, int32_t arraySize);
|
||||
void noteContraction(const char* msg, Line *toAddTo, int32_t &toAddToSize, Line *left, Line *right, int32_t &noConts, UErrorCode &status);
|
||||
int32_t gooseUp(int32_t resetIndex, int32_t expansionIndex, Line &expLine, int32_t *expIndexes, int32_t &expIndexSize, UColAttributeValue strength);
|
||||
UBool getExpansionLine(const Line &expansion, const Line &previous, const Line &exp, Line &expansionLine);
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // #ifndef COLPROBE_SORTEDLINES_H
|
402
colprobe/strengthprobe.cpp
Normal file
402
colprobe/strengthprobe.cpp
Normal file
|
@ -0,0 +1,402 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2003, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
*******************************************************************************
|
||||
*
|
||||
* File line.h
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 07/07/2003 weiv Creation.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
//
|
||||
// class Line
|
||||
//
|
||||
// Each line from the source file (containing a name, presumably) gets
|
||||
// one of these structs.
|
||||
//
|
||||
|
||||
#include "strengthprobe.h"
|
||||
|
||||
StrengthProbe::StrengthProbe(CompareFn comparer, GetSortKeyFn getter, UChar SE,
|
||||
UChar B0, UChar B1, UChar B2, UChar B3) :
|
||||
SE(SE),
|
||||
B0(B0), B1(B1), B2(B2), B3(B3),
|
||||
utilFirstP(&utilFirst), utilSecondP(&utilSecond),
|
||||
frenchSecondary(FALSE),
|
||||
comparer(comparer), skgetter(getter)
|
||||
{
|
||||
}
|
||||
|
||||
int
|
||||
StrengthProbe::setProbeChars(UChar B0, UChar B1, UChar B2, UChar B3)
|
||||
{
|
||||
this->B0 = B0;
|
||||
this->B1 = B1;
|
||||
this->B2 = B2;
|
||||
this->
|
||||
B3 = B3;
|
||||
return checkSanity();
|
||||
}
|
||||
|
||||
int
|
||||
StrengthProbe::checkSanity()
|
||||
{
|
||||
int sanityRes;
|
||||
utilFirst.setTo(B0);
|
||||
utilSecond.setTo(B3);
|
||||
if((sanityRes = comparer(&utilFirstP, &utilSecondP)) >= 0) {
|
||||
return sanityRes*10 + 3;
|
||||
}
|
||||
utilSecond.setTo(B2);
|
||||
if((sanityRes = comparer(&utilFirstP, &utilSecondP)) >= 0) {
|
||||
return sanityRes*10 + 2;
|
||||
}
|
||||
utilSecond.setTo(B1);
|
||||
if((sanityRes = comparer(&utilFirstP, &utilSecondP)) >= 0) {
|
||||
return sanityRes*10 + 1;
|
||||
}
|
||||
utilFirst.setTo(B3);
|
||||
utilSecond.setTo(B2);
|
||||
if((sanityRes = comparer(&utilFirstP, &utilSecondP)) >= 0) {
|
||||
return sanityRes*10 + 5;
|
||||
}
|
||||
utilSecond.setTo(B1);
|
||||
if((sanityRes = comparer(&utilFirstP, &utilSecondP)) >= 0) {
|
||||
return sanityRes*10 + 4;
|
||||
}
|
||||
utilFirst.setTo(B2);
|
||||
if((sanityRes = comparer(&utilFirstP, &utilSecondP)) >= 0) {
|
||||
return sanityRes*10 + 6;
|
||||
}
|
||||
utilFirst.setTo(B0);
|
||||
if(distanceFromEmptyString(utilFirst) > UCOL_PRIMARY) {
|
||||
return 1000;
|
||||
}
|
||||
utilFirst.setTo(B1);
|
||||
if(distanceFromEmptyString(utilFirst) > UCOL_PRIMARY) {
|
||||
return 1001;
|
||||
}
|
||||
utilFirst.setTo(B2);
|
||||
if(distanceFromEmptyString(utilFirst) > UCOL_PRIMARY) {
|
||||
return 1002;
|
||||
}
|
||||
utilFirst.setTo(B3);
|
||||
if(distanceFromEmptyString(utilFirst) > UCOL_PRIMARY) {
|
||||
return 1003;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
UBool
|
||||
StrengthProbe::probePrefix(const Line &x, const Line &y, UChar first, UChar second) {
|
||||
utilFirst.name[0] = first;
|
||||
utilFirst.name[1] = SE;
|
||||
u_strcpy(utilFirst.name+2, x.name);
|
||||
utilFirst.name[x.len+2] = 0;
|
||||
utilFirst.len = x.len+2;
|
||||
|
||||
utilSecond.name[0] = second;
|
||||
utilSecond.name[1] = SE;
|
||||
u_strcpy(utilSecond.name+2, y.name);
|
||||
utilSecond.name[y.len+2] = 0;
|
||||
utilSecond.len = y.len+2;
|
||||
|
||||
if(comparer(&utilFirstP, &utilSecondP) < 0) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
UBool
|
||||
StrengthProbe::probeSuffix(const Line &x, const Line &y, UChar first, UChar second) {
|
||||
u_strcpy(utilFirst.name, x.name);
|
||||
utilFirst.name[x.len] = SE;
|
||||
utilFirst.name[x.len+1] = first;
|
||||
utilFirst.name[x.len+2] = 0;
|
||||
utilFirst.len = x.len + 2;
|
||||
u_strcpy(utilSecond.name, y.name);
|
||||
utilSecond.name[y.len] = SE;
|
||||
utilSecond.name[y.len+1] = second;
|
||||
utilSecond.name[y.len+2] = 0;
|
||||
utilSecond.len = y.len + 2;
|
||||
|
||||
if(comparer(&utilFirstP, &utilSecondP) < 0) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
UBool
|
||||
StrengthProbe::probePrefixNoSep(const Line &x, const Line &y, UChar first, UChar second) {
|
||||
utilFirst.name[0] = first;
|
||||
u_strcpy(utilFirst.name+1, x.name);
|
||||
utilFirst.name[x.len+1] = 0;
|
||||
utilFirst.len = x.len + 1;
|
||||
|
||||
utilSecond.name[0] = second;
|
||||
u_strcpy(utilSecond.name+1, y.name);
|
||||
utilSecond.name[y.len+1] = 0;
|
||||
utilSecond.len = y.len + 1;
|
||||
|
||||
if(comparer(&utilFirstP, &utilSecondP) < 0) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
UBool
|
||||
StrengthProbe::probeSuffixNoSep(const Line &x, const Line &y, UChar first, UChar second) {
|
||||
u_strcpy(utilFirst.name, x.name);
|
||||
utilFirst.name[x.len] = first;
|
||||
utilFirst.name[x.len+1] = 0;
|
||||
utilFirst.len = x.len + 1;
|
||||
u_strcpy(utilSecond.name, y.name);
|
||||
utilSecond.name[y.len] = second;
|
||||
utilSecond.name[y.len+1] = 0;
|
||||
utilSecond.len = y.len + 1;
|
||||
|
||||
if(comparer(&utilFirstP, &utilSecondP) < 0) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
UColAttributeValue
|
||||
StrengthProbe::getStrength(const Line &x, const Line &y) {
|
||||
const Line *xp = &x;
|
||||
const Line *yp = &y;
|
||||
|
||||
Line empty;
|
||||
Line *emptyP = ∅
|
||||
if(comparer(&emptyP, &xp) == 0) {
|
||||
return distanceFromEmptyString(y);
|
||||
}
|
||||
|
||||
int32_t result = comparer(&xp, &yp);
|
||||
|
||||
if(result == 0) {
|
||||
return UCOL_IDENTICAL;
|
||||
} else if(result > 0) {
|
||||
return UCOL_OFF; // bad situation
|
||||
} else { // we need to probe strength
|
||||
if(probeSuffix(x, y, B1, B0)) {
|
||||
//if(probePrefix(x, y, B2, B0)) { // swamps secondary difference
|
||||
return UCOL_PRIMARY;
|
||||
} else if(probePrefix(x, y, B3, B0)) { // swamps tertiary difference
|
||||
return UCOL_SECONDARY;
|
||||
} else if(probeSuffix(x, y, B3, B0)) { // swamped by tertiary difference
|
||||
return UCOL_TERTIARY;
|
||||
} else if(!probePrefix(x, y, B3, B0)) {
|
||||
return UCOL_QUATERNARY;
|
||||
}
|
||||
/*
|
||||
//if(probeSuffix(x, y, B1, B0)) {
|
||||
if(probePrefix(x, y, B2, B0)) { // swamps secondary difference
|
||||
return UCOL_PRIMARY;
|
||||
} else if(probePrefix(x, y, B3, B0)) { // swamps tertiary difference
|
||||
return UCOL_SECONDARY;
|
||||
} else if(probeSuffix(x, y, B3, B0)) { // swamped by tertiary difference
|
||||
return UCOL_TERTIARY;
|
||||
} else if(!probePrefix(x, y, B3, B0)) {
|
||||
return UCOL_QUATERNARY;
|
||||
}
|
||||
*/
|
||||
}
|
||||
return UCOL_OFF; // bad
|
||||
}
|
||||
|
||||
UColAttributeValue
|
||||
StrengthProbe::getStrength(const UnicodeString &sx, const UnicodeString &sy) {
|
||||
Line x(sx);
|
||||
Line y(sy);
|
||||
return getStrength(x, y);
|
||||
}
|
||||
|
||||
int32_t
|
||||
StrengthProbe::compare(const UnicodeString &sx, const UnicodeString &sy) {
|
||||
Line x(sx);
|
||||
Line y(sy);
|
||||
const Line *xp = &x;
|
||||
const Line *yp = &y;
|
||||
return comparer(&xp, &yp);
|
||||
}
|
||||
|
||||
int32_t
|
||||
StrengthProbe::compare(const Line &x, const Line &y) {
|
||||
const Line *xp = &x;
|
||||
const Line *yp = &y;
|
||||
return comparer(&xp, &yp);
|
||||
}
|
||||
|
||||
UColAttributeValue
|
||||
StrengthProbe::distanceFromEmptyString(const Line &x) {
|
||||
if(x.name[0] == 0x30D) {
|
||||
int32_t putBreakPointHere = 0;
|
||||
}
|
||||
Line empty;
|
||||
Line *emptyP = ∅
|
||||
uint8_t buff[256];
|
||||
getSortKey(empty.name, empty.len, buff, 256);
|
||||
Line B0Line(B0);
|
||||
Line *B0LineP = &B0Line;
|
||||
const Line *xp = &x;
|
||||
int32_t result = comparer(&emptyP, &xp);
|
||||
if(result == 0) {
|
||||
return UCOL_IDENTICAL;
|
||||
} else if(result > 0) {
|
||||
return UCOL_OFF;
|
||||
}
|
||||
result = comparer(&B0LineP, &xp);
|
||||
if(result <= 0) {
|
||||
return UCOL_PRIMARY;
|
||||
}
|
||||
Line sexb0(SE);
|
||||
sexb0.append(x.name, x.len);
|
||||
sexb0.append(B0);
|
||||
|
||||
Line seb0(SE);
|
||||
seb0.append(B0);
|
||||
uint8_t seb0K[256];
|
||||
uint8_t sexb0K[256];
|
||||
uint8_t seb2K[256];
|
||||
uint8_t seb3K[256];
|
||||
memset(seb0K, 0, 256);
|
||||
memset(sexb0K, 0, 256);
|
||||
memset(seb2K, 0, 256);
|
||||
memset(seb3K, 0, 256);
|
||||
|
||||
getSortKey(seb0, seb0K, 256);
|
||||
getSortKey(sexb0, sexb0K, 256);
|
||||
|
||||
if(compare(seb0, sexb0) <= 0) {
|
||||
Line seb2(SE);
|
||||
seb2.append(B2);
|
||||
getSortKey(seb2, seb2K, 256);
|
||||
result = compare(seb2, sexb0);
|
||||
if((result <= 0 && !frenchSecondary) || (result >= 0 && frenchSecondary)) { // swamps tertiary difference
|
||||
return UCOL_SECONDARY;
|
||||
}
|
||||
Line seb3(SE);
|
||||
seb3.append(B3);
|
||||
getSortKey(seb3, seb3K, 256);
|
||||
if(compare(seb3, sexb0) < 0) {
|
||||
return UCOL_TERTIARY;
|
||||
}
|
||||
return UCOL_QUATERNARY;
|
||||
} else {
|
||||
// if this was UCA, we would have a primary difference.
|
||||
// however, this might not be so, since not everybody
|
||||
// makes well formed CEs.
|
||||
// in cs_CZ on linux, space is tertiary ignorable, but
|
||||
// its quaternary level strength is lower than quad
|
||||
// strengths for non-ignorables. oh well, more testing
|
||||
// required
|
||||
// I think that we can only have quaternary difference
|
||||
// here (in addition to primary difference).
|
||||
//if(!probePrefix(x, empty, B3, B0)) {
|
||||
//return UCOL_QUATERNARY;
|
||||
//} else {
|
||||
return UCOL_PRIMARY;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
UColAttributeValue
|
||||
StrengthProbe::distanceFromEmptyString(const UnicodeString &x) {
|
||||
const Line xp(x);
|
||||
return distanceFromEmptyString(xp);
|
||||
}
|
||||
|
||||
|
||||
UColAttributeValue
|
||||
StrengthProbe::getPrefixedStrength(const Line &prefix, const Line &x, const Line &y) {
|
||||
contractionUtilFirst.setToConcat(&prefix, &x);
|
||||
contractionUtilSecond.setToConcat(&prefix, &y);
|
||||
return getStrength(contractionUtilFirst, contractionUtilSecond);
|
||||
}
|
||||
|
||||
|
||||
StrengthProbe::StrengthProbe(const StrengthProbe &that) {
|
||||
*this = that;
|
||||
}
|
||||
|
||||
StrengthProbe &
|
||||
StrengthProbe::operator=(const StrengthProbe &that) {
|
||||
if(this != &that) {
|
||||
B0 = that.B0;
|
||||
B1 = that.B1;
|
||||
B2 = that.B2;
|
||||
B3 = that.B3;
|
||||
SE = that.SE;
|
||||
frenchSecondary = that.frenchSecondary;
|
||||
comparer = that.comparer;
|
||||
skgetter = that.skgetter;
|
||||
|
||||
utilFirstP = &utilFirst;
|
||||
utilSecondP = &utilSecond;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
UBool
|
||||
StrengthProbe::isFrenchSecondary(UErrorCode &status) {
|
||||
utilFirst.setTo(B0);
|
||||
utilFirst.append(SE);
|
||||
utilFirst.append(B2);
|
||||
utilSecond.setTo(B2);
|
||||
utilSecond.append(SE);
|
||||
utilSecond.append(B0);
|
||||
|
||||
int32_t result = compare(utilFirst, utilSecond);
|
||||
|
||||
if(result < 0) {
|
||||
return FALSE;
|
||||
} else if(result > 0) {
|
||||
frenchSecondary = TRUE;
|
||||
return TRUE;
|
||||
} else {
|
||||
status = U_INTERNAL_PROGRAM_ERROR;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
UBool
|
||||
StrengthProbe::isUpperFirst(UErrorCode &status) {
|
||||
UChar i = 0;
|
||||
int32_t result = 0;
|
||||
int32_t upper = 0, lower = 0, equal = 0;
|
||||
for(i = 0x41; i < 0x5B; i++) {
|
||||
utilFirst.setTo(i);
|
||||
utilSecond.setTo(i+0x20);
|
||||
result = compare(utilFirst, utilSecond);
|
||||
if(result < 0) {
|
||||
upper++;
|
||||
} else if(result > 0) {
|
||||
lower++;
|
||||
} else {
|
||||
equal++;
|
||||
}
|
||||
}
|
||||
|
||||
if(lower == 0 && equal == 0) {
|
||||
return TRUE;
|
||||
}
|
||||
if(upper == 0 && equal == 0) {
|
||||
return FALSE;
|
||||
}
|
||||
status = U_INTERNAL_PROGRAM_ERROR;
|
||||
return FALSE;
|
||||
}
|
||||
|
85
colprobe/strengthprobe.h
Normal file
85
colprobe/strengthprobe.h
Normal file
|
@ -0,0 +1,85 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2003, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
*******************************************************************************
|
||||
*
|
||||
* File line.h
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 07/07/2003 weiv Creation.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
//
|
||||
// class Line
|
||||
//
|
||||
// Each line from the source file (containing a name, presumably) gets
|
||||
// one of these structs.
|
||||
//
|
||||
|
||||
#ifndef COLPROBE_STRENGTHPROBE_H
|
||||
#define COLPROBE_STRENGTHPROBE_H
|
||||
|
||||
#include "colprobe.h"
|
||||
#include "line.h"
|
||||
#include "unicode/uniset.h"
|
||||
#include "unicode/usetiter.h"
|
||||
|
||||
class StrengthProbe {
|
||||
public:
|
||||
UChar SE;
|
||||
UChar B0;
|
||||
UChar B1;
|
||||
UChar B2;
|
||||
UChar B3;
|
||||
private:
|
||||
Line utilFirst;
|
||||
Line utilSecond;
|
||||
Line *utilFirstP;
|
||||
Line *utilSecondP;
|
||||
Line contractionUtilFirst;
|
||||
Line contractionUtilSecond;
|
||||
UBool probePrefix(const Line &x, const Line &y, UChar first, UChar second);
|
||||
UBool probeSuffix(const Line &x, const Line &y, UChar first, UChar second);
|
||||
UBool probePrefixNoSep(const Line &x, const Line &y, UChar first, UChar second);
|
||||
UBool probeSuffixNoSep(const Line &x, const Line &y, UChar first, UChar second);
|
||||
|
||||
UBool frenchSecondary;
|
||||
|
||||
public:
|
||||
CompareFn comparer;
|
||||
GetSortKeyFn skgetter;
|
||||
|
||||
StrengthProbe() {};
|
||||
StrengthProbe(CompareFn comparer, GetSortKeyFn getter, UChar SE = 0x0030, UChar B0 = 0x0061, UChar B1 = 0x0062, UChar B2 = 0x00E1, UChar B3 = 0x0041); //, UChar LB = 0x0039, UChar UB = 0xfa29);
|
||||
int setProbeChars(UChar B0, UChar B1, UChar B2, UChar B3);
|
||||
int checkSanity();
|
||||
StrengthProbe(const StrengthProbe &that);
|
||||
StrengthProbe &operator=(const StrengthProbe &that);
|
||||
UColAttributeValue getStrength(const Line &x, const Line &y);
|
||||
UColAttributeValue getStrength(const UnicodeString &x, const UnicodeString &y);
|
||||
UColAttributeValue getPrefixedStrength(const Line &prefix, const Line &x, const Line &y);
|
||||
int32_t compare(const UnicodeString &x, const UnicodeString &y);
|
||||
int32_t compare(const Line &x, const Line &y);
|
||||
UColAttributeValue distanceFromEmptyString(const Line &x);
|
||||
UColAttributeValue distanceFromEmptyString(const UnicodeString &x);
|
||||
UBool isFrenchSecondary(UErrorCode &status);
|
||||
UBool isUpperFirst(UErrorCode &status);
|
||||
int getSortKey(const Line &l, uint8_t *buffer, int32_t buffCap) {
|
||||
return skgetter(l.name, l.len, buffer, buffCap);
|
||||
};
|
||||
|
||||
int getSortKey(UChar *string, int32_t sLen, uint8_t *buffer, int32_t buffCap) {
|
||||
return skgetter(string, sLen, buffer, buffCap);
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif //#ifndef COLPROBE_STRENGTHPROBE_H
|
||||
|
16
colprobe/tableStarter.pl
Executable file
16
colprobe/tableStarter.pl
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
|
||||
my $localeMinusA = `cat /home/weiv/src/icu/source/extra/colprobe/locale.txt`;
|
||||
my @locales = split(/\n/, $localeMinusA);
|
||||
my $locale;
|
||||
my $command;
|
||||
|
||||
foreach $locale (@locales) {
|
||||
if($locale =~ /_/ && !($locale =~ /^#/)) {
|
||||
$command = "/home/weiv/src/icu/source/extra/colprobe/doComparisonTable.pl $locale";
|
||||
print "$command\n";
|
||||
`$command`;
|
||||
}
|
||||
}
|
8
colprobe/targetsetgenerator.cpp
Normal file
8
colprobe/targetsetgenerator.cpp
Normal file
|
@ -0,0 +1,8 @@
|
|||
#include "targetsetgenerator.h"
|
||||
|
||||
TargetSetGenerator::TargetSetGenerator(UnicodeSet &startingSet, CompareFn comparer) :
|
||||
comparer(comparer),
|
||||
set(startingSet)
|
||||
{
|
||||
addAll(startingSet);
|
||||
}
|
15
colprobe/targetsetgenerator.h
Normal file
15
colprobe/targetsetgenerator.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef TARGETSETGENERATOR_H
|
||||
#define TARGETSETGENERATOR_H
|
||||
|
||||
#include "colprobe.h"
|
||||
#include "unicode/uniset.h"
|
||||
|
||||
class TargetSetGenerator : public UnicodeSet {
|
||||
public:
|
||||
TargetSetGenerator(UnicodeSet &startingSet, CompareFn comparer);
|
||||
private:
|
||||
CompareFn comparer;
|
||||
UnicodeSet set;
|
||||
};
|
||||
|
||||
#endif
|
48
colprobe/template
Normal file
48
colprobe/template
Normal file
|
@ -0,0 +1,48 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>$locale</title>
|
||||
<style>
|
||||
<!--
|
||||
table { border-spacing: 0; border-collapse: collapse; width: 100%;
|
||||
border: 1px solid black }
|
||||
td, th { width: 10%; border-spacing: 0; border-collapse: collapse; color: black;
|
||||
vertical-align: top; border: 1px solid black }
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<p><b><font color="#FF0000">Collation:</font> $locale <a href="http://oss.software.ibm.com/cgi-bin/icu/lx/en/?_=$locale">Demo</a>,
|
||||
|
||||
<a href="http://oss.software.ibm.com/cvs/icu/~checkout~/locale/all_diff_xml/comparison_charts.html">Cover
|
||||
Page</a>, <a href="http://oss.software.ibm.com/cvs/icu/~checkout~/locale/all_diff_xml/index.html">Index</a></b></p>
|
||||
<table>
|
||||
<tr>
|
||||
<th bgcolor="#AD989D">COMMON (<a href="http://oss.software.ibm.com/cvs/icu/~checkout~/locale/common/xml/$locale.xml">xml</a>)</th>
|
||||
<th bgcolor="#1191F1">LINUX (<a href="http://oss.software.ibm.com/cvs/icu/~checkout~/locale/linux/xml/$locale.xml">xml</a>)</th>
|
||||
<th bgcolor="#98FB98">WINDOWS (<a href="http://oss.software.ibm.com/cvs/icu/~checkout~/locale/windows/xml/$locale.xml">xml</a>)</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td bgcolor="#AD989D">1.0-alpha</td>
|
||||
<td bgcolor="#FF6633">1.0</td>
|
||||
<td bgcolor="#FF6633">=</td>
|
||||
<td bgcolor="#FF6633"><span title="006E {LATIN SMALL LETTER N}">&n</span><br>
|
||||
<span title="006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y}"> < ny</span><br>
|
||||
|
||||
<span title="006E 006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y} / 006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y}"> = nny / ny</span><br>
|
||||
<span title="006E 0059 {LATIN SMALL LETTER N} {LATIN CAPITAL LETTER Y}"> <<< nY</span><br>
|
||||
</td>
|
||||
<td bgcolor="#FF6633">=</td>
|
||||
<td bgcolor="#FFFF33">1.2</td>
|
||||
|
||||
<td bgcolor="#98FB98">Windows XP</td>
|
||||
<td bgcolor="#FF6633">=</td>
|
||||
<td bgcolor="#FF6633">=</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
49
colprobe/uniqueFiles.pl
Executable file
49
colprobe/uniqueFiles.pl
Executable file
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
|
||||
my $file;
|
||||
my $secondfile;
|
||||
my %secondfilelist;
|
||||
my @same;
|
||||
my %list;
|
||||
my $samefile;
|
||||
|
||||
foreach $secondfile (@ARGV) {
|
||||
$secondfilelist{$secondfile} = "";
|
||||
}
|
||||
|
||||
foreach $file (sort keys(%secondfilelist)) {
|
||||
if(exists $secondfilelist{$file}) {
|
||||
delete $secondfilelist{$file};
|
||||
foreach $secondfile (sort(keys %secondfilelist)) {
|
||||
#print "diffing: $file and $secondfile\n";
|
||||
if (!`diff $file $secondfile`) {
|
||||
#print "$file and $secondfile are the same\n";
|
||||
push @same, $secondfile;
|
||||
}
|
||||
}
|
||||
# if ($#same > -1) {
|
||||
print "Adding @same to $file\n";
|
||||
$list{$file} = [@same] ;
|
||||
foreach $samefile (@same) {
|
||||
delete $secondfilelist{$samefile};
|
||||
}
|
||||
delete @same[0..$#same];
|
||||
# }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my $i = 0;
|
||||
my $j = 0;
|
||||
foreach $file (sort( keys %list)) {
|
||||
#print "$file -> "; #@{list{$file}}\n";
|
||||
print "<$file> <$j>\n";
|
||||
foreach $i ( 0 .. $#{ $list{$file} } ) {
|
||||
#print "$list{$file}[$i] ";
|
||||
print "<$list{$file}[$i]> <$j>\n ";
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
|
116
colprobe/uprinter.cpp
Normal file
116
colprobe/uprinter.cpp
Normal file
|
@ -0,0 +1,116 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2003, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
*******************************************************************************
|
||||
*
|
||||
* File uprinter.cpp
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 03/18/2003 weiv Creation.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#include "uprinter.h"
|
||||
|
||||
UPrinter::UPrinter(FILE *file, const char *locale, const char *encoding, UBool transliterateNonPrintable) {
|
||||
_on = TRUE;
|
||||
out = u_finit(file, locale, encoding);
|
||||
strcpy(_locale, locale);
|
||||
if(transliterateNonPrintable) {
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
UTransliterator *anyHex = utrans_open("[^\\u000d\\u000a\\u0009\\u0020-\\u007f] Any-Hex/Java", UTRANS_FORWARD, NULL, 0, NULL, &status);
|
||||
u_fsettransliterator(out, U_WRITE, anyHex, &status);
|
||||
}
|
||||
};
|
||||
|
||||
UPrinter::UPrinter(const char *name, const char *locale, const char *encoding, UTransliterator *trans, UBool transliterateNonPrintable) {
|
||||
_on = TRUE;
|
||||
out = u_fopen(name, "wb", locale, encoding);
|
||||
u_fputc(0xFEFF, out); // emit a BOM
|
||||
strcpy(_locale, locale);
|
||||
if(transliterateNonPrintable) {
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
if(trans == NULL) {
|
||||
UTransliterator *anyHex = utrans_open("[^\\u000d\\u000a\\u0009\\u0020-\\u007f] Any-Hex/Java", UTRANS_FORWARD, NULL, 0, NULL, &status);
|
||||
u_fsettransliterator(out, U_WRITE, anyHex, &status);
|
||||
} else {
|
||||
u_fsettransliterator(out, U_WRITE, trans, &status);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
UPrinter::~UPrinter() {
|
||||
u_fclose(out);
|
||||
}
|
||||
|
||||
void
|
||||
UPrinter::log(const UnicodeString &string, UBool nl) {
|
||||
if(_on) {
|
||||
log(((UnicodeString)string).getTerminatedBuffer(), nl);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
UPrinter::log(const UChar *string, UBool nl) {
|
||||
if(_on) {
|
||||
u_fprintf(out, "%S", string);
|
||||
if(nl) {
|
||||
u_fprintf(out, "\n");
|
||||
}
|
||||
u_fflush(out);
|
||||
}
|
||||
}
|
||||
/*
|
||||
void
|
||||
UPrinter::log(const char *string, UBool nl) {
|
||||
if(_on) {
|
||||
u_fprintf(out, "%s", string);
|
||||
if(nl) {
|
||||
u_fprintf(out, "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
void
|
||||
UPrinter::log(const Line *line, UBool nl) {
|
||||
if(_on) {
|
||||
log(line->name);
|
||||
if(line->expLen) {
|
||||
log("/");
|
||||
log(line->expansionString);
|
||||
}
|
||||
if(nl) {
|
||||
u_fprintf(out, "\n");
|
||||
u_fflush(out);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UPrinter::log(const char *fmt, ...)
|
||||
{
|
||||
UChar buffer[4000];
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
/* sprintf it just to make sure that the information is valid */
|
||||
u_vsprintf(buffer, _locale, fmt, ap);
|
||||
va_end(ap);
|
||||
if( _on ) {
|
||||
log(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
UPrinter::on(void) {
|
||||
_on = TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
UPrinter::off(void) {
|
||||
_on = FALSE;
|
||||
}
|
51
colprobe/uprinter.h
Normal file
51
colprobe/uprinter.h
Normal file
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2003, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
*******************************************************************************
|
||||
*
|
||||
* File uprinter.h
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 03/18/2003 weiv Creation.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef COLPROBE_UPRINTER_H
|
||||
#define COLPROBE_UPRINTER_H
|
||||
|
||||
#include "line.h"
|
||||
|
||||
#include "unicode/ustdio.h"
|
||||
#include "unicode/unistr.h"
|
||||
#include "unicode/ustring.h"
|
||||
|
||||
|
||||
class UPrinter {
|
||||
UFILE *out;
|
||||
UChar buffer[256];
|
||||
UBool _on;
|
||||
char _locale[256];
|
||||
public:
|
||||
UPrinter(FILE *file, const char *locale, const char *encoding, UBool transliterateNonPrintable=TRUE);
|
||||
UPrinter(const char *name, const char *locale, const char *encoding, UTransliterator *trans, UBool transliterateNonPrintable);
|
||||
~UPrinter();
|
||||
void log(const UnicodeString &string, UBool nl = FALSE);
|
||||
void log(const UChar *string, UBool nl = FALSE);
|
||||
//void log(const char *string, UBool nl = FALSE);
|
||||
void log(const Line *line, UBool nl = FALSE);
|
||||
void log(const char *fmt, ...);
|
||||
void off(void);
|
||||
void on(void);
|
||||
UBool isOn(void) {
|
||||
return _on;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // #ifndef COLPROBE_UPRINTER_H
|
30
colprobe/winGenCollData.pl
Executable file
30
colprobe/winGenCollData.pl
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
|
||||
#my $localeMinusA = `locale -a`;
|
||||
my $localeMinusA = `cat locale.txt`;
|
||||
|
||||
my @locales = split(/\r\n/, $localeMinusA);
|
||||
my $locale;
|
||||
my $command;
|
||||
|
||||
#my $commandPath = "~/src/icu/source/extra/colprobe/";
|
||||
my $commandPath = "c:/dev/0_icu/source/extra/colprobe/release/";
|
||||
|
||||
|
||||
my $platform = $ARGV[0];
|
||||
|
||||
mkdir $platform."logs";
|
||||
mkdir $platform;
|
||||
|
||||
foreach $locale (@locales) {
|
||||
$_ = $locale;
|
||||
chomp;
|
||||
if(!/^\#/) { # && /\_/) {
|
||||
$command = $commandPath."colprobe --platform $platform --ref $platform --output resb $locale >$platform"."logs/$locale"."_log.txt 2>&1";
|
||||
|
||||
print "$command\n";
|
||||
`$command`;
|
||||
}
|
||||
}
|
6
currency/.classpath
Normal file
6
currency/.classpath
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="output" path="out/bin"/>
|
||||
</classpath>
|
17
currency/.project
Normal file
17
currency/.project
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>currency-numeric</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
3
currency/.settings/org.eclipse.core.resources.prefs
Normal file
3
currency/.settings/org.eclipse.core.resources.prefs
Normal file
|
@ -0,0 +1,3 @@
|
|||
#Fri Jan 20 00:09:53 EST 2012
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
347
currency/.settings/org.eclipse.jdt.core.prefs
Normal file
347
currency/.settings/org.eclipse.jdt.core.prefs
Normal file
|
@ -0,0 +1,347 @@
|
|||
#Thu Jan 19 10:20:40 EST 2012
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deadCode=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
|
||||
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
|
||||
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
||||
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.nullReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
||||
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=120
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation=2
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
|
||||
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
||||
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
||||
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
||||
org.eclipse.jdt.core.formatter.indentation.size=4
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
|
||||
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.lineSplit=120
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=space
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=4
|
||||
org.eclipse.jdt.core.formatter.use_on_off_tags=false
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
10
currency/.settings/org.eclipse.jdt.ui.prefs
Normal file
10
currency/.settings/org.eclipse.jdt.ui.prefs
Normal file
File diff suppressed because one or more lines are too long
76
currency/build.xml
Normal file
76
currency/build.xml
Normal file
|
@ -0,0 +1,76 @@
|
|||
<!--
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2012-2013, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
-->
|
||||
<project name="currency-numeric" default="build" basedir=".">
|
||||
<property name="out.dir" value="${basedir}/out"/>
|
||||
<property name="src.dir" value="${basedir}/src"/>
|
||||
<property name="classes.dir" value="${out.dir}/bin"/>
|
||||
<property name="res.dir" value="${out.dir}/res"/>
|
||||
<property name="xml.dir" value="${out.dir}/xml"/>
|
||||
|
||||
<property name="base.url" value="http://www.currency-iso.org/content/dam/isocy/downloads/"/>
|
||||
<property name="current.xml" value="dl_iso_table_a1.xml"/>
|
||||
<property name="historic.xml" value="dl_iso_table_a3.xml"/>
|
||||
|
||||
<target name="build" depends="check, resource" description="Verify ICU's local data and generate ISO 4217 alpha-numeric code mapping data resource"/>
|
||||
|
||||
<target name="classes" description="Build the Java tool">
|
||||
<mkdir dir="${classes.dir}"/>
|
||||
<javac srcdir="${src.dir}" destdir="${classes.dir}"
|
||||
target="1.6" encoding="UTF-8" includeAntRuntime="false"/>
|
||||
</target>
|
||||
|
||||
<target name="_checkLocalXml">
|
||||
<condition property="isLocalXml">
|
||||
<and>
|
||||
<available file="${basedir}/${current.xml}"/>
|
||||
<available file="${basedir}/${historic.xml}"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="_localXml" depends="_checkLocalXml" if="isLocalXml">
|
||||
<echo message="Using local ISO 4217 XML data files"/>
|
||||
<copy file="${current.xml}" todir="${xml.dir}"/>
|
||||
<copy file="${historic.xml}" todir="${xml.dir}"/>
|
||||
</target>
|
||||
|
||||
<target name="_downloadXml" unless="isLocalXml">
|
||||
<echo message="Downloading ISO 4217 XML data files"/>
|
||||
<mkdir dir="${xml.dir}"/>
|
||||
<get src="${base.url}${current.xml}" dest="${xml.dir}"/>
|
||||
<get src="${base.url}${historic.xml}" dest="${xml.dir}"/>
|
||||
</target>
|
||||
|
||||
<target name="xmlData" depends="_localXml, _downloadXml" description="Prepare necessary ISO 4217 XML data files">
|
||||
</target>
|
||||
|
||||
<target name="check" depends="classes, xmlData" description="Verify if ICU's local mapping data is synchronized with the XML data">
|
||||
<java classname="com.ibm.icu.dev.tool.currency.Main"
|
||||
classpath="${classes.dir}"
|
||||
failonerror="true">
|
||||
<arg value="check"/>
|
||||
<arg value="${xml.dir}/${current.xml}"/>
|
||||
<arg value="${xml.dir}/${historic.xml}"/>
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<target name="resource" depends="classes" description="Build ISO 4217 alpha-numeric code mapping data resource">
|
||||
<mkdir dir="${res.dir}"/>
|
||||
<java classname="com.ibm.icu.dev.tool.currency.Main"
|
||||
classpath="${classes.dir}"
|
||||
failonerror="true">
|
||||
<arg value="build"/>
|
||||
<arg value="${res.dir}"/>
|
||||
</java>
|
||||
<echo message="ISO 4217 numeric code mapping data was successfully created in ${res.dir}"/>
|
||||
</target>
|
||||
|
||||
<target name="clean" description="Delete build outputs">
|
||||
<delete dir="${out.dir}"/>
|
||||
</target>
|
||||
|
||||
</project>
|
112
currency/readme.txt
Normal file
112
currency/readme.txt
Normal file
|
@ -0,0 +1,112 @@
|
|||
*******************************************************************************
|
||||
* Copyright (C) 2012-2013, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
|
||||
[Overview]
|
||||
|
||||
This directory contains a tool used for maintaining ICU's ISO 4217 currency
|
||||
code mapping data. ICU uses a resource generated by this tool for mapping
|
||||
ISO 4217 currency alpha codes to numeric codes.
|
||||
|
||||
|
||||
[Files]
|
||||
|
||||
package com.ibm.icu.dev.tool.currency
|
||||
|
||||
Main.java - The tool's entry point
|
||||
NumericCodeData.java - The mapping data used by ICU
|
||||
CurrencyDataParser.java - ISO 4217 XML data parser
|
||||
CurrencyDataEntry.java - ISO 4217 XML data entry
|
||||
|
||||
|
||||
[Details]
|
||||
|
||||
com.ibm.icu.dev.tool.NumericCodeData has String[][] CODE_MAP_DATA.
|
||||
This array represents mappings between ISO 4217 alpha codes and
|
||||
numeric codes. ICU's resource bundle currencyNumericCodes is generated
|
||||
from the table.
|
||||
|
||||
ISO 4217 maintenance agency - SIX Interbank Clearing distributes
|
||||
ISO 4217 code data in XML format. These files are found in
|
||||
http://www.currency-iso.org/iso_index/iso_tables.htm. There are two
|
||||
files that we're interested in.
|
||||
|
||||
- http://www.currency-iso.org/dl_iso_table_a1.xml
|
||||
- http://www.currency-iso.org/dl_iso_tables_a3.xml
|
||||
|
||||
Table A.1 contains current currencies and funds and Table A.3 contains
|
||||
historic denominations.
|
||||
|
||||
The tool supports 2 commands - check / resource.
|
||||
|
||||
1) check
|
||||
|
||||
This command compares the hardcoded mapping data in NumericCodeData.java
|
||||
with the ISO 4217 XML data files side by side and check differences.
|
||||
|
||||
2) resource
|
||||
|
||||
This command writes out the hardcoded mapping data in NumericCodeData.java
|
||||
in ICU resource bundle source format - currencyNumericCodes.txt.
|
||||
|
||||
|
||||
[Release Tasks]
|
||||
|
||||
For each ICU release, we should check if the mapping data is up to date.
|
||||
|
||||
Prerequisites: Java 6+, ant
|
||||
|
||||
First, run the ant target "check". This ant target download XML files from
|
||||
the SIX Interbank Clearing site and invoke the tool command "check".
|
||||
|
||||
When the target successfully finished, you should see the log like below:
|
||||
----------------------------------------------------------------------------
|
||||
C:\devtls\trunk\currency>ant check
|
||||
Buildfile: C:\devtls\trunk\currency\build.xml
|
||||
|
||||
classes:
|
||||
|
||||
_checkLocalXml:
|
||||
|
||||
_localXml:
|
||||
|
||||
_downloadXml:
|
||||
[echo] Downloading ISO 4217 XML data files
|
||||
[get] Getting: http://www.currency-iso.org/dl_iso_table_a1.xml
|
||||
[get] To: C:\devtls\trunk\currency\out\xml\dl_iso_table_a1.xml
|
||||
[get] Getting: http://www.currency-iso.org/dl_iso_tables_a3.xml
|
||||
[get] To: C:\devtls\trunk\currency\out\xml\dl_iso_tables_a3.xml
|
||||
|
||||
xmlData:
|
||||
|
||||
check:
|
||||
[java] [OK] ICU data is synchronized with the reference data
|
||||
|
||||
BUILD SUCCESSFUL
|
||||
Total time: 2 seconds
|
||||
----------------------------------------------------------------------------
|
||||
In this case, our data is synchronized with the latest XML data and you're done.
|
||||
|
||||
|
||||
If the data is out of sync, you should see message like below:
|
||||
----------------------------------------------------------------------------
|
||||
check:
|
||||
[java] Missing alpha code in ICU map [ZWR]
|
||||
[java] Codes not found in the reference data: ZZZ
|
||||
|
||||
BUILD FAILED
|
||||
C:\devtls\trunk\currency\build.xml:54: Java returned: 1
|
||||
----------------------------------------------------------------------------
|
||||
In this case, you have to update the hardcoded data in NumericCodeData.
|
||||
You can either edit the table in NumericCodeData manually, or run the tool
|
||||
command "print" and copy the output and paste it to the table.
|
||||
|
||||
Once you make sure "ant check" returns no errors, run "ant resource". This
|
||||
target generate out/res/currencyNumericCodes.txt. The file should go to
|
||||
<icu4c>/source/data/misc directory.
|
||||
|
||||
Note: The default ant target does both operation. Although it creates the
|
||||
ICU resource file, you do not need to replace the one in ICU4C package with
|
||||
the newly generated one if "check" successfully finished.
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2012, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.tool.currency;
|
||||
|
||||
/**
|
||||
* Currency data entry corresponding to the XML data distributed by SIX Interbank Clearing
|
||||
* (The ISO 4217 maintenance agency).
|
||||
*/
|
||||
public class CurrencyDataEntry {
|
||||
private String entity;
|
||||
private String currency;
|
||||
private String alphabeticCode;
|
||||
private Integer numericCode;
|
||||
private Integer minorUnit;
|
||||
private String withdrawalDate;
|
||||
private String remark;
|
||||
private boolean historic;
|
||||
|
||||
private CurrencyDataEntry(String entity, String currency, String alphabeticCode, Integer numericCode, Integer minorUnit, String withdrawalDate, String remark, boolean historic) {
|
||||
this.entity = entity;
|
||||
this.currency = currency;
|
||||
this.alphabeticCode = alphabeticCode;
|
||||
this.numericCode = numericCode;
|
||||
this.minorUnit = minorUnit;
|
||||
this.withdrawalDate = withdrawalDate;
|
||||
this.remark = remark;
|
||||
this.historic = historic;
|
||||
}
|
||||
|
||||
public String entity() {
|
||||
return entity;
|
||||
}
|
||||
|
||||
public String currency() {
|
||||
return currency;
|
||||
}
|
||||
|
||||
public String alphabeticCode() {
|
||||
return alphabeticCode;
|
||||
}
|
||||
|
||||
public Integer numericCode() {
|
||||
return numericCode;
|
||||
}
|
||||
|
||||
public Integer minorUnit() {
|
||||
return minorUnit;
|
||||
}
|
||||
|
||||
public String withdrawalDate() {
|
||||
return withdrawalDate;
|
||||
}
|
||||
|
||||
public String remark() {
|
||||
return remark;
|
||||
}
|
||||
|
||||
public boolean historic() {
|
||||
return historic;
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
private String entity_;
|
||||
private String currency_;
|
||||
private String alphabeticCode_;
|
||||
private Integer numericCode_;
|
||||
private Integer minorUnit_;
|
||||
|
||||
private String withdrawalDate_;
|
||||
private String remark_;
|
||||
private boolean historic_ = false;
|
||||
|
||||
public Builder setEntity(String entity) {
|
||||
entity_ = entity;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCurrency(String currency) {
|
||||
currency_ = currency;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAlphabeticCode(String alphabeticCode) {
|
||||
alphabeticCode_ = alphabeticCode;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNumericCode(String numericCode) {
|
||||
try {
|
||||
numericCode_ = Integer.parseInt(numericCode);
|
||||
} catch (NumberFormatException e) {
|
||||
// ignore
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMinorUnit(String minorUnit) {
|
||||
try {
|
||||
minorUnit_ = Integer.parseInt(minorUnit);
|
||||
} catch (NumberFormatException e) {
|
||||
// ignore
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWithdrawalDate(String withdrawalDate) {
|
||||
withdrawalDate_ = withdrawalDate;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRemark(String remark) {
|
||||
remark_ = remark;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHistoric() {
|
||||
historic_ = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CurrencyDataEntry build() {
|
||||
return new CurrencyDataEntry(entity_, currency_, alphabeticCode_, numericCode_, minorUnit_, withdrawalDate_, remark_, historic_);
|
||||
}
|
||||
|
||||
public Builder reset() {
|
||||
entity_ = null;
|
||||
currency_ = null;
|
||||
alphabeticCode_ = null;
|
||||
numericCode_ = null;
|
||||
minorUnit_ = null;
|
||||
withdrawalDate_ = null;
|
||||
remark_ = null;
|
||||
historic_ = false;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,130 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2012, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.tool.currency;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParser;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
|
||||
import org.xml.sax.Attributes;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.helpers.DefaultHandler;
|
||||
|
||||
import com.ibm.icu.dev.tool.currency.CurrencyDataEntry.Builder;
|
||||
|
||||
/**
|
||||
* Parser for ISO 4217 data file in XML format distributed by SIX Interbank Clearing
|
||||
* (The ISO 4217 maintenance agency).
|
||||
*/
|
||||
public class CurrencyDataParser {
|
||||
|
||||
public static Collection<CurrencyDataEntry> parse(File dataFile, boolean historic) throws IOException {
|
||||
Collection<CurrencyDataEntry> result = null;
|
||||
try {
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
SAXParser parser;
|
||||
parser = factory.newSAXParser();
|
||||
Handler handler = new Handler(historic);
|
||||
parser.parse(new FileInputStream(dataFile), handler);
|
||||
result = handler.getParsedISOCurrencies();
|
||||
} catch (SAXException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (ParserConfigurationException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static class Handler extends DefaultHandler {
|
||||
private enum ElementType {
|
||||
ENTITY,
|
||||
CURRENCY,
|
||||
ALPHABETIC_CODE,
|
||||
NUMERIC_CODE,
|
||||
MINOR_UNIT,
|
||||
WITHDRAWAL_DATE,
|
||||
REMARK,
|
||||
OTHER
|
||||
};
|
||||
|
||||
Collection<CurrencyDataEntry> isoCurrencies = new LinkedList<CurrencyDataEntry>();
|
||||
ElementType elem = ElementType.OTHER;
|
||||
Builder currBld = new Builder();
|
||||
|
||||
private final boolean historic;
|
||||
private final String currElemName;
|
||||
|
||||
public Handler(boolean historic) {
|
||||
this.historic = historic;
|
||||
currElemName = historic ? "ISO_CURRENCY_HISTORIC" : "ISO_CURRENCY";
|
||||
}
|
||||
|
||||
public Collection<CurrencyDataEntry> getParsedISOCurrencies() {
|
||||
return isoCurrencies;
|
||||
}
|
||||
|
||||
public void startElement(String uri, String localName, String qName, Attributes attributes) {
|
||||
if (qName.equals(currElemName)) {
|
||||
currBld.reset();
|
||||
elem = ElementType.OTHER;
|
||||
} else {
|
||||
try {
|
||||
elem = ElementType.valueOf(qName);
|
||||
} catch (IllegalArgumentException e) {
|
||||
elem = ElementType.OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void endElement(String uri, String localName, String qName) {
|
||||
// emit a currency data
|
||||
if (qName.equals(currElemName)) {
|
||||
if (historic) {
|
||||
currBld.setHistoric();
|
||||
}
|
||||
isoCurrencies.add(currBld.build());
|
||||
currBld.reset();
|
||||
}
|
||||
elem = ElementType.OTHER;
|
||||
}
|
||||
|
||||
public void characters(char[] ch, int start, int length) {
|
||||
switch (elem) {
|
||||
case ENTITY:
|
||||
currBld.setEntity(new String(ch, start, length).trim());
|
||||
break;
|
||||
case CURRENCY:
|
||||
currBld.setCurrency(new String(ch, start, length).trim());
|
||||
break;
|
||||
case ALPHABETIC_CODE:
|
||||
currBld.setAlphabeticCode(new String(ch, start, length).trim());
|
||||
break;
|
||||
case NUMERIC_CODE:
|
||||
currBld.setNumericCode(new String(ch, start, length).trim());
|
||||
break;
|
||||
case MINOR_UNIT:
|
||||
currBld.setMinorUnit(new String(ch, start, length).trim());
|
||||
break;
|
||||
case WITHDRAWAL_DATE:
|
||||
currBld.setWithdrawalDate(new String(ch, start, length).trim());
|
||||
break;
|
||||
case REMARK:
|
||||
currBld.setRemark(new String(ch, start, length).trim());
|
||||
break;
|
||||
default:
|
||||
// NOOP
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
181
currency/src/com/ibm/icu/dev/tool/currency/Main.java
Normal file
181
currency/src/com/ibm/icu/dev/tool/currency/Main.java
Normal file
|
@ -0,0 +1,181 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2012, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.tool.currency;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.util.Collection;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.SortedMap;
|
||||
import java.util.TreeSet;
|
||||
|
||||
/**
|
||||
* The tool used for ISO 4217 alpha3-numeric3 code mapping data maintenance.
|
||||
* This code is used for synchronizing ICU alpha3-numeric3 mapping data with
|
||||
* the data distributed by SIX Interbank Clearing.
|
||||
*/
|
||||
public class Main {
|
||||
private enum Command {
|
||||
CHECK,
|
||||
PRINT,
|
||||
BUILD,
|
||||
};
|
||||
|
||||
private static final String RESNAME = "currencyNumericCodes";
|
||||
|
||||
public static void main(String... args) {
|
||||
if (args.length == 0) {
|
||||
printUsage();
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
Command cmd = null;
|
||||
|
||||
// 1st argument must be command
|
||||
if (args[0].equalsIgnoreCase(Command.CHECK.name())) {
|
||||
if (args.length == 3) {
|
||||
cmd = Command.CHECK;
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase(Command.PRINT.name())) {
|
||||
if (args.length == 3) {
|
||||
cmd = Command.PRINT;
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase(Command.BUILD.name())) {
|
||||
if (args.length == 2) {
|
||||
cmd = Command.BUILD;
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd == null) {
|
||||
printUsage();
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
int status = 0;
|
||||
|
||||
if (cmd == Command.BUILD) {
|
||||
File outfile = new File(args[1], RESNAME + ".txt");
|
||||
try {
|
||||
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(outfile), "UTF-8");
|
||||
NumericCodeData.getDefaultInstance().writeResource(osw, RESNAME);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
status = 1;
|
||||
}
|
||||
} else {
|
||||
// 2nd argument is current data xml file
|
||||
// 3rd argument is historic data xml file
|
||||
File currentXml = new File(args[1]);
|
||||
File historicXml = new File(args[2]);
|
||||
Collection<CurrencyDataEntry> currentDataEntries = null;
|
||||
Collection<CurrencyDataEntry> historicDataEntries = null;
|
||||
|
||||
try {
|
||||
currentDataEntries = CurrencyDataParser.parse(currentXml, false);
|
||||
historicDataEntries = CurrencyDataParser.parse(historicXml, true);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
status = 1;
|
||||
}
|
||||
|
||||
if (status == 0) {
|
||||
NumericCodeData numCodeData = NumericCodeData.createInstance(currentDataEntries);
|
||||
numCodeData.merge(NumericCodeData.createInstance(historicDataEntries));
|
||||
|
||||
if (cmd == Command.PRINT) {
|
||||
numCodeData.printArray();
|
||||
} else {
|
||||
assert(cmd == Command.CHECK);
|
||||
boolean isOK = checkData(numCodeData);
|
||||
if (isOK) {
|
||||
System.out.println("[OK] ICU data is synchronized with the reference data");
|
||||
} else {
|
||||
status = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.exit(status);
|
||||
}
|
||||
|
||||
private static void printUsage() {
|
||||
System.out.println("[Usage]");
|
||||
System.out.println("");
|
||||
System.out.println(" 1) java com.ibm.icu.dev.tool.currency.Main check <currentXML> <historicXML>");
|
||||
System.out.println("");
|
||||
System.out.println(" Verifies the ICU data (table in NumericCodeData) with the reference data.");
|
||||
System.out.println("");
|
||||
System.out.println(" Argument(s):");
|
||||
System.out.println(" <currentXML> - Current currencies & funds data (Table A.1) in XML format");
|
||||
System.out.println(" <historicXML> - Historic denominations data (Table A.3) in XML format");
|
||||
System.out.println("");
|
||||
System.out.println(" 2) java com.ibm.icu.dev.tool.currency.Main print <currentXML> <historicXML>");
|
||||
System.out.println("");
|
||||
System.out.println(" Prints out the alpha-numeric code mapping imported from the reference data.");
|
||||
System.out.println("");
|
||||
System.out.println(" Argument(s):");
|
||||
System.out.println(" <currentXML> - Current currencies & funds data (Table A.1) in XML format");
|
||||
System.out.println(" <historicXML> - Historic denominations data (Table A.3) in XML format");
|
||||
System.out.println("");
|
||||
System.out.println(" 3) java com.ibm.icu.dev.tool.currency.Main build <outtxt>");
|
||||
System.out.println("");
|
||||
System.out.println(" Writes out the alpha-numeric in NumericCodeData into ICU resource bundle source");
|
||||
System.out.println(" (.txt) format.");
|
||||
System.out.println("");
|
||||
System.out.println(" Argument(s):");
|
||||
System.out.println(" <outdir> - Output directory of the ICU resource bundle source (.txt) format");
|
||||
System.out.println("");
|
||||
System.out.println("[Note]");
|
||||
System.out.println(" Reference XML files are distributed by the ISO 4217 maintenance agency at");
|
||||
System.out.println(" [http://www.currency-iso.org/iso_index/iso_tables.htm].");
|
||||
}
|
||||
|
||||
private static boolean checkData(NumericCodeData refData) {
|
||||
boolean isOK = true;
|
||||
|
||||
SortedMap<String, String> icuMap = NumericCodeData.getDefaultInstance().getAlphaNumericCodeMap();
|
||||
SortedMap<String, String> refMap = refData.getAlphaNumericCodeMap();
|
||||
|
||||
for (Entry<String, String> refEntry : refMap.entrySet()) {
|
||||
String refAlpha = refEntry.getKey();
|
||||
String refNumeric = refEntry.getValue();
|
||||
|
||||
String icuNumeric = icuMap.get(refAlpha);
|
||||
if (icuNumeric == null) {
|
||||
System.out.println("Missing alpha code in ICU map [" + refAlpha + "]");
|
||||
isOK = false;
|
||||
} else if (!icuNumeric.equals(refNumeric)) {
|
||||
System.out.println("Numeric code mismatch [" + refAlpha + "] ICU=" + icuNumeric + " - Reference=" + refNumeric);
|
||||
isOK = false;
|
||||
}
|
||||
}
|
||||
|
||||
Set<String> icuKeySet = icuMap.keySet();
|
||||
Set<String> refKeySet = refMap.keySet();
|
||||
if (!refKeySet.containsAll(icuKeySet)) {
|
||||
isOK = false;
|
||||
Set<String> tmp = new TreeSet<String>(icuKeySet);
|
||||
tmp.removeAll(refKeySet);
|
||||
|
||||
StringBuilder buf = new StringBuilder();
|
||||
for (String alpha : tmp) {
|
||||
if (buf.length() != 0) {
|
||||
buf.append(", ");
|
||||
}
|
||||
buf.append(alpha);
|
||||
}
|
||||
|
||||
System.out.println("Codes not found in the reference data: " + buf);
|
||||
}
|
||||
|
||||
return isOK;
|
||||
}
|
||||
}
|
375
currency/src/com/ibm/icu/dev/tool/currency/NumericCodeData.java
Normal file
375
currency/src/com/ibm/icu/dev/tool/currency/NumericCodeData.java
Normal file
|
@ -0,0 +1,375 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2012-2013, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.tool.currency;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.SortedMap;
|
||||
import java.util.TimeZone;
|
||||
import java.util.TreeMap;
|
||||
|
||||
/**
|
||||
* Container of ISO 4217 alpha3 - numeric3 code mapping data
|
||||
*/
|
||||
public class NumericCodeData {
|
||||
private SortedMap<String, String> _codeMap;
|
||||
|
||||
private NumericCodeData(SortedMap<String, String> codeMap) {
|
||||
_codeMap = codeMap;
|
||||
}
|
||||
|
||||
public static NumericCodeData getDefaultInstance() {
|
||||
SortedMap<String, String> map = new TreeMap<String, String>();
|
||||
for (String[] dataEntry : CODE_MAP_DATA) {
|
||||
map.put(dataEntry[0], dataEntry[1]);
|
||||
}
|
||||
return new NumericCodeData(map);
|
||||
}
|
||||
|
||||
public static NumericCodeData createInstance(Collection<CurrencyDataEntry> dataEntries) {
|
||||
SortedMap<String, String> map = new TreeMap<String, String>();
|
||||
for (CurrencyDataEntry dataEntry : dataEntries) {
|
||||
String alphaCode = dataEntry.alphabeticCode();
|
||||
Integer numCode = dataEntry.numericCode();
|
||||
if (alphaCode == null || numCode == null) {
|
||||
continue;
|
||||
}
|
||||
map.put(alphaCode, String.format("%03d", numCode));
|
||||
}
|
||||
return new NumericCodeData(map);
|
||||
}
|
||||
|
||||
public NumericCodeData merge(NumericCodeData anotherData) {
|
||||
SortedMap<String, String> codeMap = anotherData.getAlphaNumericCodeMap();
|
||||
for (Entry<String, String> codeMapEntry : codeMap.entrySet()) {
|
||||
String alphaCode = codeMapEntry.getKey();
|
||||
String numCode = codeMapEntry.getValue();
|
||||
if (!_codeMap.containsKey(alphaCode)) {
|
||||
_codeMap.put(alphaCode, numCode);
|
||||
} else {
|
||||
String existingValue = _codeMap.get(alphaCode);
|
||||
if (!existingValue.equals(numCode)) {
|
||||
throw new RuntimeException("Duplicated definition for " + alphaCode + ": value=" + existingValue + "/another value=" + numCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public SortedMap<String, String> getAlphaNumericCodeMap() {
|
||||
return Collections.unmodifiableSortedMap(_codeMap);
|
||||
}
|
||||
|
||||
public void printArray() {
|
||||
for (Entry<String, String> entry : getAlphaNumericCodeMap().entrySet()) {
|
||||
System.out.println(" {\"" + entry.getKey() + "\", \"" + entry.getValue() + "\"},");
|
||||
}
|
||||
}
|
||||
|
||||
public void writeResource(OutputStreamWriter osw, String resName) throws IOException {
|
||||
GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
|
||||
|
||||
PrintWriter pw = new PrintWriter(osw, true);
|
||||
|
||||
// Header
|
||||
pw.println("//---------------------------------------------------------");
|
||||
pw.println(String.format("// Copyright (C) %1$tY, International Business Machines", cal));
|
||||
pw.println("// Corporation and others. All Rights Reserved.");
|
||||
pw.println("//---------------------------------------------------------");
|
||||
pw.println("// Build tool: com.ibm.icu.dev.tool.currency.NumericCodeData");
|
||||
pw.println(String.format("// Build date: %1$tFT%1$tTZ", cal));
|
||||
pw.println("//---------------------------------------------------------");
|
||||
pw.println("// >> !!! >> THIS IS A MACHINE-GENERATED FILE << !!! <<");
|
||||
pw.println("// >> !!! >>> DO NOT EDIT <<< !!! <<");
|
||||
pw.println("//---------------------------------------------------------");
|
||||
pw.println("");
|
||||
|
||||
// Resource root
|
||||
pw.println(resName + ":table(nofallback){");
|
||||
|
||||
// Map data
|
||||
pw.println(" codeMap{");
|
||||
|
||||
for (Entry<String, String> mapEntry : _codeMap.entrySet()) {
|
||||
String alphaCode = mapEntry.getKey();
|
||||
int numericCodeVal = Integer.parseInt(mapEntry.getValue());
|
||||
pw.println(String.format(" %1$s:int{%2$d}", alphaCode, numericCodeVal));
|
||||
}
|
||||
|
||||
pw.println(" }");
|
||||
|
||||
pw.println("}");
|
||||
}
|
||||
|
||||
private static final String[][] CODE_MAP_DATA = {
|
||||
{"ADP", "020"},
|
||||
{"AED", "784"},
|
||||
{"AFA", "004"},
|
||||
{"AFN", "971"},
|
||||
{"ALL", "008"},
|
||||
{"AMD", "051"},
|
||||
{"ANG", "532"},
|
||||
{"AOA", "973"},
|
||||
{"AON", "024"},
|
||||
{"AOR", "982"},
|
||||
{"ARA", "032"},
|
||||
{"ARP", "032"},
|
||||
{"ARS", "032"},
|
||||
{"ATS", "040"},
|
||||
{"AUD", "036"},
|
||||
{"AWG", "533"},
|
||||
{"AYM", "945"},
|
||||
{"AZM", "031"},
|
||||
{"AZN", "944"},
|
||||
{"BAD", "070"},
|
||||
{"BAM", "977"},
|
||||
{"BBD", "052"},
|
||||
{"BDT", "050"},
|
||||
{"BEC", "993"},
|
||||
{"BEF", "056"},
|
||||
{"BEL", "992"},
|
||||
{"BGL", "100"},
|
||||
{"BGN", "975"},
|
||||
{"BHD", "048"},
|
||||
{"BIF", "108"},
|
||||
{"BMD", "060"},
|
||||
{"BND", "096"},
|
||||
{"BOB", "068"},
|
||||
{"BOV", "984"},
|
||||
{"BRC", "076"},
|
||||
{"BRE", "076"},
|
||||
{"BRL", "986"},
|
||||
{"BRN", "076"},
|
||||
{"BRR", "987"},
|
||||
{"BSD", "044"},
|
||||
{"BTN", "064"},
|
||||
{"BWP", "072"},
|
||||
{"BYB", "112"},
|
||||
{"BYR", "974"},
|
||||
{"BZD", "084"},
|
||||
{"CAD", "124"},
|
||||
{"CDF", "976"},
|
||||
{"CHC", "948"},
|
||||
{"CHE", "947"},
|
||||
{"CHF", "756"},
|
||||
{"CHW", "948"},
|
||||
{"CLF", "990"},
|
||||
{"CLP", "152"},
|
||||
{"CNY", "156"},
|
||||
{"COP", "170"},
|
||||
{"COU", "970"},
|
||||
{"CRC", "188"},
|
||||
{"CSD", "891"},
|
||||
{"CSK", "200"},
|
||||
{"CUC", "931"},
|
||||
{"CUP", "192"},
|
||||
{"CVE", "132"},
|
||||
{"CYP", "196"},
|
||||
{"CZK", "203"},
|
||||
{"DDM", "278"},
|
||||
{"DEM", "276"},
|
||||
{"DJF", "262"},
|
||||
{"DKK", "208"},
|
||||
{"DOP", "214"},
|
||||
{"DZD", "012"},
|
||||
{"ECS", "218"},
|
||||
{"ECV", "983"},
|
||||
{"EEK", "233"},
|
||||
{"EGP", "818"},
|
||||
{"ERN", "232"},
|
||||
{"ESA", "996"},
|
||||
{"ESB", "995"},
|
||||
{"ESP", "724"},
|
||||
{"ETB", "230"},
|
||||
{"EUR", "978"},
|
||||
{"FIM", "246"},
|
||||
{"FJD", "242"},
|
||||
{"FKP", "238"},
|
||||
{"FRF", "250"},
|
||||
{"GBP", "826"},
|
||||
{"GEK", "268"},
|
||||
{"GEL", "981"},
|
||||
{"GHC", "288"},
|
||||
{"GHP", "939"},
|
||||
{"GHS", "936"},
|
||||
{"GIP", "292"},
|
||||
{"GMD", "270"},
|
||||
{"GNF", "324"},
|
||||
{"GQE", "226"},
|
||||
{"GRD", "300"},
|
||||
{"GTQ", "320"},
|
||||
{"GWP", "624"},
|
||||
{"GYD", "328"},
|
||||
{"HKD", "344"},
|
||||
{"HNL", "340"},
|
||||
{"HRD", "191"},
|
||||
{"HRK", "191"},
|
||||
{"HTG", "332"},
|
||||
{"HUF", "348"},
|
||||
{"IDR", "360"},
|
||||
{"IEP", "372"},
|
||||
{"ILS", "376"},
|
||||
{"INR", "356"},
|
||||
{"IQD", "368"},
|
||||
{"IRR", "364"},
|
||||
{"ISK", "352"},
|
||||
{"ITL", "380"},
|
||||
{"JMD", "388"},
|
||||
{"JOD", "400"},
|
||||
{"JPY", "392"},
|
||||
{"KES", "404"},
|
||||
{"KGS", "417"},
|
||||
{"KHR", "116"},
|
||||
{"KMF", "174"},
|
||||
{"KPW", "408"},
|
||||
{"KRW", "410"},
|
||||
{"KWD", "414"},
|
||||
{"KYD", "136"},
|
||||
{"KZT", "398"},
|
||||
{"LAK", "418"},
|
||||
{"LBP", "422"},
|
||||
{"LKR", "144"},
|
||||
{"LRD", "430"},
|
||||
{"LSL", "426"},
|
||||
{"LTL", "440"},
|
||||
{"LTT", "440"},
|
||||
{"LUC", "989"},
|
||||
{"LUF", "442"},
|
||||
{"LUL", "988"},
|
||||
{"LVL", "428"},
|
||||
{"LVR", "428"},
|
||||
{"LYD", "434"},
|
||||
{"MAD", "504"},
|
||||
{"MDL", "498"},
|
||||
{"MGA", "969"},
|
||||
{"MGF", "450"},
|
||||
{"MKD", "807"},
|
||||
{"MLF", "466"},
|
||||
{"MMK", "104"},
|
||||
{"MNT", "496"},
|
||||
{"MOP", "446"},
|
||||
{"MRO", "478"},
|
||||
{"MTL", "470"},
|
||||
{"MUR", "480"},
|
||||
{"MVR", "462"},
|
||||
{"MWK", "454"},
|
||||
{"MXN", "484"},
|
||||
{"MXV", "979"},
|
||||
{"MYR", "458"},
|
||||
{"MZM", "508"},
|
||||
{"MZN", "943"},
|
||||
{"NAD", "516"},
|
||||
{"NGN", "566"},
|
||||
{"NIO", "558"},
|
||||
{"NLG", "528"},
|
||||
{"NOK", "578"},
|
||||
{"NPR", "524"},
|
||||
{"NZD", "554"},
|
||||
{"OMR", "512"},
|
||||
{"PAB", "590"},
|
||||
{"PEI", "604"},
|
||||
{"PEN", "604"},
|
||||
{"PES", "604"},
|
||||
{"PGK", "598"},
|
||||
{"PHP", "608"},
|
||||
{"PKR", "586"},
|
||||
{"PLN", "985"},
|
||||
{"PLZ", "616"},
|
||||
{"PTE", "620"},
|
||||
{"PYG", "600"},
|
||||
{"QAR", "634"},
|
||||
{"ROL", "642"},
|
||||
{"RON", "946"},
|
||||
{"RSD", "941"},
|
||||
{"RUB", "643"},
|
||||
{"RUR", "810"},
|
||||
{"RWF", "646"},
|
||||
{"SAR", "682"},
|
||||
{"SBD", "090"},
|
||||
{"SCR", "690"},
|
||||
{"SDD", "736"},
|
||||
{"SDG", "938"},
|
||||
{"SEK", "752"},
|
||||
{"SGD", "702"},
|
||||
{"SHP", "654"},
|
||||
{"SIT", "705"},
|
||||
{"SKK", "703"},
|
||||
{"SLL", "694"},
|
||||
{"SOS", "706"},
|
||||
{"SRD", "968"},
|
||||
{"SRG", "740"},
|
||||
{"SSP", "728"},
|
||||
{"STD", "678"},
|
||||
{"SVC", "222"},
|
||||
{"SYP", "760"},
|
||||
{"SZL", "748"},
|
||||
{"THB", "764"},
|
||||
{"TJR", "762"},
|
||||
{"TJS", "972"},
|
||||
{"TMM", "795"},
|
||||
{"TMT", "934"},
|
||||
{"TND", "788"},
|
||||
{"TOP", "776"},
|
||||
{"TPE", "626"},
|
||||
{"TRL", "792"},
|
||||
{"TRY", "949"},
|
||||
{"TTD", "780"},
|
||||
{"TWD", "901"},
|
||||
{"TZS", "834"},
|
||||
{"UAH", "980"},
|
||||
{"UAK", "804"},
|
||||
{"UGX", "800"},
|
||||
{"USD", "840"},
|
||||
{"USN", "997"},
|
||||
{"USS", "998"},
|
||||
{"UYI", "940"},
|
||||
{"UYU", "858"},
|
||||
{"UZS", "860"},
|
||||
{"VEB", "862"},
|
||||
{"VEF", "937"},
|
||||
{"VND", "704"},
|
||||
{"VUV", "548"},
|
||||
{"WST", "882"},
|
||||
{"XAF", "950"},
|
||||
{"XAG", "961"},
|
||||
{"XAU", "959"},
|
||||
{"XBA", "955"},
|
||||
{"XBB", "956"},
|
||||
{"XBC", "957"},
|
||||
{"XBD", "958"},
|
||||
{"XCD", "951"},
|
||||
{"XDR", "960"},
|
||||
{"XEU", "954"},
|
||||
{"XOF", "952"},
|
||||
{"XPD", "964"},
|
||||
{"XPF", "953"},
|
||||
{"XPT", "962"},
|
||||
{"XSU", "994"},
|
||||
{"XTS", "963"},
|
||||
{"XUA", "965"},
|
||||
{"XXX", "999"},
|
||||
{"YDD", "720"},
|
||||
{"YER", "886"},
|
||||
{"YUM", "891"},
|
||||
{"YUN", "890"},
|
||||
{"ZAL", "991"},
|
||||
{"ZAR", "710"},
|
||||
{"ZMK", "894"},
|
||||
{"ZMW", "967"},
|
||||
{"ZRN", "180"},
|
||||
{"ZRZ", "180"},
|
||||
{"ZWD", "716"},
|
||||
{"ZWL", "932"},
|
||||
{"ZWN", "942"},
|
||||
{"ZWR", "935"},
|
||||
};
|
||||
}
|
3
multi/Makefile
Normal file
3
multi/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
|
||||
clean:
|
||||
-rm -rf ./tmp
|
102
multi/c/Makefile
Normal file
102
multi/c/Makefile
Normal file
|
@ -0,0 +1,102 @@
|
|||
# Copyright (c) 2009-2010 IBM Corp. and Others. All Rights Reserved
|
||||
# multicu/c makefile
|
||||
|
||||
all:
|
||||
@echo To build all ICUs: $(MAKE) all-icus
|
||||
@echo "Using the -k option may be a good idea if some are not building properly."
|
||||
@echo ICUVERS: $(ICUVERS)
|
||||
|
||||
info:
|
||||
|
||||
#ICUCONF=sh ./configure
|
||||
ICUCONF=$(MULTICU_ROOT)/c/superconf.sh
|
||||
DOT=$(shell pwd)
|
||||
MULTICU_ROOT=$(DOT)/..
|
||||
include $(MULTICU_ROOT)/common/Makefile-multi.inc
|
||||
-include Makefile.local
|
||||
|
||||
ICUVERS:=$(shell cd $(ICUS); ls icu4c*.tgz | cut -d- -f2 | sort | uniq | fgrep -v -f $(MULTICU_ROOT)/c/old-icu.txt)
|
||||
ICU4JVERS:=$(shell cd $(ICUS); ls icu4j*.jar | cut -d- -f2 | cut -d. -f1 | sort | uniq | fgrep -v -f $(MULTICU_ROOT)/j/old-icu4j.txt)
|
||||
|
||||
BLD=$(C_BLD)
|
||||
INS=$(C_INS)
|
||||
SRC=$(C_SRC)
|
||||
|
||||
ALLICUS=$(ICUVERS:%=$(BLD)/%/$(S_BLD)) $(ICUVERS:%=$(BLD)/r%/$(S_BLD))
|
||||
RICUS=$(ICUVERS:%=$(INS)/r%/$(S_INS))
|
||||
IICUS=$(ICUVERS:%=$(INS)/%/$(S_INS)) $(RICUS)
|
||||
|
||||
|
||||
APRECIOUS=$(ICUVERS:%=$(BLD)/%/$(S_SRC)) $(ICUVERS:%=$(BLD)/r%/$(S_SRC)) $(ICUVERS:%=$(BLD)/%/$(S_BLD)) $(ICUVERS:%=$(INS)/%/$(S_INS)) $(ICUVERS:%=$(BLD)/r%/$(S_BLD)) $(ICUVERS:%=$(INS)/r%/$(S_INS))
|
||||
|
||||
.PRECIOUS: $(APRECIOUS)
|
||||
|
||||
tehprecious:
|
||||
echo $(APRECIOUS)
|
||||
|
||||
$(M_TMP) $(BLD) $(INS):
|
||||
mkdir $(M_TMP)
|
||||
mkdir $(BLD) $(SRC) $(INS)
|
||||
|
||||
$(INS)/%/$(S_INS): $(BLD)/%/$(S_BLD)
|
||||
@if [ -f $(BLD)/$*/build.err ]; then echo '###' Error for $* stored in $(BLD)/$*/build.err - remove if you want me to retry; false; fi
|
||||
( make $(MAKE_OPTS) -C $(BLD)/$*/icu/source 2>&1 all install | tee $(BLD)/$*/build.log ) || ( mv $(BLD)/$*/build.log $(BLD)/$*/build.err ; false )
|
||||
touch -c $@
|
||||
|
||||
$(INS)/r%/$(S_INS): $(BLD)/r%/$(S_BLD)
|
||||
@if [ -f $(BLD)/r$*/build.err ]; then echo '###' Error for $* stored in $(BLD)/r$*/build.err - remove if you want me to retry; false; fi
|
||||
( make $(MAKE_OPTS) -C $(BLD)/r$*/icu/source 2>&1 all install | tee $(BLD)/r$*/build.log ) || ( mv $(BLD)/r$*/build.log $(BLD)/r$*/build.err ; false )
|
||||
touch -c $@
|
||||
|
||||
$(BLD)/r%/$(S_SRC): $(ICUS)/icu4c-%-src.tgz
|
||||
-mv $(BLD)/r$* $(BLD)/r$*.old
|
||||
-( rm -rf ./$(BLD)/r$*.old& )
|
||||
mkdir -p $(BLD)/r$*
|
||||
( cd $(BLD)/r$* ; gunzip -d < $^ | tar xfp - )
|
||||
([ -f $(DOT)/patch/$* ] && patch -d $(BLD)/r$* -p1 < $(DOT)/patch/$*) || true
|
||||
touch -c $@
|
||||
|
||||
$(BLD)/%/$(S_SRC): $(ICUS)/icu4c-%-src.tgz
|
||||
-mv $(BLD)/$* $(BLD)/$*.old
|
||||
-( rm -rf ./$(BLD)/$*.old& )
|
||||
mkdir -p $(BLD)/$*
|
||||
( cd $(BLD)/$* ; gunzip -d < $^ | tar xfp - )
|
||||
([ -f $(DOT)/patch/$* ] && patch -d $(BLD)/$* -p1 < $(DOT)/patch/$*) || true
|
||||
touch -c $@
|
||||
|
||||
|
||||
$(BLD)/r%/$(S_BLD): $(BLD)/r%/$(S_SRC)
|
||||
-mkdir -p $(INS)
|
||||
-chmod a+rx $(BLD)/r$*/icu/source/configure $(BLD)/r$*/icu/source/runConfigureICU
|
||||
( cd $(BLD)/r$*/icu/source ; `$(ICUCONF) "$(BLD)/r$*/icu/source" "$*"` --enable-renaming --enable-shared --disable-static --enable-release --disable-debug --prefix=$(INS)/r$* )
|
||||
touch -c $@
|
||||
|
||||
$(BLD)/%/$(S_BLD): $(BLD)/%/$(S_SRC)
|
||||
-mkdir -p $(INS)
|
||||
-chmod a+rx $(BLD)/$*/icu/source/configure $(BLD)/$*/icu/source/runConfigureICU
|
||||
( cd $(BLD)/$*/icu/source ; `$(ICUCONF) "$(BLD)/$*/icu/source" "$*"` --disable-renaming --enable-shared --disable-static --enable-release --disable-debug --prefix=$(INS)/$* )
|
||||
touch -c $@
|
||||
|
||||
|
||||
$(INS)/%/bin/$(TARGET): $(INS)/%/$(S_INS) $(SRCS)
|
||||
-rm -rf ./$(BLD)/$*/tmp
|
||||
mkdir ./$(BLD)/$*/tmp
|
||||
@for file in $(OBJECTS); \
|
||||
do \
|
||||
what=`basename $$file .o` ; \
|
||||
echo compiling $*/$$what ; \
|
||||
$(CXX) -c -o ./$(BLD)/$*/tmp/$$what.o $$what.cpp -I $(INS)/$*/include -I $(BLD)/$*/icu/source/tools/toolutil ; \
|
||||
done
|
||||
$(CXX) -o $@ $(OBJECTS:%.o=./$(BLD)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -L$(INS)/$*/lib
|
||||
|
||||
foo:
|
||||
echo $(ALLICUS)
|
||||
|
||||
allicus: $(BLD) $(ALLICUS)
|
||||
|
||||
|
||||
all-icus: iicus
|
||||
|
||||
iicus: $(BLD) $(IICUS)
|
||||
|
||||
ricus: $(RICUS)
|
46
multi/c/Makefile-c.inc
Normal file
46
multi/c/Makefile-c.inc
Normal file
|
@ -0,0 +1,46 @@
|
|||
# Copyright (c) 2008-2012 IBM Corp. and Others. All Rights Reserved
|
||||
|
||||
include $(MULTICU_ROOT)/common/Makefile-multi.inc
|
||||
|
||||
C_GOOD:=$(shell [ -d $(C_INS) ] && (cd $(C_INS) ; ls -d */$(S_INS) 2>/dev/null | cut -d/ -f1))
|
||||
C_REL:=$(shell [ -d $(C_INS) ] && (cd $(C_INS) ; ls -d r*/$(S_INS) 2>/dev/null | cut -d/ -f1))
|
||||
|
||||
C_CLEAN_TARGET=$(C_GOOD:%=$(C_INS)/%/bin/$(TARGET))
|
||||
|
||||
SOURCES=$(C_SOURCES) $(CXX_SOURCES)
|
||||
C_OBJECTS=$(C_SOURCES:%.c=%.o)
|
||||
CXX_OBJECTS=$(CXX_SOURCES:%.cpp=%.o)
|
||||
OBJECTS=$(C_OBJECTS) $(CXX_OBJECTS)
|
||||
#DEBUGOPT=-g
|
||||
|
||||
# list of ICUs to be built
|
||||
ICU_TARBALLS=$(shell cd $(ICUS) ; ls icu4c-*-src.tgz)
|
||||
# list of versions ( form "3_8 4_0" etc. )
|
||||
ICU_TARBALLS_VERS=$(ICU_TARBALLS:icu4c-%-src.tgz=%)
|
||||
|
||||
|
||||
$(C_INS)/%/bin/$(TARGET): $(SOURCES) $(HEADERS)
|
||||
-rm -rf $(C_INS)/$*/tmp
|
||||
mkdir $(C_INS)/$*/tmp
|
||||
ifneq (,$(CXX_OBJECTS))
|
||||
@for file in $(CXX_OBJECTS); \
|
||||
do \
|
||||
what=`basename $$file .o` ; \
|
||||
echo compiling '(C++)' $*/$$what ; \
|
||||
`$(C_INS)/$*/bin/icu-config --cxx` `$(C_INS)/$*/bin/icu-config --cxxflags` $(DEBUGOPT) -c -o $(C_INS)/$*/tmp/$$what.o $$what.cpp -I $(C_INS)/$*/include -I $(C_BLD)/$*/icu/source/tools/toolutil || \
|
||||
$(CXX) $(DEBUGOPT) -c -o $(C_INS)/$*/tmp/$$what.o $${what}.cpp -I $(C_INS)/$*/include -I $(C_BLD)/$*/icu/source/tools/toolutil ; \
|
||||
done
|
||||
endif
|
||||
ifneq (,$(C_OBJECTS))
|
||||
@for file in $(C_OBJECTS); \
|
||||
do \
|
||||
what=`basename $$file .o` ; \
|
||||
echo compiling '(C )' $*/$$what ; \
|
||||
$(CC) $(DEBUGOPT) -c -o $(C_INS)/$*/tmp/$$what.o $${what}.c -I $(C_INS)/$*/include -I $(C_BLD)/$*/icu/source/tools/toolutil ; \
|
||||
done
|
||||
endif
|
||||
@echo linking $*/$$what
|
||||
@`$(C_INS)/$*/bin/icu-config --cxx` `$(C_INS)/$*/bin/icu-config --ldflags ` $(DEBUGOPT) -o $@ $(OBJECTS:%.o=$(C_INS)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -licuio -L$(C_INS)/$*/lib || \
|
||||
$(CXX) $(DEBUGOPT) -o $@ $(OBJECTS:%.o=$(C_INS)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -licuio -L$(C_INS)/$*/lib
|
||||
|
||||
|
2
multi/c/old-icu.txt
Normal file
2
multi/c/old-icu.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Copyright (c) 2009 IBM Corp. and Others. All Rights Reserved
|
||||
# a list of ICU4Cs too old to build with the current patchset.
|
12775
multi/c/patch/3_0
Normal file
12775
multi/c/patch/3_0
Normal file
File diff suppressed because it is too large
Load diff
12384
multi/c/patch/3_2
Normal file
12384
multi/c/patch/3_2
Normal file
File diff suppressed because it is too large
Load diff
17
multi/c/patch/3_4_1
Normal file
17
multi/c/patch/3_4_1
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
|
||||
Only in 3_0/icu/source: bin
|
||||
Only in 3_0.orig/icu/source: confdefs.h
|
||||
diff -ru 3_0.orig/icu/source/config/mh-darwin 3_0/icu/source/config/mh-darwin
|
||||
--- 3_0.orig/icu/source/config/mh-darwin 2008-10-20 14:57:52.000000000 -0700
|
||||
+++ 3_0/icu/source/config/mh-darwin 2008-10-20 15:57:28.000000000 -0700
|
||||
@@ -15,6 +15,8 @@
|
||||
## Commands to generate dependency files
|
||||
GEN_DEPS.c= $(CC) -E -MMD $(DEFS) $(CPPFLAGS)
|
||||
GEN_DEPS.cc= $(CXX) -E -MMD $(DEFS) $(CPPFLAGS)
|
||||
+GEN_DEPS.c= echo
|
||||
+GEN_DEPS.cc= echo
|
||||
|
||||
## Commands to compile
|
||||
COMPILE.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -fno-common -c
|
||||
Only in 3_0.orig/icu/source: config.cache
|
||||
Only in 3_0.orig/icu/source: config.log
|
5
multi/c/patch/readme.txt
Normal file
5
multi/c/patch/readme.txt
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/cat
|
||||
# Copyright (c) 2009 IBM Corp. and Others. All Rights Reserved
|
||||
#
|
||||
|
||||
Contains ICU4C patches to make old versions build.
|
66
multi/c/superconf.sh
Executable file
66
multi/c/superconf.sh
Executable file
|
@ -0,0 +1,66 @@
|
|||
#!/bin/sh
|
||||
# Copyright (c) 2009 IBM Corp. and Others. All Rights Reserved
|
||||
#
|
||||
# Sample "super configure"
|
||||
# this script is responsible for configuring ICU.
|
||||
|
||||
# input variables;
|
||||
# $ICU_VER - the ICU version in underscore format (4_2_0_1)
|
||||
|
||||
ICU_SRC="$1"
|
||||
ICU_VER="$2"
|
||||
|
||||
U_HOST=`hostname`
|
||||
U_SYS=`uname || echo unknown`
|
||||
#echo $HOST
|
||||
|
||||
export rcs=none
|
||||
|
||||
case $U_SYS in
|
||||
AIX)
|
||||
# the preferred 'AIX' type to use
|
||||
AIX=AIX
|
||||
case $ICU_VER in
|
||||
4*)
|
||||
#AIX=AIX4.3VA
|
||||
AIX=AIX
|
||||
;;
|
||||
*)
|
||||
AIX=AIX4.3VA
|
||||
;;
|
||||
1*|2*|3_0*|3_1*)
|
||||
AIX=AIX4.3xlC
|
||||
PATH=/usr/vacpp/bin/:$PATH
|
||||
;;
|
||||
esac
|
||||
rcs=${AIX}
|
||||
;;
|
||||
*)
|
||||
rcs=none
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
case $HOST in
|
||||
sys98*)
|
||||
rcs=$AIX
|
||||
;;
|
||||
hp*)
|
||||
rcs='HP-UX/ACC'
|
||||
;;
|
||||
merill*|redhat*|sunlight*)
|
||||
rcs='LinuxRedHat'
|
||||
;;
|
||||
*)
|
||||
echo sh ${ICU_SRC}/configure
|
||||
#echo Unknown host $HOST, edit $0
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
echo sh ${ICU_SRC}/runConfigureICU "${rcs}"
|
||||
|
||||
|
||||
|
||||
|
22
multi/common/Makefile-multi.inc
Normal file
22
multi/common/Makefile-multi.inc
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
|
||||
|
||||
C_ROOT=$(MULTICU_ROOT)/c
|
||||
J_ROOT=$(MULTICU_ROOT)/j
|
||||
M_TMP=$(MULTICU_ROOT)/tmp
|
||||
C_INS=$(M_TMP)/ins
|
||||
C_BLD=$(M_TMP)/build
|
||||
C_SRC=$(M_TMP)/src
|
||||
|
||||
# C defs
|
||||
S_INS=include/unicode/utypes.h
|
||||
S_SRCDIR=icu/source
|
||||
S_BLD=$(S_SRCDIR)/config.status
|
||||
S_SRC=$(S_SRCDIR)/configure
|
||||
|
||||
-include $(MULTICU_ROOT)/common/Makefile-local.inc
|
||||
|
||||
ICUS=$(MULTICU_ROOT)/packages
|
||||
|
||||
TOP=$(shell pwd)
|
||||
|
||||
# J defs
|
8
multi/j/Makefile-j.inc
Normal file
8
multi/j/Makefile-j.inc
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
|
||||
|
||||
include $(MULTICU_ROOT)/Makefile-multi.inc
|
||||
ICUS=$(MULTICU_ROOT)/icus
|
||||
J_GOOD:=$(shell [ -d $(ICUS) ] && (cd $(ICUS) ; ls -d icu4j-*.jar | cut -d- -f2 | cut -d. -f1))
|
||||
#J_GOOD=$(ICU4JVERS:%=$(ICUS)/icu4j-%.jar)
|
||||
|
||||
|
2
multi/j/old-icu4j.txt
Normal file
2
multi/j/old-icu4j.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Copyright (c) 2009 IBM Corp. and Others. All Rights Reserved
|
||||
# a list of ICU4Cs too old to build with the current patchset.
|
51
multi/proj/chello/Makefile
Normal file
51
multi/proj/chello/Makefile
Normal file
|
@ -0,0 +1,51 @@
|
|||
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
|
||||
# Makefile for multicu/sample/chello
|
||||
# C/C++ hello
|
||||
|
||||
## Name of the app
|
||||
TARGET=chello
|
||||
|
||||
## Sources list (C and C++ just to be difficult)
|
||||
C_SOURCES=date.c
|
||||
CXX_SOURCES=uprint.cpp
|
||||
SRCS=$(C_SOURCES) $(CXX_SOURCES)
|
||||
HEADERS=uprint.h
|
||||
|
||||
all:
|
||||
@echo To build and list "'" $(OUTFILES) "'" in "'" $(C_GOOD) "'" use "$(MAKE) check"
|
||||
|
||||
## Setup multicu
|
||||
MULTICU_ROOT=../../
|
||||
include $(MULTICU_ROOT)/c/Makefile-c.inc
|
||||
|
||||
OUT=out
|
||||
|
||||
$(OUT):
|
||||
mkdir $(OUT)
|
||||
|
||||
## The output files. Will result in: out/3_8.txt out/4_0.txt etc.
|
||||
OUTFILES=$(C_GOOD:%=$(OUT)/%.txt)
|
||||
|
||||
.PRECIOUS: $(C_CLEAN_TARGET)
|
||||
|
||||
## Generate a file
|
||||
$(OUT)/%.txt: $(OUT) $(C_INS)/%/bin/$(TARGET)
|
||||
$(shell $(C_INS)/$*/bin/icu-config --invoke) $(C_INS)/$*/bin/$(TARGET) > $@
|
||||
|
||||
## clean
|
||||
clean:
|
||||
-rm -f $(C_CLEAN_TARGET)
|
||||
-rm -f ./$(OUT)/*
|
||||
-rmdir $(OUT)
|
||||
|
||||
## Just generate
|
||||
outfiles: $(OUTFILES)
|
||||
|
||||
## Test: generate out files, and print them.
|
||||
check: $(OUTFILES)
|
||||
@for file in $(OUTFILES); \
|
||||
do \
|
||||
echo; \
|
||||
sed -e "s%^%$$file: %g" < $$file; \
|
||||
done
|
||||
|
204
multi/proj/chello/date.c
Normal file
204
multi/proj/chello/date.c
Normal file
|
@ -0,0 +1,204 @@
|
|||
/*
|
||||
**********************************************************************
|
||||
* Copyright (C) 1998-2009, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
**********************************************************************
|
||||
*
|
||||
* File date.c
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 06/11/99 stephen Creation.
|
||||
* 06/16/99 stephen Modified to use uprint.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "unicode/utypes.h"
|
||||
#include "unicode/ustring.h"
|
||||
#include "unicode/uclean.h"
|
||||
|
||||
#include "unicode/ucnv.h"
|
||||
#include "unicode/udat.h"
|
||||
#include "unicode/ucal.h"
|
||||
|
||||
#include "uprint.h"
|
||||
|
||||
int main(int argc, char **argv);
|
||||
|
||||
#if UCONFIG_NO_FORMATTING
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
printf("%s: Sorry, UCONFIG_NO_FORMATTING was turned on (see uconfig.h). No formatting can be done. \n", argv[0]);
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
|
||||
|
||||
/* Protos */
|
||||
static void usage(void);
|
||||
static void version(void);
|
||||
static void date(const UChar *tz, UDateFormatStyle style, char *format, UErrorCode *status);
|
||||
|
||||
|
||||
/* The version of date */
|
||||
#define DATE_VERSION "1.0"
|
||||
|
||||
/* "GMT" */
|
||||
static const UChar GMT_ID [] = { 0x0047, 0x004d, 0x0054, 0x0000 };
|
||||
|
||||
|
||||
int
|
||||
main(int argc,
|
||||
char **argv)
|
||||
{
|
||||
int printUsage = 0;
|
||||
int printVersion = 0;
|
||||
int optind = 1;
|
||||
char *arg;
|
||||
const UChar *tz = 0;
|
||||
UDateFormatStyle style = UDAT_DEFAULT;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
char *format = NULL;
|
||||
|
||||
|
||||
/* parse the options */
|
||||
for(optind = 1; optind < argc; ++optind) {
|
||||
arg = argv[optind];
|
||||
|
||||
/* version info */
|
||||
if(strcmp(arg, "-v") == 0 || strcmp(arg, "--version") == 0) {
|
||||
printVersion = 1;
|
||||
}
|
||||
/* usage info */
|
||||
else if(strcmp(arg, "-h") == 0 || strcmp(arg, "--help") == 0) {
|
||||
printUsage = 1;
|
||||
}
|
||||
/* display date in gmt */
|
||||
else if(strcmp(arg, "-u") == 0 || strcmp(arg, "--gmt") == 0) {
|
||||
tz = GMT_ID;
|
||||
}
|
||||
/* display date in gmt */
|
||||
else if(strcmp(arg, "-f") == 0 || strcmp(arg, "--full") == 0) {
|
||||
style = UDAT_FULL;
|
||||
}
|
||||
/* display date in long format */
|
||||
else if(strcmp(arg, "-l") == 0 || strcmp(arg, "--long") == 0) {
|
||||
style = UDAT_LONG;
|
||||
}
|
||||
/* display date in medium format */
|
||||
else if(strcmp(arg, "-m") == 0 || strcmp(arg, "--medium") == 0) {
|
||||
style = UDAT_MEDIUM;
|
||||
}
|
||||
/* display date in short format */
|
||||
else if(strcmp(arg, "-s") == 0 || strcmp(arg, "--short") == 0) {
|
||||
style = UDAT_SHORT;
|
||||
}
|
||||
else if(strcmp(arg, "-F") == 0 || strcmp(arg, "--format") == 0) {
|
||||
if ( optind + 1 < argc ) {
|
||||
optind++;
|
||||
format = argv[optind];
|
||||
}
|
||||
}
|
||||
/* POSIX.1 says all arguments after -- are not options */
|
||||
else if(strcmp(arg, "--") == 0) {
|
||||
/* skip the -- */
|
||||
++optind;
|
||||
break;
|
||||
}
|
||||
/* unrecognized option */
|
||||
else if(strncmp(arg, "-", strlen("-")) == 0) {
|
||||
printf("icudate: invalid option -- %s\n", arg+1);
|
||||
printUsage = 1;
|
||||
}
|
||||
/* done with options, display date */
|
||||
else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* print usage info */
|
||||
if(printUsage) {
|
||||
usage();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* print version info */
|
||||
if(printVersion) {
|
||||
version();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* print the date */
|
||||
date(tz, style, format, &status);
|
||||
|
||||
u_cleanup();
|
||||
return (U_FAILURE(status) ? 1 : 0);
|
||||
}
|
||||
|
||||
/* Usage information */
|
||||
static void
|
||||
usage()
|
||||
{
|
||||
puts("Usage: icudate [OPTIONS]");
|
||||
puts("Options:");
|
||||
puts(" -h, --help Print this message and exit.");
|
||||
puts(" -v, --version Print the version number of date and exit.");
|
||||
puts(" -u, --gmt Display the date in Greenwich Mean Time.");
|
||||
puts(" -f, --full Use full display format.");
|
||||
puts(" -l, --long Use long display format.");
|
||||
puts(" -m, --medium Use medium display format.");
|
||||
puts(" -s, --short Use short display format.");
|
||||
}
|
||||
|
||||
/* Version information */
|
||||
static void
|
||||
version()
|
||||
{
|
||||
printf("icudate version %s (ICU version %s), created by Stephen F. Booth.\n",
|
||||
DATE_VERSION, U_ICU_VERSION);
|
||||
puts(U_COPYRIGHT_STRING);
|
||||
}
|
||||
|
||||
/* Format the date */
|
||||
static void
|
||||
date(const UChar *tz,
|
||||
UDateFormatStyle style,
|
||||
char *format,
|
||||
UErrorCode *status)
|
||||
{
|
||||
UChar *s = 0;
|
||||
int32_t len = 0;
|
||||
UDateFormat *fmt;
|
||||
UChar uFormat[100];
|
||||
|
||||
fmt = udat_open(style, style, 0, tz, -1,NULL,0, status);
|
||||
if ( format != NULL ) {
|
||||
u_charsToUChars(format,uFormat,strlen(format)),
|
||||
udat_applyPattern(fmt,FALSE,uFormat,strlen(format));
|
||||
}
|
||||
len = udat_format(fmt, ucal_getNow(), 0, len, 0, status);
|
||||
if(*status == U_BUFFER_OVERFLOW_ERROR) {
|
||||
*status = U_ZERO_ERROR;
|
||||
s = (UChar*) malloc(sizeof(UChar) * (len+1));
|
||||
if(s == 0) goto finish;
|
||||
udat_format(fmt, ucal_getNow(), s, len + 1, 0, status);
|
||||
if(U_FAILURE(*status)) goto finish;
|
||||
}
|
||||
|
||||
/* print the date string */
|
||||
uprint(s, stdout, status);
|
||||
|
||||
/* print a trailing newline */
|
||||
printf(" @ ICU " U_ICU_VERSION "\n");
|
||||
|
||||
finish:
|
||||
udat_close(fmt);
|
||||
free(s);
|
||||
}
|
||||
#endif
|
76
multi/proj/chello/uprint.cpp
Normal file
76
multi/proj/chello/uprint.cpp
Normal file
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
**********************************************************************
|
||||
* Copyright (C) 1998-2009, International Business Machines Corporation
|
||||
* and others. All Rights Reserved.
|
||||
**********************************************************************
|
||||
*
|
||||
* File uprint.cpp
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 06/14/99 stephen Creation.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#include "uprint.h"
|
||||
|
||||
#include "unicode/ucnv.h"
|
||||
#include "unicode/ustring.h"
|
||||
|
||||
#define BUF_SIZE 128
|
||||
|
||||
/* Print a ustring to the specified FILE* in the default codepage */
|
||||
U_CAPI void
|
||||
uprint(const UChar *s,
|
||||
FILE *f,
|
||||
UErrorCode *status)
|
||||
{
|
||||
/* converter */
|
||||
UConverter *converter;
|
||||
char buf [BUF_SIZE];
|
||||
int32_t sourceLen;
|
||||
const UChar *mySource;
|
||||
const UChar *mySourceEnd;
|
||||
char *myTarget;
|
||||
int32_t arraySize;
|
||||
|
||||
if(s == 0) return;
|
||||
|
||||
/* set up the conversion parameters */
|
||||
sourceLen = u_strlen(s);
|
||||
mySource = s;
|
||||
mySourceEnd = mySource + sourceLen;
|
||||
myTarget = buf;
|
||||
arraySize = BUF_SIZE;
|
||||
|
||||
/* open a default converter */
|
||||
converter = ucnv_open(0, status);
|
||||
|
||||
/* if we failed, clean up and exit */
|
||||
if(U_FAILURE(*status)) goto finish;
|
||||
|
||||
/* perform the conversion */
|
||||
do {
|
||||
/* reset the error code */
|
||||
*status = U_ZERO_ERROR;
|
||||
|
||||
/* perform the conversion */
|
||||
ucnv_fromUnicode(converter, &myTarget, myTarget + arraySize,
|
||||
&mySource, mySourceEnd, NULL,
|
||||
TRUE, status);
|
||||
|
||||
/* Write the converted data to the FILE* */
|
||||
fwrite(buf, sizeof(char), myTarget - buf, f);
|
||||
|
||||
/* update the conversion parameters*/
|
||||
myTarget = buf;
|
||||
arraySize = BUF_SIZE;
|
||||
}
|
||||
while(*status == U_BUFFER_OVERFLOW_ERROR);
|
||||
|
||||
finish:
|
||||
|
||||
/* close the converter */
|
||||
ucnv_close(converter);
|
||||
}
|
26
multi/proj/chello/uprint.h
Normal file
26
multi/proj/chello/uprint.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
**********************************************************************
|
||||
* Copyright (C) 1998-2009, International Business Machines Corporation
|
||||
* and others. All Rights Reserved.
|
||||
**********************************************************************
|
||||
*
|
||||
* File uprint.h
|
||||
*
|
||||
* Modification History:
|
||||
*
|
||||
* Date Name Description
|
||||
* 06/14/99 stephen Creation.
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef UPRINT_H
|
||||
#define UPRINT_H 1
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "unicode/utypes.h"
|
||||
|
||||
/* Print a ustring to the specified FILE* in the default codepage */
|
||||
U_CFUNC void uprint(const UChar *s, FILE *f, UErrorCode *status);
|
||||
|
||||
#endif /* ! UPRINT_H */
|
126
multi/proj/icu4cscan/Makefile
Normal file
126
multi/proj/icu4cscan/Makefile
Normal file
|
@ -0,0 +1,126 @@
|
|||
# Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
|
||||
MULTICU_ROOT=../../
|
||||
include $(MULTICU_ROOT)/common/Makefile-multi.inc
|
||||
|
||||
XML=./xml
|
||||
JXML=./jxml
|
||||
JVMXML=./jvmxml
|
||||
|
||||
COOKED=cooked
|
||||
INPUT=input
|
||||
INTROXMLS=$(wildcard $(INPUT)/*-introduction.xml)
|
||||
FEATXMLS=$(INTROXMLS:$(INPUT)/%-introduction.xml=$(COOKED)/%-cooked.xml) $(COOKED)/characters.xml
|
||||
ALLCOOKED=cooked/features.xml
|
||||
|
||||
# java stuff
|
||||
MergerName=Merger
|
||||
PropagateName=PropagateFeatures
|
||||
PropagateCharsName=PropagateCharacters
|
||||
MergerPackage=com.ibm.icu.dev.meta
|
||||
MergerPackageSlash=$(subst .,/,$(MergerPackage))
|
||||
## ICUMETA=/xsrl/E/data/meta (in Makefile.local)
|
||||
MergerLib=$(ICUMETA)/lib
|
||||
MergerJar=$(ICUMETA)/icumeta.jar
|
||||
#was: $(ICUMETA)/classes
|
||||
MergerClassPath=$(shell ls $(MergerLib)/*.jar | tr '\n' ':')$(MergerJar):$(OTHERJARS)
|
||||
include Makefile.local
|
||||
MergerBuild=$(ICUMETA)/build.xml
|
||||
#MergerClass=$(ICUMETA)/classes/$(MergerPackageSlash)/$(MergerName).class
|
||||
#MergerJava=$(ICUMETA)/src/$(MergerPackageSlash)/$(MergerName).java
|
||||
#BASEXMLS=$(ICUMETA)/xml/icumeta.xml
|
||||
BASEXMLS=$(ICUMETA)/input/versions.xml
|
||||
|
||||
|
||||
APRECIOUS=$(ICUVERS:%=$(BLD)/%/$(S_SRC)) $(ICUVERS:%=$(BLD)/%/$(S_BLD)) $(ICUVERS:%=$(INS)/%/$(S_INS))
|
||||
|
||||
all: icucaps.xml
|
||||
|
||||
.PRECIOUS: $(APRECIOUS)
|
||||
|
||||
tehprecious:
|
||||
echo $(APRECIOUS)
|
||||
|
||||
$(MergerJar):
|
||||
( cd $(ICUMETA) ; ant jar )
|
||||
|
||||
$(BLD):
|
||||
-mkdir $(BLD)
|
||||
|
||||
$(XML):
|
||||
-mkdir $(XML)
|
||||
|
||||
$(JXML):
|
||||
-mkdir $(JXML)
|
||||
|
||||
$(JVMXML):
|
||||
-mkdir $(JXML)
|
||||
|
||||
ifeq ($(JVMSH),)
|
||||
JVMSH_WARN=warn-jvmsh
|
||||
warn-jvmsh:
|
||||
@echo "Note: No $(JVM)/*$(JVM_CFG) files found, see $(JVM)/readme.txt"
|
||||
endif
|
||||
|
||||
|
||||
DTDCACHE=$(shell pwd)/dtdcache
|
||||
DTDTMP=$(shell pwd)/dtdtmp
|
||||
DTDOVR=$(ICUMETA)/dtd
|
||||
JAVADEBUG=-DCLDR_DTD_CACHE_DEBUG=n -DCLDR_DTD_CACHE_ADEBUG=n
|
||||
JAVAPROPS= -DCLDR_DTD_CACHE=$(DTDCACHE) -DCLDR_DTD_OVERRIDE=$(DTDOVR) -DICU_DTD_CACHE=$(DTDCACHE) -DICU_DTD_OVERRIDE=$DTDOVR
|
||||
|
||||
#//$(DTD)/Makefile: $(ICUMETA)/dtd/Makfile
|
||||
#// ln -s $^ $@
|
||||
#//
|
||||
#//dtd/icucaps.dtd: $(DTD)/Makefile dtd/icucaps.rnc
|
||||
#// make -C $(DTD)
|
||||
|
||||
ICUMETA_XML=$(ICUMETA)/xml/icumeta.xml
|
||||
BASE_VERSION=$(COOKED)/allversions.xml
|
||||
BASE_SOURCE=$(BASEXMLS) $(INPUT)/java.xml
|
||||
|
||||
|
||||
#$(ICUMETA)/xml/icumeta.xml: $(MergerBuild)
|
||||
# ( cd $(ICUMETA) ; ant xml )
|
||||
|
||||
ALLXMLS=$(wildcard $(XML)/*.xml $(JXML)/*.xml $(JVMXML)/*.xml)
|
||||
|
||||
allxmls: $(XML) $(JXML) $(JVMXML)
|
||||
$(MAKE) -f Makefile_c outfiles
|
||||
$(MAKE) -f Makefile_j outfiles
|
||||
|
||||
|
||||
featxmls: $(FEATXMLS)
|
||||
|
||||
allcooked: $(ALLCOOKED)
|
||||
|
||||
$(COOKED):
|
||||
-mkdir $(COOKED)
|
||||
|
||||
$(BASE_VERSION): $(BASE_SOURCE) $(MergerJar) | $(COOKED)
|
||||
-rm -rf ./dtdcache
|
||||
mkdir dtdcache
|
||||
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(BASE_SOURCE)
|
||||
|
||||
$(ALLCOOKED): $(FEATXMLS) $(MergerJar)
|
||||
-rm -rf ./dtdcache
|
||||
mkdir dtdcache
|
||||
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(FEATXMLS)
|
||||
|
||||
$(COOKED)/%-cooked.xml: $(BASE_VERSION) $(INPUT)/%-introduction.xml $(MergerJar) | $(COOKED)
|
||||
-rm -rf ./dtdcache
|
||||
mkdir dtdcache
|
||||
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(PropagateName) $(BASE_VERSION) $(INPUT)/$*-introduction.xml > $(COOKED)/$*-cooked.xml
|
||||
|
||||
$(COOKED)/characters.xml: $(ALLXMLS) $(COOKED)/junicode-cooked.xml $(MergerJar)
|
||||
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(PropagateCharsName) > $@ $(ALLXMLS) $(COOKED)/junicode-cooked.xml || (rm ./$@ ; false)
|
||||
|
||||
|
||||
icucaps.xml: allxmls $(BASE_VERSION) $(ALLXMLS) $(MergerJar) $(ALLCOOKED)
|
||||
-rm -rf ./dtdcache
|
||||
mkdir dtdcache
|
||||
# -rm -rf ./dtdtmp
|
||||
# mkdir dtdtmp
|
||||
# ln -s $(ICUMETA)/dtd/*.dtd ./dtdtmp/
|
||||
# ln -s ./dtd/*.dtd ./dtdtmp/
|
||||
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(BASE_VERSION) $(ALLXMLS) $(ALLJXMLS) $(ALLCOOKED)
|
||||
|
23
multi/proj/icu4cscan/Makefile.local.sample
Normal file
23
multi/proj/icu4cscan/Makefile.local.sample
Normal file
|
@ -0,0 +1,23 @@
|
|||
# -*- makefile -*-
|
||||
# Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
|
||||
|
||||
|
||||
|
||||
## --- important ---
|
||||
# Path to http://source.icu-project.org/repos/icu/data/trunk/meta
|
||||
ICUMETA=/xsrl/E/data/meta
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## --- all others are optional ---
|
||||
|
||||
# if needed - additional jars on the CLASSPATH
|
||||
#OTHERJARS=somejar.jar:some/other/jar.jar
|
||||
|
||||
# if needed - force path to ICUJAR
|
||||
#ICUJAR=.../icu.jar
|
||||
|
||||
#Special make options
|
||||
#MAKE_OPTS=-j2
|
46
multi/proj/icu4cscan/Makefile_c
Normal file
46
multi/proj/icu4cscan/Makefile_c
Normal file
|
@ -0,0 +1,46 @@
|
|||
# -*- makefile -*-
|
||||
# Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
|
||||
CPPFLAGS+=-DU_DISABLE_RENAMING=1 -I. -I/xsrl/IIE/include -I/xsrl/E/icu/source/tools/toolutil
|
||||
OBJECTS=testxml.o xmlout.o
|
||||
CXX_SOURCES:=$(OBJECTS:%.o=%.cpp)
|
||||
C_SOURCES=
|
||||
HEADERS=xmlout.h
|
||||
TARGET=testxml
|
||||
|
||||
all:
|
||||
@echo To build and list "'" $(OUTFILES) "'" in "'" $(C_GOOD) "'" use "$(MAKE) check"
|
||||
|
||||
MULTICU_ROOT=../../
|
||||
include $(MULTICU_ROOT)/c/Makefile-c.inc
|
||||
|
||||
OUT=./xml
|
||||
$(OUT):
|
||||
mkdir $(OUT)
|
||||
|
||||
OUTFILES=$(C_GOOD:%=$(OUT)/%.xml)
|
||||
|
||||
|
||||
.PRECIOUS: $(C_CLEAN_TARGET)
|
||||
|
||||
## Generate a file
|
||||
$(OUT)/%.xml: $(OUT) $(C_INS)/%/bin/$(TARGET)
|
||||
$(shell $(C_INS)/$*/bin/icu-config --invoke) $(C_INS)/$*/bin/$(TARGET) > $@
|
||||
|
||||
## clean
|
||||
clean:
|
||||
-rm -f $(C_CLEAN_TARGET)
|
||||
-rm -f ./$(OUT)/*
|
||||
-rmdir $(OUT)
|
||||
|
||||
## Just generate
|
||||
outfiles: $(OUTFILES)
|
||||
|
||||
## Test: generate out files, and print them.
|
||||
check: $(OUTFILES)
|
||||
@for file in $(OUTFILES); \
|
||||
do \
|
||||
echo; \
|
||||
sed -e "s%^%$$file: %g" < $$file; \
|
||||
done
|
||||
|
||||
|
223
multi/proj/icu4cscan/Makefile_j
Normal file
223
multi/proj/icu4cscan/Makefile_j
Normal file
|
@ -0,0 +1,223 @@
|
|||
# -*- makefile -*-
|
||||
# Copyright (C) 2012 IBM Corporation and Others. All Rights Reserved.
|
||||
## Name of the app
|
||||
|
||||
TARGET=icu4jscan
|
||||
|
||||
all:
|
||||
@echo To build and list "'" $(OUTFILES) "'" in "'" $(J_GOOD) "'" use "$(MAKE) check"
|
||||
|
||||
## Setup multicu
|
||||
MULTICU_ROOT=../../
|
||||
include $(MULTICU_ROOT)/j/Makefile-j.inc
|
||||
|
||||
|
||||
## The output files. Will result in: out/3_8.txt out/4_0.txt etc.
|
||||
OUT=jxml
|
||||
OUTFILES=$(J_GOOD:%=$(OUT)/%.txt)
|
||||
|
||||
.PRECIOUS: $(C_CLEAN_TARGET)
|
||||
|
||||
## Generate a file
|
||||
$(OUT)/%.txt: $(OUT) $(C_INS)/%/bin/$(TARGET)
|
||||
$(shell $(C_INS)/$*/bin/icu-config --invoke) $(C_INS)/$*/bin/$(TARGET) > $@
|
||||
|
||||
## clean
|
||||
clean:
|
||||
-rm -f $(C_CLEAN_TARGET)
|
||||
-rm -f ./$(OUT)/*
|
||||
-rmdir $(OUT)
|
||||
|
||||
|
||||
## Test: generate out files, and print them.
|
||||
check: $(OUTFILES)
|
||||
@for file in $(OUTFILES); \
|
||||
do \
|
||||
echo; \
|
||||
sed -e "s%^%$$file: %g" < $$file; \
|
||||
done
|
||||
|
||||
MULTICU_ROOT=../../
|
||||
include $(MULTICU_ROOT)/common/Makefile-multi.inc
|
||||
|
||||
XML=./xml
|
||||
|
||||
JVMXML=./jvmxml
|
||||
JVM=$(MULTICU_ROOT)/j/jvm
|
||||
JVM_CFG=.sh
|
||||
JVMSH:=$(wildcard $(JVM)/[0-9]*$(JVM_CFG))
|
||||
|
||||
ALLICUS=$(ICUVERS:%=$(BLD)/%/$(S_BLD))
|
||||
IICUS=$(ICUVERS:%=$(INS)/%/$(S_INS))
|
||||
ALLAPPS=$(ICUVERS:%=$(INS)/%/bin/$(TARGET))
|
||||
ALLXMLS=$(ICUVERS:%=$(XML)/%.xml)
|
||||
COOKED=cooked
|
||||
INPUT=input
|
||||
INTROXMLS=$(wildcard $(INPUT)/*-introduction.xml)
|
||||
FEATXMLS=$(INTROXMLS:$(INPUT)/%-introduction.xml=$(COOKED)/%-cooked.xml) $(COOKED)/characters.xml
|
||||
ALLCOOKED=cooked/features.xml
|
||||
|
||||
JXML=./jxml
|
||||
#ICU4JVERS
|
||||
ALLICU4JS=$(ICU4JVERS:%=$(ICUS)/icu4j-%.jar)
|
||||
ALLJXMLS=$(J_GOOD:%=$(JXML)/%.xml)
|
||||
JSCAN=ScanICU
|
||||
alljxmls: $(JXML) $(ALLJXMLS)
|
||||
JSCANDIR=../icu4jscan
|
||||
JCLASSFILE=$(JSCANDIR)/bin/com/ibm/icu/dev/scan/$(JSCAN).class
|
||||
JScanPackage=com.ibm.icu.dev.scan
|
||||
ALLJVM=$(JVMSH:$(JVM)/%$(JVM_CFG)=%)
|
||||
ALLJVMXMLS=$(ALLJVM:%=$(JVMXML)/%.xml)
|
||||
JVMSCAN=ScanJava
|
||||
alljvmxmls: $(JVMXML) $(ALLJVMXMLS)
|
||||
JVMCLASSFILE=$(JSCANDIR)/bin/com/ibm/icu/dev/scan/$(JVMSCAN).class
|
||||
|
||||
|
||||
# java stuff
|
||||
JAVA=java
|
||||
MergerName=Merger
|
||||
PropagateName=PropagateFeatures
|
||||
PropagateCharsName=PropagateCharacters
|
||||
MergerPackage=com.ibm.icu.dev.meta
|
||||
MergerPackageSlash=$(subst .,/,$(MergerPackage))
|
||||
## ICUMETA=/xsrl/E/data/meta (in Makefile.local)
|
||||
MergerLib=$(ICUMETA)/lib
|
||||
MergerJar=$(ICUMETA)/icumeta.jar
|
||||
#was: $(ICUMETA)/classes
|
||||
MergerClassPath=$(shell ls $(MergerLib)/*.jar | tr '\n' ':')$(MergerJar):$(OTHERJARS)
|
||||
include Makefile.local
|
||||
MergerBuild=$(ICUMETA)/build.xml
|
||||
#MergerClass=$(ICUMETA)/classes/$(MergerPackageSlash)/$(MergerName).class
|
||||
#MergerJava=$(ICUMETA)/src/$(MergerPackageSlash)/$(MergerName).java
|
||||
#BASEXMLS=$(ICUMETA)/xml/icumeta.xml
|
||||
BASEXMLS=$(ICUMETA)/input/versions.xml
|
||||
|
||||
|
||||
APRECIOUS=$(ICUVERS:%=$(BLD)/%/$(S_SRC)) $(ICUVERS:%=$(BLD)/%/$(S_BLD)) $(ICUVERS:%=$(INS)/%/$(S_INS))
|
||||
|
||||
.PRECIOUS: $(APRECIOUS)
|
||||
|
||||
tehprecious:
|
||||
echo $(APRECIOUS)
|
||||
|
||||
$(MergerJar):
|
||||
( cd $(ICUMETA) ; ant jar )
|
||||
|
||||
$(BLD):
|
||||
-mkdir $(BLD)
|
||||
|
||||
$(INS)/%/$(S_INS): $(BLD)/%/$(S_BLD)
|
||||
@if [ -f $(BLD)/$*/build.err ]; then echo Error for $* stored in $(BLD)/$*/build.err; false; fi
|
||||
( make $(MAKE_OPTS) -C $(BLD)/$*/icu/source 2>&1 all install | tee $(BLD)/$*/build.log ) || ( mv $(BLD)/$*/build.log $(BLD)/$*/build.err ; false )
|
||||
touch -c $@
|
||||
|
||||
$(BLD)/%/$(S_SRC): $(ICUS)/icu4c-%-src.tgz
|
||||
-mv $(BLD)/$* $(BLD)/$*.old
|
||||
-( rm -rf ./$(BLD)/$*.old& )
|
||||
mkdir -p $(BLD)/$*
|
||||
( cd $(BLD)/$* ; tar xfpz $(DOT)/$^ )
|
||||
([ -f patch/$* ] && patch -d $(BLD)/$* -p1 < $(DOT)/patch/$*) || true
|
||||
touch -c $@
|
||||
|
||||
$(BLD)/%/$(S_BLD): $(BLD)/%/$(S_SRC)
|
||||
-mkdir -p $(INS)
|
||||
( cd $(BLD)/$*/icu/source ; ./configure --disable-renaming --enable-shared --disable-static --enable-release --disable-debug --prefix=$(DOT)/$(INS)/$* )
|
||||
touch -c $@
|
||||
|
||||
$(INS)/%/bin/$(TARGET): $(INS)/%/$(S_INS) $(SRCS)
|
||||
-rm -rf ./$(BLD)/$*/tmp
|
||||
mkdir ./$(BLD)/$*/tmp
|
||||
@for file in $(OBJECTS); \
|
||||
do \
|
||||
what=`basename $$file .o` ; \
|
||||
echo compiling $*/$$what ; \
|
||||
$(CXX) -c -o ./$(BLD)/$*/tmp/$$what.o $$what.cpp -I $(INS)/$*/include -I $(BLD)/$*/icu/source/tools/toolutil ; \
|
||||
done
|
||||
$(CXX) -o $@ $(OBJECTS:%.o=./$(BLD)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -L$(INS)/$*/lib
|
||||
|
||||
$(XML):
|
||||
mkdir $(XML)
|
||||
|
||||
$(JXML):
|
||||
mkdir $(JXML)
|
||||
|
||||
ifeq ($(JVMSH),)
|
||||
JVMSH_WARN=warn-jvmsh
|
||||
warn-jvmsh:
|
||||
@echo "Note: No $(JVM)/*$(JVM_CFG) files found, see $(JVM)/readme.txt"
|
||||
endif
|
||||
|
||||
|
||||
$(JVMXML):
|
||||
mkdir $(JVMXML)
|
||||
|
||||
$(XML)/%.xml: $(INS)/%/bin/$(TARGET) $(XML)
|
||||
$(shell $(INS)/$*/bin/icu-config --invoke) $(INS)/$*/bin/$(TARGET) > $@
|
||||
|
||||
allxmls: $(ALLXMLS) | $(OUT)
|
||||
|
||||
alljvmxmls: $(ALLJVMXMLS) $(JVMSH_WARN) | $(JVMXML)
|
||||
|
||||
allapps: $(BLD) $(ALLAPPS)
|
||||
|
||||
allicus: $(BLD) $(ALLICUS)
|
||||
|
||||
clean-allapps:
|
||||
-rm -f $(ALLAPPS)
|
||||
|
||||
iicus: $(BLD) $(IICUS)
|
||||
|
||||
DTDCACHE=$(shell pwd)/dtdcache
|
||||
DTDTMP=$(shell pwd)/dtdtmp
|
||||
DTDOVR=$(ICUMETA)/dtd
|
||||
JAVADEBUG=-DCLDR_DTD_CACHE_DEBUG=n -DCLDR_DTD_CACHE_ADEBUG=n
|
||||
JAVAPROPS= -DCLDR_DTD_CACHE=$(DTDCACHE) -DCLDR_DTD_OVERRIDE=$(DTDOVR) -DICU_DTD_CACHE=$(DTDCACHE) -DICU_DTD_OVERRIDE=$DTDOVR
|
||||
|
||||
#//$(DTD)/Makefile: $(ICUMETA)/dtd/Makfile
|
||||
#// ln -s $^ $@
|
||||
#//
|
||||
#//dtd/icucaps.dtd: $(DTD)/Makefile dtd/icucaps.rnc
|
||||
#// make -C $(DTD)
|
||||
|
||||
ICUMETA_XML=$(ICUMETA)/xml/icumeta.xml
|
||||
|
||||
#$(ICUMETA)/xml/icumeta.xml: $(MergerBuild)
|
||||
# ( cd $(ICUMETA) ; ant xml )
|
||||
|
||||
featxmls: $(FEATXMLS)
|
||||
|
||||
allcooked: $(ALLCOOKED)
|
||||
|
||||
$(ALLCOOKED): $(FEATXMLS) $(MergerJar)
|
||||
-rm -rf ./dtdcache
|
||||
mkdir dtdcache
|
||||
$(JAVA) $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(FEATXMLS)
|
||||
|
||||
$(COOKED)/%-cooked.xml: $(ICUMETA_XML) $(INPUT)/%-introduction.xml $(MergerJar)
|
||||
-rm -rf ./dtdcache
|
||||
mkdir dtdcache
|
||||
$(JAVA) $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(PropagateName) $(ICUMETA_XML) $(INPUT)/$*-introduction.xml > $(COOKED)/$*-cooked.xml
|
||||
|
||||
$(COOKED)/characters.xml: $(ALLJXMLS) $(ALLXMLS) $(MergerJar)
|
||||
$(JAVA) $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(PropagateCharsName) > $@ $(ALLJXMLS) $(ALLXMLS) || (rm ./$@ ; false)
|
||||
|
||||
|
||||
icucaps.xml: $(BASEXMLS) $(ALLJXMLS) $(ALLXMLS) $(MergerJar) $(ALLCOOKED)
|
||||
-rm -rf ./dtdcache
|
||||
mkdir dtdcache
|
||||
# -rm -rf ./dtdtmp
|
||||
# mkdir dtdtmp
|
||||
# ln -s $(ICUMETA)/dtd/*.dtd ./dtdtmp/
|
||||
# ln -s ./dtd/*.dtd ./dtdtmp/
|
||||
$(JAVA) $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(BASEXMLS) $(ALLXMLS) $(ALLJXMLS) $(ALLCOOKED)
|
||||
|
||||
# --- J
|
||||
|
||||
$(JXML)/%.xml: $(JCLASSFILE) $(ICUS)/icu4j-%.jar | $(JXML)
|
||||
$(JAVA) -classpath $(JSCANDIR)/bin:$(ICUS)/icu4j-$*.jar:$(JSCANDIR)/lib/icumeta.jar:$(JSCANDIR)/lib/xalan.jar:$(JSCANDIR)/lib/cldr.jar:$(JSCANDIR)/lib/utilities.jar:$(MergerJar):$(MergerLib)/utilities.jar:$(MergerLib)/cldr.jar:$(JSCANDIR)/lib/xerces.jar:$(OTHERJARS) $(JScanPackage).$(JSCAN) > $@ || (rm -f ./$@ ; false)
|
||||
|
||||
$(JVMXML)/%.xml: $(JVMCLASSFILE) $(JVM)/%$(JVM_CFG) | $(JVMXML)
|
||||
$(JVM)/invoke.sh $(JVM)/$*$(JVM_CFG) $(JSCANDIR)/bin:$(ICUS)/icu4j-$*.jar:$(JSCANDIR)/lib/icumeta.jar:$(JSCANDIR)/lib/xalan.jar:$(JSCANDIR)/lib/cldr.jar:$(MergerJar):$(MergerJar):$(MergerLib)/utilities.jar:$(MergerLib)/cldr.jar:$(JSCANDIR)/lib/utilities.jar:$(JSCANDIR)/lib/xerces.jar:$(OTHERJARS) $(JScanPackage).$(JVMSCAN) > $@ || (rm ./$@ ; false)
|
||||
|
||||
## Just generate
|
||||
outfiles: $(XML) $(JXML) $(ALLJXMLS) $(ALLJVMXMLS)
|
12
multi/proj/icu4cscan/dtd/icucaps.dtd
Normal file
12
multi/proj/icu4cscan/dtd/icucaps.dtd
Normal file
|
@ -0,0 +1,12 @@
|
|||
<!-- Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. -->
|
||||
|
||||
element capabilities
|
||||
{
|
||||
element feature
|
||||
{
|
||||
attribute type {text },
|
||||
attribute total {text}?,
|
||||
attribute version {text},
|
||||
text
|
||||
}*
|
||||
}
|
8173
multi/proj/icu4cscan/icucaps.xml
Normal file
8173
multi/proj/icu4cscan/icucaps.xml
Normal file
File diff suppressed because it is too large
Load diff
20
multi/proj/icu4cscan/input/java.xml
Normal file
20
multi/proj/icu4cscan/input/java.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008-2012 IBM Corporation and Others, All Rights Reserved. -->
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="java">
|
||||
<names>
|
||||
<name type="full">Java</name>
|
||||
<name type="short">Java</name>
|
||||
</names>
|
||||
<releases>
|
||||
<release version="1.3.1"/>
|
||||
<release version="1.4.2"/>
|
||||
<release version="1.5.0"/>
|
||||
<release version="1.6.0"/>
|
||||
<release version="1.7.0"/>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
25
multi/proj/icu4cscan/input/jlayout-introduction.xml
Normal file
25
multi/proj/icu4cscan/input/jlayout-introduction.xml
Normal file
|
@ -0,0 +1,25 @@
|
|||
<!-- Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. -->
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="java">
|
||||
<releases>
|
||||
<release version="1.4.2">
|
||||
<capabilities>
|
||||
<feature type="layout">
|
||||
Arab Hebr Thai Beng Deva Gujr Knda Mlym Orya Punj Taml Telu Urdu Hans Hant Jpan Latn Cyrl Grek Armn Geor Runr Ogam Thai
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
<release version="1.5.0">
|
||||
<capabilities>
|
||||
<feature type="layout">
|
||||
+Khmr Hang Sinh Tibt
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
||||
|
||||
|
36
multi/proj/icu4cscan/input/junicode-introduction.xml
Normal file
36
multi/proj/icu4cscan/input/junicode-introduction.xml
Normal file
|
@ -0,0 +1,36 @@
|
|||
<!-- Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. -->
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="java">
|
||||
<releases>
|
||||
|
||||
<release version="1.4.2">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="3.0"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
<release version="1.5.0">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
<release version="1.6.0">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
<release version="1.7.0">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="6.0"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
||||
|
||||
|
61
multi/proj/icu4cscan/input/layout-introduction.xml
Normal file
61
multi/proj/icu4cscan/input/layout-introduction.xml
Normal file
|
@ -0,0 +1,61 @@
|
|||
<!-- Copyright (C) 2012 IBM Corporation and Others. All Rights Reserved. -->
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4c">
|
||||
<releases>
|
||||
|
||||
<release version="1.7">
|
||||
<capabilities>
|
||||
<feature type="layout">
|
||||
Arab Hebr Thai Beng Deva Gujr Knda Mlym Orya Punj Taml Telu
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
<release version="2.2">
|
||||
<capabilities>
|
||||
<feature type="layout">
|
||||
+Urdu
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
<release version="2.6">
|
||||
<capabilities>
|
||||
<feature type="layout">
|
||||
+Hans Hant Jpan
|
||||
<!-- CJK Language Variants? -->
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
<release version="3.0">
|
||||
<capabilities>
|
||||
<feature type="layout">
|
||||
+Latn Cyrl Grek Armn Geor Runr Ogam Thai
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
<release version="3.4">
|
||||
<capabilities>
|
||||
<feature type="layout">
|
||||
+Khmr
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
<release version="3.6">
|
||||
<capabilities>
|
||||
<feature type="layout">
|
||||
+Hang Sinh Tibt
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
||||
|
||||
|
27
multi/proj/icu4cscan/jvmxml/1_4_2.xml
Normal file
27
multi/proj/icu4cscan/jvmxml/1_4_2.xml
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="java">
|
||||
<releases>
|
||||
<release version="1.4.2">
|
||||
<capabilities>
|
||||
<feature total="134" type="formatting">
|
||||
<!-- Note: Java locales have different conventions than ICU. -->
|
||||
ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE hi_IN iw iw_IL ja ja_JP ko ko_KR th th_TH th_TH_TH zh zh_CN zh_HK zh_TW be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_CH de_DE de_LU el el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_ZA es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_UY es_VE et et_EE fi fi_FI fr fr_BE fr_CA fr_CH fr_FR fr_LU hr hr_HR hu hu_HU is is_IS it it_CH it_IT lt lt_LT lv lv_LV mk mk_MK nl nl_BE nl_NL no no_NO no_NO_NY pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sh sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_YU sv sv_SE tr tr_TR uk uk_UA en en_US
|
||||
</feature>
|
||||
<feature total="134" type="collation">
|
||||
<!-- Note: Java locales have different conventions than ICU. -->
|
||||
ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE hi_IN iw iw_IL ja ja_JP ko ko_KR th th_TH th_TH_TH zh zh_CN zh_HK zh_TW be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_CH de_DE de_LU el el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_ZA es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_UY es_VE et et_EE fi fi_FI fr fr_BE fr_CA fr_CH fr_FR fr_LU hr hr_HR hu hu_HU is is_IS it it_CH it_IT lt lt_LT lv lv_LV mk mk_MK nl nl_BE nl_NL no no_NO no_NO_NY pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sh sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_YU sv sv_SE tr tr_TR uk uk_UA en en_US
|
||||
</feature>
|
||||
<feature type="layout">Arab Hebr Thai Beng Deva Gujr Knda Mlym Orya Punj Taml Telu Urdu Hans Hant Jpan Latn Cyrl Grek Armn Geor Runr Ogam Thai</feature>
|
||||
<feature type="unicode" version="3.0"/>
|
||||
<feature type="characters">af af_NA af_ZA ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gu gu_IN gv gv_GB ha ha_Latn ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
18
multi/proj/icu4cscan/jvmxml/1_5_0.xml
Normal file
18
multi/proj/icu4cscan/jvmxml/1_5_0.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="java">
|
||||
<releases>
|
||||
<release version="1.5.0">
|
||||
<capabilities>
|
||||
<feature total="135" type="locales">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE hi_IN iw iw_IL ja ja_JP ko ko_KR th th_TH th_TH_TH vi vi_VN zh zh_CN zh_HK zh_TW be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_CH de_DE de_LU el el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_ZA es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_UY es_VE et et_EE fi fi_FI fr fr_BE fr_CA fr_CH fr_FR fr_LU hr hr_HR hu hu_HU is is_IS it it_CH it_IT lt lt_LT lv lv_LV mk mk_MK nl nl_BE nl_NL no no_NO no_NO_NY pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_CS sv sv_SE tr tr_TR uk uk_UA en_US en<!--Note: Java locales have different conventions than ICU.--></feature>
|
||||
<feature total="135" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE hi_IN iw iw_IL ja ja_JP ko ko_KR th th_TH th_TH_TH vi vi_VN zh zh_CN zh_HK zh_TW be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_CH de_DE de_LU el el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_ZA es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_UY es_VE et et_EE fi fi_FI fr fr_BE fr_CA fr_CH fr_FR fr_LU hr hr_HR hu hu_HU is is_IS it it_CH it_IT lt lt_LT lv lv_LV mk mk_MK nl nl_BE nl_NL no no_NO no_NO_NY pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_CS sv sv_SE tr tr_TR uk uk_UA en_US en<!--Note: Java locales have different conventions than ICU.--></feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
18
multi/proj/icu4cscan/jvmxml/1_6_0.xml
Normal file
18
multi/proj/icu4cscan/jvmxml/1_6_0.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2009 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="java">
|
||||
<releases>
|
||||
<release version="1.6.0">
|
||||
<capabilities>
|
||||
<feature total="215" type="formatting">zh th ko iw uk tr sq sk pt pl nl ms mk lv lt kk is hr gu ga fr es cs ca es_PR en_HK pt_PT es_PY ar_YE hu_HU in_ID en_IE hi_IN te_IN ta_IN pa_IN or_IN mr_IN ml_IN kn_IN en_IN ja_JP_JP en_ZA ar_IQ sq_AL it_IT es_AR de_AT_PREEURO sr_RS_Cyrl nl_BE fr_BE en_BE_PREEURO ar_JO ja_JP es_BO pt_BR sv_SE_PREEURO zh_SG sl_SI_PREEURO sk_SK fr_CA es_SV fr_CH es_CL zh_CN ar_KW es_CO es_CR no_NO_NY th_TH ar_LB el_CY_PREEURO mt_MT_EURO cs_CZ tr_TR de_DE_PREEURO zh_TW sk_SK_EURO lt_LT_PREEURO fr_LU_PREEURO de_LU lv_LV_PREEURO es_DO uk_UA ar_LY ar_MA sr_ME es_US es_EC et_EE_PREEURO es_UY mt_MT en_MT cs_CZ_EURO es_ES ca_ES es_VE nl_NL_PREEURO no_NO fi_FI_PREEURO fr_FR en_NZ hu_HU_EURO ar_OM el_GR_PREEURO es_GT en_PH pl_PL_PREEURO vi ja ar te ta sv sr sl sh ru ro pa no mt mr kn it in hu fi et en el de da bg be zh_HK pt_PT_PREEURO es_HN hr_HR en_GB_EURO hu_HU_PREEURO ar_QA ga_IE en_IE_PREEURO iw_IL ar_AE gu_IN bn_IN is_IS it_IT_PREEURO pl_PL_EURO de_AT th_TH_TH en_AU ro_RO sr_BA sr_RS ru_RU nl_BE_PREEURO fr_BE_PREEURO en_BE bg_BG ar_BH ar_SA ar_SD sv_SE en_SG sl_SI da_DK_EURO be_BY sk_SK_PREEURO lt_LT_EURO lv_LV_EURO en_CA it_CH de_CH ar_SY ko_KR kk_KZ sr_CS sh_CS et_EE_EURO el_CY cs_CZ_PREEURO ar_TN de_DE sv_SE_EURO da_DK lt_LT fr_LU de_LU_PREEURO lv_LV ar_DZ mk_MK en_US et_EE ar_EG el_CY_EURO mt_MT_PREEURO es_MX ms_MY es_ES_PREEURO ca_ES_PREEURO sr_RS_Latn vi_VN es_NI nl_NL nb_NO fi_FI fr_FR_PREEURO en_GB el_GR es_PA es_PE pl_PL<!--Note: Java locales have different conventions than ICU.--></feature>
|
||||
<feature total="215" type="collation">zh th ko iw uk tr sq sk pt pl nl ms mk lv lt kk is hr gu ga fr es cs ca es_PR en_HK pt_PT es_PY ar_YE hu_HU in_ID en_IE hi_IN te_IN ta_IN pa_IN or_IN mr_IN ml_IN kn_IN en_IN ja_JP_JP en_ZA ar_IQ sq_AL it_IT es_AR de_AT_PREEURO sr_RS_Cyrl nl_BE fr_BE en_BE_PREEURO ar_JO ja_JP es_BO pt_BR sv_SE_PREEURO zh_SG sl_SI_PREEURO sk_SK fr_CA es_SV fr_CH es_CL zh_CN ar_KW es_CO es_CR no_NO_NY th_TH ar_LB el_CY_PREEURO mt_MT_EURO cs_CZ tr_TR de_DE_PREEURO zh_TW sk_SK_EURO lt_LT_PREEURO fr_LU_PREEURO de_LU lv_LV_PREEURO es_DO uk_UA ar_LY ar_MA sr_ME es_US es_EC et_EE_PREEURO es_UY mt_MT en_MT cs_CZ_EURO es_ES ca_ES es_VE nl_NL_PREEURO no_NO fi_FI_PREEURO fr_FR en_NZ hu_HU_EURO ar_OM el_GR_PREEURO es_GT en_PH pl_PL_PREEURO vi ja ar te ta sv sr sl sh ru ro pa no mt mr kn it in hu fi et en el de da bg be zh_HK pt_PT_PREEURO es_HN hr_HR en_GB_EURO hu_HU_PREEURO ar_QA ga_IE en_IE_PREEURO iw_IL ar_AE gu_IN bn_IN is_IS it_IT_PREEURO pl_PL_EURO de_AT th_TH_TH en_AU ro_RO sr_BA sr_RS ru_RU nl_BE_PREEURO fr_BE_PREEURO en_BE bg_BG ar_BH ar_SA ar_SD sv_SE en_SG sl_SI da_DK_EURO be_BY sk_SK_PREEURO lt_LT_EURO lv_LV_EURO en_CA it_CH de_CH ar_SY ko_KR kk_KZ sr_CS sh_CS et_EE_EURO el_CY cs_CZ_PREEURO ar_TN de_DE sv_SE_EURO da_DK lt_LT fr_LU de_LU_PREEURO lv_LV ar_DZ mk_MK en_US et_EE ar_EG el_CY_EURO mt_MT_PREEURO es_MX ms_MY es_ES_PREEURO ca_ES_PREEURO sr_RS_Latn vi_VN es_NI nl_NL nb_NO fi_FI fr_FR_PREEURO en_GB el_GR es_PA es_PE pl_PL<!--Note: Java locales have different conventions than ICU.--></feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
24
multi/proj/icu4cscan/jvmxml/1_6_0_26.xml
Normal file
24
multi/proj/icu4cscan/jvmxml/1_6_0_26.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<!-- Copyright (c) 2012 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="java">
|
||||
<releases>
|
||||
<release version="1.6.0">
|
||||
<capabilities>
|
||||
<feature total="152" type="formatting">
|
||||
<!-- Note: Java locales have different conventions than ICU. -->
|
||||
ja_JP es_PE en ja_JP_JP es_PA sr_BA mk es_GT ar_AE no_NO sq_AL bg ar_IQ ar_YE hu pt_PT el_CY ar_QA mk_MK sv de_CH en_US fi_FI is cs en_MT sl_SI sk_SK it tr_TR zh th ar_SA no en_GB sr_CS lt ro en_NZ no_NO_NY lt_LT es_NI nl ga_IE fr_BE es_ES ar_LB ko fr_CA et_EE ar_KW sr_RS es_US es_MX ar_SD in_ID ru lv es_UY lv_LV iw pt_BR ar_SY hr et es_DO fr_CH hi_IN es_VE ar_BH en_PH ar_TN fi de_AT es nl_NL es_EC zh_TW ar_JO be is_IS es_CO es_CR es_CL ar_EG en_ZA th_TH el_GR it_IT ca hu_HU fr en_IE uk_UA pl_PL fr_LU nl_BE en_IN ca_ES ar_MA es_BO en_AU sr zh_SG pt uk es_SV ru_RU ko_KR vi ar_DZ vi_VN sr_ME sq ar_LY ar zh_CN be_BY zh_HK ja iw_IL bg_BG in mt_MT es_PY sl fr_FR cs_CZ it_CH ro_RO es_PR en_CA de_DE ga de_LU de es_AR sk ms_MY hr_HR en_SG da mt pl ar_OM tr th_TH_TH el ms sv_SE da_DK es_HN
|
||||
</feature>
|
||||
<feature total="152" type="collation">
|
||||
<!-- Note: Java locales have different conventions than ICU. -->
|
||||
ja_JP es_PE en ja_JP_JP es_PA sr_BA mk es_GT ar_AE no_NO sq_AL bg ar_IQ ar_YE hu pt_PT el_CY ar_QA mk_MK sv de_CH en_US fi_FI is cs en_MT sl_SI sk_SK it tr_TR zh th ar_SA no en_GB sr_CS lt ro en_NZ no_NO_NY lt_LT es_NI nl ga_IE fr_BE es_ES ar_LB ko fr_CA et_EE ar_KW sr_RS es_US es_MX ar_SD in_ID ru lv es_UY lv_LV iw pt_BR ar_SY hr et es_DO fr_CH hi_IN es_VE ar_BH en_PH ar_TN fi de_AT es nl_NL es_EC zh_TW ar_JO be is_IS es_CO es_CR es_CL ar_EG en_ZA th_TH el_GR it_IT ca hu_HU fr en_IE uk_UA pl_PL fr_LU nl_BE en_IN ca_ES ar_MA es_BO en_AU sr zh_SG pt uk es_SV ru_RU ko_KR vi ar_DZ vi_VN sr_ME sq ar_LY ar zh_CN be_BY zh_HK ja iw_IL bg_BG in mt_MT es_PY sl fr_FR cs_CZ it_CH ro_RO es_PR en_CA de_DE ga de_LU de es_AR sk ms_MY hr_HR en_SG da mt pl ar_OM tr th_TH_TH el ms sv_SE da_DK es_HN
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
24
multi/proj/icu4cscan/jvmxml/1_7_0.xml
Normal file
24
multi/proj/icu4cscan/jvmxml/1_7_0.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<!-- Copyright (c) 2012 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="java">
|
||||
<releases>
|
||||
<release version="1.7.0">
|
||||
<capabilities>
|
||||
<feature total="156" type="formatting">
|
||||
<!-- Note: Java locales have different conventions than ICU. -->
|
||||
ms_MY ar_QA is_IS fi_FI pl en_MT it_CH nl_BE ar_SA ar_IQ es_PR es_CL fi de_AT da en_GB es_PA sr ar_YE mk_MK mk en_CA vi_VN nl_NL es_US zh_CN es_HN en_US fr th ar ar_MA lv de in_ID hr en_ZA ko_KR ar_TN in ja sr_RS be_BY zh_TW ar_SD pt is ja_JP_JP_#u-ca-japanese es_BO ar_DZ ms es_AR ar_AE fr_CA sl es lt_LT sr_ME_#Latn ar_SY ru_RU fr_BE es_ES bg iw_IL sv en iw da_DK es_CR zh_HK zh ca_ES th_TH uk_UA es_DO es_VE pl_PL ar_LY ar_JO it uk hu_HU ga es_GT es_PY bg_BG hr_HR sr_BA_#Latn ro_RO fr_LU no lt en_SG es_EC sr_BA es_NI sk ru mt es_SV nl hi_IN et el_GR sl_SI it_IT ja_JP de_LU fr_CH mt_MT ar_BH sq vi sr_ME pt_BR no_NO el de_CH zh_SG ar_KW ar_EG ga_IE es_PE cs_CZ tr_TR cs es_UY en_IE en_IN ar_OM sr_CS ca be sr__#Latn ko sq_AL pt_PT lv_LV sr_RS_#Latn sk_SK es_MX en_AU no_NO_NY en_NZ sv_SE ro ar_LB de_DE th_TH_TH_#u-nu-thai tr es_CO en_PH et_EE el_CY hu fr_FR
|
||||
</feature>
|
||||
<feature total="156" type="collation">
|
||||
<!-- Note: Java locales have different conventions than ICU. -->
|
||||
ms_MY ar_QA is_IS fi_FI pl en_MT it_CH nl_BE ar_SA ar_IQ es_PR es_CL fi de_AT da en_GB es_PA sr ar_YE mk_MK mk en_CA vi_VN nl_NL es_US zh_CN es_HN en_US fr th ar ar_MA lv de in_ID hr en_ZA ko_KR ar_TN in ja sr_RS be_BY zh_TW ar_SD pt is ja_JP_JP_#u-ca-japanese es_BO ar_DZ ms es_AR ar_AE fr_CA sl es lt_LT sr_ME_#Latn ar_SY ru_RU fr_BE es_ES bg iw_IL sv en iw da_DK es_CR zh_HK zh ca_ES th_TH uk_UA es_DO es_VE pl_PL ar_LY ar_JO it uk hu_HU ga es_GT es_PY bg_BG hr_HR sr_BA_#Latn ro_RO fr_LU no lt en_SG es_EC sr_BA es_NI sk ru mt es_SV nl hi_IN et el_GR sl_SI it_IT ja_JP de_LU fr_CH mt_MT ar_BH sq vi sr_ME pt_BR no_NO el de_CH zh_SG ar_KW ar_EG ga_IE es_PE cs_CZ tr_TR cs es_UY en_IE en_IN ar_OM sr_CS ca be sr__#Latn ko sq_AL pt_PT lv_LV sr_RS_#Latn sk_SK es_MX en_AU no_NO_NY en_NZ sv_SE ro ar_LB de_DE th_TH_TH_#u-nu-thai tr es_CO en_PH et_EE el_CY hu fr_FR
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
19
multi/proj/icu4cscan/jxml/2_2.xml
Normal file
19
multi/proj/icu4cscan/jxml/2_2.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="2.2">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="3.2"/>
|
||||
<feature type="formatting"/>
|
||||
<feature type="collation"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
19
multi/proj/icu4cscan/jxml/2_4.xml
Normal file
19
multi/proj/icu4cscan/jxml/2_4.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="2.4">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="3.2"/>
|
||||
<feature type="formatting"/>
|
||||
<feature type="collation"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
19
multi/proj/icu4cscan/jxml/2_6.xml
Normal file
19
multi/proj/icu4cscan/jxml/2_6.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="2.6">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0"/>
|
||||
<feature type="formatting"/>
|
||||
<feature type="collation"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
19
multi/proj/icu4cscan/jxml/2_6_1.xml
Normal file
19
multi/proj/icu4cscan/jxml/2_6_1.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="2.6.1">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0"/>
|
||||
<feature type="formatting"/>
|
||||
<feature type="collation"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/2_8.xml
Normal file
20
multi/proj/icu4cscan/jxml/2_8.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="2.8">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0"/>
|
||||
<feature type="uca" version="4.0"/>
|
||||
<feature type="formatting"/>
|
||||
<feature type="collation"/>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
40
multi/proj/icu4cscan/jxml/3_0.xml
Normal file
40
multi/proj/icu4cscan/jxml/3_0.xml
Normal file
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.0">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0.1"/>
|
||||
<feature type="uca" version="4.0"/>
|
||||
<feature total="219" type="formatting">
|
||||
af af_ZA am am_ET ar ar_AE
|
||||
ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM
|
||||
ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG bn bn_IN ca
|
||||
ca_ES cs cs_CZ da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR
|
||||
en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ
|
||||
en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO
|
||||
es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA
|
||||
es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa
|
||||
fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga
|
||||
ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu
|
||||
hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja
|
||||
ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt
|
||||
lt_LT lv lv_LV mk mk_MK mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO
|
||||
nl nl_BE nl_NL nn nn_NO om om_ET om_KE pa pa_IN pl pl_PL ps ps_AF
|
||||
pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_YU sk sk_SK sl sl_SI
|
||||
so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_YU sv sv_FI sv_SE sw
|
||||
sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk
|
||||
uk_UA vi vi_VN zh zh_CN zh_HK zh_MO zh_SG zh_TW
|
||||
</feature>
|
||||
|
||||
<feature total="59" type="collation">ar be bg ca cs da de el en en_BE eo es et fa fa_AF fi fo fr gu he hi hr hu is it ja kk kl kn ko lt lv mk mr mt nb nn pa pl ps ro ru sh sk sl sq sr sv ta te th tr uk vi zh zh_HK zh_Hant zh_MO zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/3_2.xml
Normal file
20
multi/proj/icu4cscan/jxml/3_2.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.2">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0.1"/>
|
||||
<feature type="uca" version="4.0"/>
|
||||
<feature total="230" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_YU sr_Latn sr_Latn_YU sr_YU sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="62" type="collation">ar be bg ca cs da de el en en_BE eo es et fa fa_AF fi fo fr gu he hi hr hu is it ja kk kl kn ko lt lv mk ml mr mt nb nn om or pa pl ps ro ru sh sk sl sq sr sv ta te th tr uk vi zh zh_HK zh_Hant zh_MO zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/3_4.xml
Normal file
20
multi/proj/icu4cscan/jxml/3_4.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.4">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.1"/>
|
||||
<feature type="uca" version="4.1"/>
|
||||
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="197" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/3_4_1.xml
Normal file
20
multi/proj/icu4cscan/jxml/3_4_1.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.4">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.1"/>
|
||||
<feature type="uca" version="4.1"/>
|
||||
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="197" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/3_4_2.xml
Normal file
20
multi/proj/icu4cscan/jxml/3_4_2.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.4.2">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.1"/>
|
||||
<feature type="uca" version="4.1"/>
|
||||
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="197" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/3_4_3.xml
Normal file
20
multi/proj/icu4cscan/jxml/3_4_3.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.4.3">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.1"/>
|
||||
<feature type="uca" version="4.1"/>
|
||||
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="201" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/3_4_4.xml
Normal file
20
multi/proj/icu4cscan/jxml/3_4_4.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.4.3">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.1"/>
|
||||
<feature type="uca" version="4.1"/>
|
||||
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="201" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/3_4_5.xml
Normal file
20
multi/proj/icu4cscan/jxml/3_4_5.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.4.5">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.1"/>
|
||||
<feature type="uca" version="4.1"/>
|
||||
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="201" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
20
multi/proj/icu4cscan/jxml/3_6.xml
Normal file
20
multi/proj/icu4cscan/jxml/3_6.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2009 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.6">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="5.0"/>
|
||||
<feature type="uca" version="5.0"/>
|
||||
<feature total="245" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="205" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn ca ca_ES cs cs_CZ da da_DK de de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
21
multi/proj/icu4cscan/jxml/3_8.xml
Normal file
21
multi/proj/icu4cscan/jxml/3_8.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.8">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="5.0"/>
|
||||
<feature type="uca" version="5.0"/>
|
||||
<feature type="tz" version="2007g"/>
|
||||
<feature total="266" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC ga ga_IE gl gl_ES gu gu_IN gv gv_GB haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="204" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
21
multi/proj/icu4cscan/jxml/3_8_1.xml
Normal file
21
multi/proj/icu4cscan/jxml/3_8_1.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="3.8.1">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="5.0"/>
|
||||
<feature type="uca" version="5.0"/>
|
||||
<feature type="tz" version="2007j"/>
|
||||
<feature total="266" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC ga ga_IE gl gl_ES gu gu_IN gv gv_GB haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="204" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
21
multi/proj/icu4cscan/jxml/4_0.xml
Normal file
21
multi/proj/icu4cscan/jxml/4_0.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="4.0">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="5.1"/>
|
||||
<feature type="uca" version="5.1"/>
|
||||
<feature type="tz" version="2008c"/>
|
||||
<feature total="282" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gu gu_IN gv gv_GB ha ha_Latn ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="211" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
21
multi/proj/icu4cscan/jxml/4_0_1.xml
Normal file
21
multi/proj/icu4cscan/jxml/4_0_1.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2009 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="4.0.1">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="5.1"/>
|
||||
<feature type="uca" version="5.1"/>
|
||||
<feature type="tz" version="2008i"/>
|
||||
<feature total="282" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gu gu_IN gv gv_GB ha ha_Latn ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="211" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
21
multi/proj/icu4cscan/jxml/4_1_1.xml
Normal file
21
multi/proj/icu4cscan/jxml/4_1_1.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="4.1.1">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="5.1"/>
|
||||
<feature type="uca" version="5.1"/>
|
||||
<feature type="tz" version="2008f"/>
|
||||
<feature total="282" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gu gu_IN gv gv_GB ha ha_Latn ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
<feature total="211" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
21
multi/proj/icu4cscan/jxml/4_2.xml
Normal file
21
multi/proj/icu4cscan/jxml/4_2.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2009 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="4.2">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="5.1"/>
|
||||
<feature type="uca" version="5.1"/>
|
||||
<feature type="tz" version="2009g"/>
|
||||
<feature total="292" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN bo bo_CN bo_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gsw gsw_CH gu gu_IN gv gv_GB ha ha_Latn ha_Latn_GH ha_Latn_NE ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_MD ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW zu zu_ZA</feature>
|
||||
<feature total="220" type="collation">af af_NA af_ZA ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
21
multi/proj/icu4cscan/jxml/50_1.xml
Normal file
21
multi/proj/icu4cscan/jxml/50_1.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (c) 2012 IBM Corporation and Others, All Rights Reserved. -->
|
||||
|
||||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4j">
|
||||
<releases>
|
||||
<release version="50.1">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="6.2"/>
|
||||
<feature type="uca" version="6.2"/>
|
||||
<feature type="tz" version="2012h"/>
|
||||
<feature total="593" type="formatting">af af_NA af_ZA agq agq_CM ak ak_GH am am_ET ar ar_001 ar_AE ar_BH ar_DJ ar_DZ ar_EG ar_EH ar_ER ar_IL ar_IQ ar_JO ar_KM ar_KW ar_LB ar_LY ar_MA ar_MR ar_OM ar_PS ar_QA ar_SA ar_SD ar_SO ar_SY ar_TD ar_TN ar_YE as as_IN asa asa_TZ az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ bas bas_CM be be_BY bem bem_ZM bez bez_TZ bg bg_BG bm bm_ML bn bn_BD bn_IN bo bo_CN bo_IN br br_FR brx brx_IN bs bs_Cyrl bs_Cyrl_BA bs_Latn bs_Latn_BA ca ca_AD ca_ES cgg cgg_UG chr chr_US cs cs_CZ cy cy_GB da da_DK dav dav_KE de de_AT de_BE de_CH de_DE de_LI de_LU dje dje_NE dua dua_CM dyo dyo_SN dz dz_BT ebu ebu_KE ee ee_GH ee_TG el el_CY el_GR en en_150 en_AG en_AS en_AU en_BB en_BE en_BM en_BS en_BW en_BZ en_CA en_CM en_DM en_FJ en_FM en_GB en_GD en_GG en_GH en_GI en_GM en_GU en_GY en_HK en_IE en_IM en_IN en_JE en_JM en_KE en_KI en_KN en_KY en_LC en_LR en_LS en_MG en_MH en_MP en_MT en_MU en_MW en_NA en_NG en_NZ en_PG en_PH en_PK en_PR en_PW en_SB en_SC en_SG en_SL en_SS en_SZ en_TC en_TO en_TT en_TZ en_UG en_UM en_US en_US_POSIX en_VC en_VG en_VI en_VU en_WS en_ZA en_ZM en_ZW eo es es_419 es_AR es_BO es_CL es_CO es_CR es_CU es_DO es_EA es_EC es_ES es_GQ es_GT es_HN es_IC es_MX es_NI es_PA es_PE es_PH es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES ewo ewo_CM fa fa_AF fa_IR ff ff_SN fi fi_FI fil fil_PH fo fo_FO fr fr_BE fr_BF fr_BI fr_BJ fr_BL fr_CA fr_CD fr_CF fr_CG fr_CH fr_CI fr_CM fr_DJ fr_DZ fr_FR fr_GA fr_GF fr_GN fr_GP fr_GQ fr_HT fr_KM fr_LU fr_MA fr_MC fr_MF fr_MG fr_ML fr_MQ fr_MR fr_MU fr_NC fr_NE fr_PF fr_RE fr_RW fr_SC fr_SN fr_SY fr_TD fr_TG fr_TN fr_VU fr_YT ga ga_IE gl gl_ES gsw gsw_CH gu gu_IN guz guz_KE gv gv_GB ha ha_Latn ha_Latn_GH ha_Latn_NE ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_BA hr_HR hu hu_HU hy hy_AM id id_ID ig ig_NG ii ii_CN is is_IS it it_CH it_IT it_SM ja ja_JP jgo jgo_CM jmc jmc_TZ ka ka_GE kab kab_DZ kam kam_KE kde kde_TZ kea kea_CV khq khq_ML ki ki_KE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL kln kln_KE km km_KH kn kn_IN ko ko_KP ko_KR kok kok_IN ks ks_Arab ks_Arab_IN ksb ksb_TZ ksf ksf_CM kw kw_GB lag lag_TZ lg lg_UG ln ln_AO ln_CD ln_CF ln_CG lo lo_LA lt lt_LT lu lu_CD luo luo_KE luy luy_KE lv lv_LV mas mas_KE mas_TZ mer mer_KE mfe mfe_MU mg mg_MG mgh mgh_MZ mgo mgo_CM mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY ms_SG mt mt_MT mua mua_CM my my_MM naq naq_NA nb nb_NO nd nd_ZW ne ne_IN ne_NP nl nl_AW nl_BE nl_CW nl_NL nl_SR nl_SX nmg nmg_CM nn nn_NO nus nus_SD nyn nyn_UG om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_AO pt_BR pt_CV pt_GW pt_MO pt_MZ pt_PT pt_ST pt_TL rm rm_CH rn rn_BI ro ro_MD ro_RO rof rof_TZ ru ru_BY ru_KG ru_KZ ru_MD ru_RU ru_UA rw rw_RW rwk rwk_TZ saq saq_KE sbp sbp_TZ seh seh_MZ ses ses_ML sg sg_CF shi shi_Latn shi_Latn_MA shi_Tfng shi_Tfng_MA si si_LK sk sk_SK sl sl_SI sn sn_ZW so so_DJ so_ET so_KE so_SO sq sq_AL sq_MK sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_AX sv_FI sv_SE sw sw_KE sw_TZ sw_UG swc swc_CD ta ta_IN ta_LK ta_MY ta_SG te te_IN teo teo_KE teo_UG th th_TH ti ti_ER ti_ET to to_TO tr tr_CY tr_TR twq twq_NE tzm tzm_Latn tzm_Latn_MA uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vai vai_Latn vai_Latn_LR vai_Vaii vai_Vaii_LR vi vi_VN vun vun_TZ xog xog_UG yav yav_CM yo yo_NG zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW zu zu_ZA</feature>
|
||||
<feature total="401" type="collation">af af_NA af_ZA ar ar_001 ar_AE ar_BH ar_DJ ar_DZ ar_EG ar_EH ar_ER ar_IL ar_IQ ar_JO ar_KM ar_KW ar_LB ar_LY ar_MA ar_MR ar_OM ar_PS ar_QA ar_SA ar_SD ar_SO ar_SY ar_TD ar_TN ar_YE as as_IN az az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN bs bs_Cyrl bs_Cyrl_BA bs_Latn bs_Latn_BA ca ca_AD ca_ES chr chr_US cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU dz ee ee_GH ee_TG el el_CY el_GR en en_150 en_AG en_AS en_AU en_BB en_BE en_BM en_BS en_BW en_BZ en_CA en_CM en_DM en_FJ en_FM en_GB en_GD en_GG en_GH en_GI en_GM en_GU en_HK en_IE en_IM en_IN en_JE en_JM en_KE en_KI en_KN en_KY en_LC en_LR en_LS en_MG en_MH en_MP en_MT en_MU en_MW en_NA en_NG en_NZ en_PG en_PH en_PK en_PR en_PW en_SB en_SC en_SG en_SL en_SS en_TC en_TO en_TT en_TZ en_UG en_UM en_US en_US_POSIX en_VC en_VG en_VI en_VU en_WS en_ZA en_ZM en_ZW eo es es_419 es_AR es_BO es_CL es_CO es_CR es_CU es_DO es_EA es_EC es_ES es_GQ es_GT es_HN es_IC es_MX es_NI es_PA es_PE es_PH es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fil fil_PH fo fo_FO fr fr_BE fr_BF fr_BI fr_BJ fr_BL fr_CA fr_CD fr_CF fr_CG fr_CH fr_CI fr_CM fr_DJ fr_DZ fr_FR fr_GA fr_GN fr_GP fr_GQ fr_HT fr_KM fr_LU fr_MA fr_MC fr_MF fr_MG fr_ML fr_MQ fr_MR fr_MU fr_NC fr_NE fr_PF fr_RE fr_RW fr_SC fr_SN fr_SY fr_TD fr_TG fr_TN fr_VU ga ga_IE gu gu_IN ha ha_Latn ha_Latn_GH ha_Latn_NE ha_Latn_NG haw he he_IL hi hi_IN hr hr_BA hr_HR hu hu_HU hy hy_AM id id_ID ig ig_NG is is_IS it it_CH it_IT it_SM ja ja_JP ka ka_GE kk kk_KZ kl kl_GL km km_KH kn kn_IN ko ko_KP ko_KR kok kok_IN ln ln_AO ln_CD ln_CF ln_CG lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY ms_SG mt mt_MT my my_MM nb nb_NO nl nl_AW nl_BE nl_CW nl_NL nl_SR nl_SX nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_AO pt_BR pt_CV pt_GW pt_MO pt_MZ pt_PT pt_ST pt_TL ro ro_MD ro_RO ru ru_BY ru_KG ru_KZ ru_MD ru_RU ru_UA si si_LK sk sk_SK sl sl_SI sq sq_AL sq_MK sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_AX sv_FI sv_SE sw sw_KE sw_TZ sw_UG ta ta_IN ta_LK ta_MY ta_SG te te_IN th th_TH to to_TO tr tr_CY tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN yo yo_NG zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW zu zu_ZA</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
3
multi/proj/icu4cscan/old-xmls.tar.bz2
Normal file
3
multi/proj/icu4cscan/old-xmls.tar.bz2
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:215e9cc66b7962f53a08db564558553366f06f64eb6d8508a3ff2dac47c90cb6
|
||||
size 9713
|
3
multi/proj/icu4cscan/readme.txt
Normal file
3
multi/proj/icu4cscan/readme.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Copyright (C) 2012 IBM Corporation and Others. All Rights Reserved.
|
||||
|
||||
Note: this is a bit of a mess right now.
|
546
multi/proj/icu4cscan/testxml.cpp
Normal file
546
multi/proj/icu4cscan/testxml.cpp
Normal file
|
@ -0,0 +1,546 @@
|
|||
// Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
|
||||
#include <ostream>
|
||||
#include "xmlout.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "uoptions.h"
|
||||
#include "unicode/putil.h"
|
||||
#include "unicode/ucol.h"
|
||||
#include "unicode/ucal.h"
|
||||
#include "unicode/uchar.h"
|
||||
#include "unicode/ures.h"
|
||||
#include "unicode/udat.h"
|
||||
#include "unicode/ustring.h"
|
||||
#if (U_ICU_VERSION_MAJOR_NUM > 2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>5))
|
||||
#include "unicode/uclean.h"
|
||||
#endif
|
||||
|
||||
|
||||
static char *progName;
|
||||
static UOption options[]={
|
||||
UOPTION_HELP_H, /* 0 */
|
||||
UOPTION_HELP_QUESTION_MARK, /* 1 */
|
||||
UOPTION_VERBOSE, /* 2 */
|
||||
UOPTION_ICUDATADIR, /* 3 */
|
||||
UOPTION_DESTDIR, /* 4 */
|
||||
UOPTION_COPYRIGHT, /* 5 */
|
||||
};
|
||||
|
||||
const char *u_errorNameShort(UErrorCode code) {
|
||||
switch(code) {
|
||||
case U_ZERO_ERROR: return "ok";
|
||||
case U_MISSING_RESOURCE_ERROR: return "missing";
|
||||
default: return u_errorName(code);
|
||||
}
|
||||
}
|
||||
|
||||
void usageAndDie(int retCode) {
|
||||
printf("Usage: %s [-v] [-options] -o output-file dictionary-file\n", progName);
|
||||
printf("\tRead in word list and write out compact trie dictionary\n"
|
||||
"options:\n"
|
||||
"\t-h or -? or --help this usage text\n"
|
||||
"\t-V or --version show a version message\n"
|
||||
"\t-c or --copyright include a copyright notice\n"
|
||||
"\t-v or --verbose turn on verbose output\n"
|
||||
"\t-i or --icudatadir directory for locating any needed intermediate data files,\n"
|
||||
"\t followed by path, defaults to %s\n"
|
||||
"\t-d or --destdir destination directory, followed by the path\n",
|
||||
u_getDataDirectory());
|
||||
exit (retCode);
|
||||
}
|
||||
|
||||
/*U_CAPI void U_EXPORT2*/
|
||||
static void _versionFromUString(UVersionInfo versionArray, const UChar *versionString) {
|
||||
if(versionArray==NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(versionString!=NULL) {
|
||||
char verchars[U_MAX_VERSION_LENGTH+1];
|
||||
u_UCharsToChars(versionString, verchars, U_MAX_VERSION_LENGTH);
|
||||
u_versionFromString(versionArray, verchars);
|
||||
}
|
||||
}
|
||||
|
||||
/*U_CAPI void U_EXPORT2*/
|
||||
static void _getCLDRVersionDirect(UVersionInfo versionArray, UErrorCode *status) {
|
||||
UResourceBundle *resindx;
|
||||
resindx = ures_openDirect(NULL, "supplementalData", status);
|
||||
if(!U_FAILURE(*status)) {
|
||||
// fprintf(stderr, "Err: could not open res_index, %s\n", u_errorName(status));
|
||||
// fflush(stderr);
|
||||
// } else {
|
||||
const UChar *cldrver;
|
||||
int32_t len;
|
||||
cldrver = ures_getStringByKey(resindx, "cldrVersion", &len, status);
|
||||
if(!U_FAILURE(*status)) {
|
||||
// fprintf(stderr, "ERR: could not load CLDRVersion key: %s\n", u_errorName(*status));
|
||||
// fflush(stderr);
|
||||
// } else {
|
||||
// UVersionInfo cldrVersion;
|
||||
_versionFromUString(versionArray, cldrver);
|
||||
// strcpy(tmp, "type=\"cldr\" version=\"");
|
||||
// u_versionToString(cldrVersion, tmp+strlen(tmp));
|
||||
// strcat(tmp, "\"");
|
||||
// XMLElement icuData(xf, "feature", tmp, TRUE);
|
||||
}
|
||||
ures_close(resindx);
|
||||
}
|
||||
}
|
||||
|
||||
/*U_CAPI void U_EXPORT2*/
|
||||
static void _getCLDRVersionOld(UVersionInfo versionArray, UErrorCode *status) {
|
||||
UResourceBundle *resindx;
|
||||
resindx = ures_openDirect(NULL, "res_index", status);
|
||||
if(!U_FAILURE(*status)) {
|
||||
// fprintf(stderr, "Err: could not open res_index, %s\n", u_errorName(status));
|
||||
// fflush(stderr);
|
||||
// } else {
|
||||
const UChar *cldrver;
|
||||
int32_t len;
|
||||
cldrver = ures_getStringByKey(resindx, "CLDRVersion", &len, status);
|
||||
if(!U_FAILURE(*status)) {
|
||||
// fprintf(stderr, "ERR: could not load CLDRVersion key: %s\n", u_errorName(*status));
|
||||
// fflush(stderr);
|
||||
// } else {
|
||||
// UVersionInfo cldrVersion;
|
||||
_versionFromUString(versionArray, cldrver);
|
||||
// strcpy(tmp, "type=\"cldr\" version=\"");
|
||||
// u_versionToString(cldrVersion, tmp+strlen(tmp));
|
||||
// strcat(tmp, "\"");
|
||||
// XMLElement icuData(xf, "feature", tmp, TRUE);
|
||||
}
|
||||
ures_close(resindx);
|
||||
}
|
||||
}
|
||||
|
||||
int could_open(const char *locale, char *comments) {
|
||||
char tmp[200];
|
||||
UResourceBundle *rb = NULL;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
rb = ures_open(NULL, locale, &status);
|
||||
if(U_FAILURE(status)) {
|
||||
sprintf(tmp, " open:%s", u_errorName(status));
|
||||
strcat(comments, tmp);
|
||||
return 0;
|
||||
} else {
|
||||
ures_close(rb);
|
||||
sprintf(tmp, " open:%s", u_errorNameShort(status));
|
||||
strcat(comments, tmp);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
int col_could_open(const char *locale, char *comments) {
|
||||
char tmp[200];
|
||||
UCollator *rb = NULL;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
rb = ucol_open(locale, &status);
|
||||
if(U_FAILURE(status)) {
|
||||
sprintf(tmp, " open:%s", u_errorName(status));
|
||||
/*strcat(comments, tmp); */
|
||||
return 0;
|
||||
} else {
|
||||
ucol_close(rb);
|
||||
sprintf(tmp, " open:%s", u_errorNameShort(status));
|
||||
/* strcat(comments, tmp); */
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
const char *UDateFormatSymbolType_name(UDateFormatSymbolType i) {
|
||||
switch(i) {
|
||||
case UDAT_ERAS: return "UDAT_ERAS"; break;
|
||||
/** The month names, for example February */
|
||||
case UDAT_MONTHS: return "UDAT_MONTHS"; break;
|
||||
/** The short month names, for example Feb. */
|
||||
case UDAT_SHORT_MONTHS: return "UDAT_SHORT_MONTHS"; break;
|
||||
/** The weekday names, for example Monday */
|
||||
case UDAT_WEEKDAYS: return "UDAT_WEEKDAYS"; break;
|
||||
/** The short weekday names, for example Mon. */
|
||||
case UDAT_SHORT_WEEKDAYS: return "UDAT_SHORT_WEEKDAYS"; break;
|
||||
/** The AM/PM names, for example AM */
|
||||
case UDAT_AM_PMS: return "UDAT_AM_PMS"; break;
|
||||
/** The localized characters */
|
||||
case UDAT_LOCALIZED_CHARS: return "UDAT_LOCALIZED_CHARS"; break;
|
||||
/** The long era names, for example Anno Domini */
|
||||
#if U_ICU_VERSION_MAJOR_NUM>3 || U_ICU_VERSION_MAJOR_NUM>3
|
||||
case UDAT_ERA_NAMES: return "UDAT_ERA_NAMES"; break;
|
||||
#endif
|
||||
#if U_ICU_VERSION_MAJOR_NUM>3 || U_ICU_VERSION_MAJOR_NUM>3
|
||||
/** The narrow month names, for example F */
|
||||
case UDAT_NARROW_MONTHS: return "UDAT_NARROW_MONTHS"; break;
|
||||
/** The narrow weekday names, for example N */
|
||||
case UDAT_NARROW_WEEKDAYS: return "UDAT_NARROW_WEEKDAYS"; break;
|
||||
/** Standalone context versions of months */
|
||||
case UDAT_STANDALONE_MONTHS: return "UDAT_STANDALONE_MONTHS"; break;
|
||||
case UDAT_STANDALONE_SHORT_MONTHS: return "UDAT_STANDALONE_SHORT_MONTHS"; break;
|
||||
case UDAT_STANDALONE_NARROW_MONTHS: return "UDAT_STANDALONE_NARROW_MONTHS"; break;
|
||||
/** Standalone context versions of weekdays */
|
||||
case UDAT_STANDALONE_WEEKDAYS: return "UDAT_STANDALONE_WEEKDAYS"; break;
|
||||
case UDAT_STANDALONE_SHORT_WEEKDAYS: return "UDAT_STANDALONE_SHORT_WEEKDAYS"; break;
|
||||
case UDAT_STANDALONE_NARROW_WEEKDAYS: return "UDAT_STANDALONE_NARROW_WEEKDAYS"; break;
|
||||
#endif
|
||||
#if U_ICU_VERSION_MAJOR_NUM>3 || U_ICU_VERSION_MAJOR_NUM>4
|
||||
/** The quarters, for example 1st Quarter */
|
||||
case UDAT_QUARTERS: return "UDAT_QUARTERS"; break;
|
||||
/** The short quarter names, for example Q1 */
|
||||
case UDAT_SHORT_QUARTERS: return "UDAT_SHORT_QUARTERS"; break;
|
||||
/** Standalone context versions of quarters */
|
||||
case UDAT_STANDALONE_QUARTERS: return "UDAT_STANDALONE_QUARTERS"; break;
|
||||
case UDAT_STANDALONE_SHORT_QUARTERS: return "UDAT_STANDALONE_SHORT_QUARTERS"; break;
|
||||
#endif
|
||||
}
|
||||
return "<Unknown>";
|
||||
}
|
||||
|
||||
|
||||
UDateFormatSymbolType scanArray[] = {
|
||||
UDAT_ERAS,
|
||||
/** The month names, for example February */
|
||||
UDAT_MONTHS,
|
||||
/** The short month names, for example Feb. */
|
||||
UDAT_SHORT_MONTHS,
|
||||
/** The weekday names, for example Monday */
|
||||
UDAT_WEEKDAYS,
|
||||
/** The short weekday names, for example Mon. */
|
||||
UDAT_SHORT_WEEKDAYS,
|
||||
/** The AM/PM names, for example AM */
|
||||
// UDAT_AM_PMS,
|
||||
/** The localized characters */
|
||||
// UDAT_LOCALIZED_CHARS,
|
||||
/** The long era names, for example Anno Domini */
|
||||
// UDAT_ERA_NAMES,
|
||||
/** The narrow month names, for example F */
|
||||
// UDAT_NARROW_MONTHS,
|
||||
};
|
||||
|
||||
int *starts = NULL;
|
||||
|
||||
UChar ***rootdata = NULL;
|
||||
|
||||
void initroot(UErrorCode *status) {
|
||||
UDateFormat *fmt;
|
||||
fmt = udat_open(UDAT_DEFAULT, UDAT_DEFAULT, "root", NULL, -1,NULL,0, status);
|
||||
rootdata = (UChar***)malloc((sizeof(scanArray)/sizeof(scanArray[0]))*sizeof(rootdata[0]));
|
||||
starts = (int*)malloc((sizeof(scanArray)/sizeof(scanArray[0]))*sizeof(starts[0]));
|
||||
for(int i=0;U_SUCCESS(*status)&&i<sizeof(scanArray)/sizeof(scanArray[0]);i++) {
|
||||
int thisCount = udat_countSymbols(fmt, scanArray[i]);
|
||||
rootdata[i]=0;
|
||||
rootdata[i]=(UChar**)malloc(thisCount*sizeof(rootdata[i][0]));
|
||||
switch(scanArray[i]) {
|
||||
case UDAT_WEEKDAYS:
|
||||
case UDAT_SHORT_WEEKDAYS:
|
||||
starts[i]=1;
|
||||
break;
|
||||
default:
|
||||
starts[i]=0;
|
||||
}
|
||||
for(int j=starts[i];U_SUCCESS(*status)&&j<thisCount;j++) {
|
||||
rootdata[i][j]=(UChar*)malloc(1024);
|
||||
int sz =
|
||||
udat_getSymbols(fmt,
|
||||
scanArray[i],
|
||||
j,
|
||||
rootdata[i][j],
|
||||
1024,
|
||||
status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Format the date */
|
||||
static void
|
||||
date(const UChar *tz,
|
||||
UDateFormatStyle style,
|
||||
char *format,
|
||||
const char *locale, char *comments,
|
||||
UErrorCode *status)
|
||||
{
|
||||
UChar *s = 0;
|
||||
int32_t len = 0;
|
||||
UDateFormat *fmt;
|
||||
UChar uFormat[100];
|
||||
char tmp[200];
|
||||
|
||||
int tc=0; // total count
|
||||
int tf=0; // total found
|
||||
int tl = 0;
|
||||
|
||||
fmt = udat_open(style, style, locale, tz, -1,NULL,0, status);
|
||||
if ( format != NULL ) {
|
||||
u_charsToUChars(format,uFormat,strlen(format)),
|
||||
udat_applyPattern(fmt,FALSE,uFormat,strlen(format));
|
||||
}
|
||||
len = udat_format(fmt, ucal_getNow(), 0, len, 0, status);
|
||||
if(*status == U_BUFFER_OVERFLOW_ERROR) {
|
||||
*status = U_ZERO_ERROR;
|
||||
s = (UChar*) malloc(sizeof(UChar) * (len+1));
|
||||
if(s == 0) goto finish;
|
||||
udat_format(fmt, ucal_getNow(), s, len + 1, 0, status);
|
||||
if(U_FAILURE(*status)) goto finish;
|
||||
}
|
||||
|
||||
/* print the date string */
|
||||
//uprint(s, stdout, status);
|
||||
|
||||
/* print a trailing newline */
|
||||
//printf("\n");
|
||||
/* count bits */
|
||||
UChar outbuf[1024];
|
||||
for(int i=0;U_SUCCESS(*status)&&i<sizeof(scanArray)/sizeof(scanArray[0]);i++) {
|
||||
int thisCount = udat_countSymbols(fmt, scanArray[i]);
|
||||
tc += thisCount;
|
||||
for(int j=starts[i];U_SUCCESS(*status)&&j<thisCount;j++) {
|
||||
*status = U_ZERO_ERROR;
|
||||
int sz =
|
||||
udat_getSymbols(fmt,
|
||||
scanArray[i],
|
||||
j,
|
||||
outbuf,
|
||||
1024,
|
||||
status);
|
||||
if(U_SUCCESS(*status)) { tf++; tl += u_strlen(outbuf); }
|
||||
//if(!u_strcmp(outbuf,rootdata[i][j])) {
|
||||
if(*status != U_ZERO_ERROR) {
|
||||
#if 0
|
||||
fprintf(stderr, "<!-- %s: err: data %s:%d:%d is missing: %X... -->\n", locale, UDateFormatSymbolType_name(scanArray[i]), i, j, outbuf[0]);
|
||||
#endif
|
||||
sprintf(tmp, " missing: %s#%d-%s ", UDateFormatSymbolType_name(scanArray[i]), j, u_errorNameShort(*status));
|
||||
*status = U_MISSING_RESOURCE_ERROR;
|
||||
strcat(comments, tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
finish:
|
||||
sprintf(tmp, " syms:%d/%d#%d:%s", tf, tc, tl, u_errorNameShort(*status));
|
||||
strcat(comments,tmp);
|
||||
|
||||
udat_close(fmt);
|
||||
free(s);
|
||||
}
|
||||
|
||||
static void writeOkComments(XMLFile &xf, int ok, const char *comments, const char *locale) {
|
||||
char tmp[2000];
|
||||
tmp[0]=0;
|
||||
if(ok) {
|
||||
if(!comments||!*comments) {
|
||||
strcpy(tmp,locale);
|
||||
strcat(tmp, " ");
|
||||
} else {
|
||||
sprintf(tmp, "%s <!-- %s -->", locale, comments);
|
||||
}
|
||||
} else if(comments&&*comments) {
|
||||
sprintf(tmp, "<!-- !! %s: %s -->", locale, comments);
|
||||
}
|
||||
if(tmp&&*tmp) {
|
||||
xf.writeln(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int could_fmt_dow(const char *locale, char *comments) {
|
||||
char tmp[200];
|
||||
// UResourceBundle *rb = NULL;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
|
||||
date(NULL,
|
||||
UDAT_LONG,
|
||||
NULL,
|
||||
locale, comments,
|
||||
&status);
|
||||
|
||||
if(U_FAILURE(status) || status != U_ZERO_ERROR) {
|
||||
|
||||
sprintf(tmp, " fmt:%s", u_errorNameShort(status));
|
||||
strcat(comments, tmp);
|
||||
return 0;
|
||||
} else {
|
||||
sprintf(tmp, " fmt:%s", u_errorNameShort(status));
|
||||
strcat(comments, tmp);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
void probeCapability(XMLFile& xf, const char *locale) {
|
||||
char comments[1000];
|
||||
int ok=1;
|
||||
int rc =0;
|
||||
|
||||
//fprintf(stderr, "PROBE: %s\n", locale);
|
||||
|
||||
comments[0]=0;
|
||||
|
||||
if(!could_open(locale, comments)) {
|
||||
ok = 0;
|
||||
}
|
||||
|
||||
#if (U_ICU_VERSION_MAJOR_NUM > 2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>2))
|
||||
if(!could_fmt_dow(locale, comments)) {
|
||||
ok = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
writeOkComments(xf,ok, comments,locale);
|
||||
}
|
||||
|
||||
void probeColCapability(XMLFile& xf, const char *locale) {
|
||||
char comments[1000];
|
||||
int ok=1;
|
||||
int rc =0;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
|
||||
//fprintf(stderr, "PROBE: %s\n", locale);
|
||||
|
||||
comments[0]=0;
|
||||
|
||||
if(!col_could_open(locale, comments)) {
|
||||
ok = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
if(!col_could_fmt_dow(locale, comments)) {
|
||||
ok = 0;
|
||||
}
|
||||
*/
|
||||
writeOkComments(xf,ok, comments,locale);
|
||||
}
|
||||
|
||||
int main (int argc, char ** argv) {
|
||||
U_MAIN_INIT_ARGS(argc, argv);
|
||||
progName = argv[0];
|
||||
argc=u_parseArgs(argc, argv, sizeof(options)/sizeof(options[0]), options);
|
||||
// const char *loc;
|
||||
|
||||
{
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
#if (U_ICU_VERSION_MAJOR_NUM > 2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>5))
|
||||
u_init(&status);
|
||||
#else
|
||||
ures_open(NULL, "en_US", &status);
|
||||
#endif
|
||||
fprintf(stderr, " Init: %s\n", u_errorName(status));
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
UErrorCode is = U_ZERO_ERROR;
|
||||
#if (U_ICU_VERSION_MAJOR_NUM > 2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>2))
|
||||
initroot(&is);
|
||||
fprintf(stderr, "Init: %s\n", u_errorNameShort(is));
|
||||
#endif
|
||||
}
|
||||
|
||||
if(argc<0) {
|
||||
// Unrecognized option
|
||||
fprintf(stderr, "error in command line argument \"%s\"\n", argv[-argc]);
|
||||
usageAndDie(U_ILLEGAL_ARGUMENT_ERROR);
|
||||
}
|
||||
|
||||
if(options[0].doesOccur || options[1].doesOccur) {
|
||||
// -? or -h for help.
|
||||
usageAndDie(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
{
|
||||
char tmp[200];
|
||||
XMLFile xf(stdout);
|
||||
{
|
||||
xf.writeln("<!DOCTYPE icuInfo SYSTEM \"http://icu-project.org/dtd/icumeta.dtd\">");
|
||||
XMLElement icuInfo(xf, "icuInfo");
|
||||
XMLElement icuProducts(xf, "icuProducts");
|
||||
XMLElement icuProduct(xf, "icuProduct", "type=\"icu4c\"");
|
||||
XMLElement releases(xf, "releases");
|
||||
sprintf(tmp, "version=\"%s\"", U_ICU_VERSION);
|
||||
XMLElement release(xf, "release", tmp);
|
||||
|
||||
XMLElement capabilities(xf, "capabilities");
|
||||
{
|
||||
sprintf(tmp, "type=\"unicode\" version=\"%s\"",
|
||||
U_UNICODE_VERSION);
|
||||
XMLElement icuData(xf, "feature", tmp, TRUE);
|
||||
}
|
||||
{
|
||||
UCollator *col;
|
||||
char ucavers[200];
|
||||
UVersionInfo vers;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
col = ucol_open("root", &status);
|
||||
#if (U_ICU_VERSION_MAJOR_NUM>2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>7))
|
||||
ucol_getUCAVersion(col, vers);
|
||||
u_versionToString(vers, ucavers);
|
||||
#else
|
||||
strcpy(ucavers, "???");
|
||||
#endif
|
||||
sprintf(tmp, "type=\"uca\" version=\"%s\"",
|
||||
ucavers);
|
||||
XMLElement icuData(xf, "feature", tmp, TRUE);
|
||||
ucol_close(col);
|
||||
}
|
||||
#if (U_ICU_VERSION_MAJOR_NUM>3) || ((U_ICU_VERSION_MAJOR_NUM > 2) && (U_ICU_VERSION_MINOR_NUM >7))
|
||||
{
|
||||
const char *tzvers;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
tzvers = ucal_getTZDataVersion(&status);
|
||||
sprintf(tmp, "type=\"tz\" version=\"%s\"",
|
||||
tzvers);
|
||||
XMLElement icuData(xf, "feature", tmp, TRUE);
|
||||
}
|
||||
#endif
|
||||
{
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
UVersionInfo cldrVersion;
|
||||
_getCLDRVersionDirect(cldrVersion, &status);
|
||||
if(U_FAILURE(status)) {
|
||||
UErrorCode subStatus = U_ZERO_ERROR;
|
||||
_getCLDRVersionOld(cldrVersion, &subStatus);
|
||||
if(U_SUCCESS(subStatus)) {
|
||||
status = subStatus;
|
||||
}
|
||||
}
|
||||
if(U_FAILURE(status)) {
|
||||
fprintf(stderr, "Err: could not get CLDR Version, %s\n", u_errorName(status));
|
||||
fflush(stderr);
|
||||
} else {
|
||||
strcpy(tmp, "type=\"cldr\" version=\"");
|
||||
u_versionToString(cldrVersion, tmp+strlen(tmp));
|
||||
strcat(tmp, "\"");
|
||||
XMLElement icuData(xf, "feature", tmp, TRUE);
|
||||
}
|
||||
}
|
||||
if(1) {
|
||||
int n = uloc_countAvailable();
|
||||
sprintf(tmp, "type=\"formatting\" total=\"%d\" version=\"%s\"",
|
||||
n,
|
||||
"???");
|
||||
XMLElement icuData(xf, "feature", tmp);
|
||||
|
||||
// probeCapability(xf, "root");
|
||||
for(int j=0;j<n;j++) {
|
||||
probeCapability(xf, uloc_getAvailable(j));
|
||||
}
|
||||
|
||||
}
|
||||
if(1) {
|
||||
int n = ucol_countAvailable();
|
||||
sprintf(tmp, "type=\"collation\" total=\"%d\" version=\"%s\"",
|
||||
n,
|
||||
"???");
|
||||
XMLElement icuData(xf, "feature", tmp);
|
||||
|
||||
// probeCapability(xf, "root");
|
||||
for(int j=0;j<n;j++) {
|
||||
probeColCapability(xf, ucol_getAvailable(j));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
489
multi/proj/icu4cscan/xml/2_2.xml
Normal file
489
multi/proj/icu4cscan/xml/2_2.xml
Normal file
|
@ -0,0 +1,489 @@
|
|||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4c">
|
||||
<releases>
|
||||
<release version="2.2">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="3.2"/>
|
||||
<feature type="uca" version="???"/>
|
||||
<feature type="formatting" total="235" version="???">
|
||||
af <!-- open:ok -->
|
||||
af_ZA <!-- open:ok -->
|
||||
am <!-- open:ok -->
|
||||
am_ET <!-- open:ok -->
|
||||
ar <!-- open:ok -->
|
||||
ar_AE <!-- open:ok -->
|
||||
ar_BH <!-- open:ok -->
|
||||
ar_DZ <!-- open:ok -->
|
||||
ar_EG <!-- open:ok -->
|
||||
ar_IQ <!-- open:ok -->
|
||||
ar_IN <!-- open:ok -->
|
||||
ar_JO <!-- open:ok -->
|
||||
ar_KW <!-- open:ok -->
|
||||
ar_LB <!-- open:ok -->
|
||||
ar_LY <!-- open:ok -->
|
||||
ar_MA <!-- open:ok -->
|
||||
ar_OM <!-- open:ok -->
|
||||
ar_QA <!-- open:ok -->
|
||||
ar_SA <!-- open:ok -->
|
||||
ar_SD <!-- open:ok -->
|
||||
ar_SY <!-- open:ok -->
|
||||
ar_TN <!-- open:ok -->
|
||||
ar_YE <!-- open:ok -->
|
||||
be <!-- open:ok -->
|
||||
be_BY <!-- open:ok -->
|
||||
bg <!-- open:ok -->
|
||||
bg_BG <!-- open:ok -->
|
||||
bn <!-- open:ok -->
|
||||
bn_IN <!-- open:ok -->
|
||||
ca <!-- open:ok -->
|
||||
ca_ES <!-- open:ok -->
|
||||
ca_ES_PREEURO <!-- open:ok -->
|
||||
cs <!-- open:ok -->
|
||||
cs_CZ <!-- open:ok -->
|
||||
da <!-- open:ok -->
|
||||
da_DK <!-- open:ok -->
|
||||
de <!-- open:ok -->
|
||||
de__PHONEBOOK <!-- open:ok -->
|
||||
de_AT <!-- open:ok -->
|
||||
de_AT_PREEURO <!-- open:ok -->
|
||||
de_BE <!-- open:ok -->
|
||||
de_CH <!-- open:ok -->
|
||||
de_DE <!-- open:ok -->
|
||||
de_DE_PREEURO <!-- open:ok -->
|
||||
de_LU <!-- open:ok -->
|
||||
de_LU_PREEURO <!-- open:ok -->
|
||||
el <!-- open:ok -->
|
||||
el_GR <!-- open:ok -->
|
||||
el_GR_PREEURO <!-- open:ok -->
|
||||
en <!-- open:ok -->
|
||||
en_AU <!-- open:ok -->
|
||||
en_BE <!-- open:ok -->
|
||||
en_BE_PREEURO <!-- open:ok -->
|
||||
en_BW <!-- open:ok -->
|
||||
en_CA <!-- open:ok -->
|
||||
en_GB <!-- open:ok -->
|
||||
en_GB_EURO <!-- open:ok -->
|
||||
en_HK <!-- open:ok -->
|
||||
en_IE <!-- open:ok -->
|
||||
en_IE_PREEURO <!-- open:ok -->
|
||||
en_IN <!-- open:ok -->
|
||||
en_NZ <!-- open:ok -->
|
||||
en_PH <!-- open:ok -->
|
||||
en_SG <!-- open:ok -->
|
||||
en_MT <!-- open:ok -->
|
||||
en_US <!-- open:ok -->
|
||||
en_US_POSIX <!-- open:ok -->
|
||||
en_VI <!-- open:ok -->
|
||||
en_ZA <!-- open:ok -->
|
||||
en_ZW <!-- open:ok -->
|
||||
eo <!-- open:ok -->
|
||||
es <!-- open:ok -->
|
||||
es__TRADITIONAL <!-- open:ok -->
|
||||
es_AR <!-- open:ok -->
|
||||
es_BO <!-- open:ok -->
|
||||
es_CL <!-- open:ok -->
|
||||
es_CO <!-- open:ok -->
|
||||
es_CR <!-- open:ok -->
|
||||
es_DO <!-- open:ok -->
|
||||
es_EC <!-- open:ok -->
|
||||
es_ES <!-- open:ok -->
|
||||
es_ES_PREEURO <!-- open:ok -->
|
||||
es_GT <!-- open:ok -->
|
||||
es_HN <!-- open:ok -->
|
||||
es_MX <!-- open:ok -->
|
||||
es_NI <!-- open:ok -->
|
||||
es_PA <!-- open:ok -->
|
||||
es_PE <!-- open:ok -->
|
||||
es_PR <!-- open:ok -->
|
||||
es_PY <!-- open:ok -->
|
||||
es_SV <!-- open:ok -->
|
||||
es_US <!-- open:ok -->
|
||||
es_UY <!-- open:ok -->
|
||||
es_VE <!-- open:ok -->
|
||||
et <!-- open:ok -->
|
||||
et_EE <!-- open:ok -->
|
||||
eu <!-- open:ok -->
|
||||
eu_ES <!-- open:ok -->
|
||||
eu_ES_PREEURO <!-- open:ok -->
|
||||
fa <!-- open:ok -->
|
||||
fa_IN <!-- open:ok -->
|
||||
fa_IR <!-- open:ok -->
|
||||
fi <!-- open:ok -->
|
||||
fi_FI <!-- open:ok -->
|
||||
fi_FI_PREEURO <!-- open:ok -->
|
||||
fo <!-- open:ok -->
|
||||
fo_FO <!-- open:ok -->
|
||||
fr <!-- open:ok -->
|
||||
fr_BE <!-- open:ok -->
|
||||
fr_BE_PREEURO <!-- open:ok -->
|
||||
fr_CA <!-- open:ok -->
|
||||
fr_CH <!-- open:ok -->
|
||||
fr_FR <!-- open:ok -->
|
||||
fr_FR_PREEURO <!-- open:ok -->
|
||||
fr_LU <!-- open:ok -->
|
||||
fr_LU_PREEURO <!-- open:ok -->
|
||||
ga <!-- open:ok -->
|
||||
ga_IE <!-- open:ok -->
|
||||
ga_IE_PREEURO <!-- open:ok -->
|
||||
gl <!-- open:ok -->
|
||||
gl_ES <!-- open:ok -->
|
||||
gl_ES_PREEURO <!-- open:ok -->
|
||||
gv <!-- open:ok -->
|
||||
gv_GB <!-- open:ok -->
|
||||
gu <!-- open:ok -->
|
||||
gu_IN <!-- open:ok -->
|
||||
he <!-- open:ok -->
|
||||
he_IL <!-- open:ok -->
|
||||
hi <!-- open:ok -->
|
||||
hi_IN <!-- open:ok -->
|
||||
hi__DIRECT <!-- open:ok -->
|
||||
hr <!-- open:ok -->
|
||||
hr_HR <!-- open:ok -->
|
||||
hu <!-- open:ok -->
|
||||
hu_HU <!-- open:ok -->
|
||||
hy <!-- open:ok -->
|
||||
hy_AM <!-- open:ok -->
|
||||
hy_AM_REVISED <!-- open:ok -->
|
||||
id <!-- open:ok -->
|
||||
id_ID <!-- open:ok -->
|
||||
is <!-- open:ok -->
|
||||
is_IS <!-- open:ok -->
|
||||
it <!-- open:ok -->
|
||||
it_CH <!-- open:ok -->
|
||||
it_IT <!-- open:ok -->
|
||||
it_IT_PREEURO <!-- open:ok -->
|
||||
ja <!-- open:ok -->
|
||||
ja_JP <!-- open:ok -->
|
||||
kl <!-- open:ok -->
|
||||
kl_GL <!-- open:ok -->
|
||||
ko <!-- open:ok -->
|
||||
ko_KR <!-- open:ok -->
|
||||
kok <!-- open:ok -->
|
||||
kok_IN <!-- open:ok -->
|
||||
kn <!-- open:ok -->
|
||||
kn_IN <!-- open:ok -->
|
||||
kw <!-- open:ok -->
|
||||
kw_GB <!-- open:ok -->
|
||||
lt <!-- open:ok -->
|
||||
lt_LT <!-- open:ok -->
|
||||
lv <!-- open:ok -->
|
||||
lv_LV <!-- open:ok -->
|
||||
mk <!-- open:ok -->
|
||||
mk_MK <!-- open:ok -->
|
||||
mr <!-- open:ok -->
|
||||
mr_IN <!-- open:ok -->
|
||||
mt <!-- open:ok -->
|
||||
mt_MT <!-- open:ok -->
|
||||
nb <!-- open:ok -->
|
||||
nb_NO <!-- open:ok -->
|
||||
nl <!-- open:ok -->
|
||||
nl_BE <!-- open:ok -->
|
||||
nl_BE_PREEURO <!-- open:ok -->
|
||||
nl_NL <!-- open:ok -->
|
||||
nl_NL_PREEURO <!-- open:ok -->
|
||||
nn <!-- open:ok -->
|
||||
nn_NO <!-- open:ok -->
|
||||
om <!-- open:ok -->
|
||||
om_ET <!-- open:ok -->
|
||||
om_KE <!-- open:ok -->
|
||||
pl <!-- open:ok -->
|
||||
pl_PL <!-- open:ok -->
|
||||
pt <!-- open:ok -->
|
||||
pt_BR <!-- open:ok -->
|
||||
pt_PT <!-- open:ok -->
|
||||
pt_PT_PREEURO <!-- open:ok -->
|
||||
ro <!-- open:ok -->
|
||||
ro_RO <!-- open:ok -->
|
||||
ru <!-- open:ok -->
|
||||
ru_RU <!-- open:ok -->
|
||||
ru_UA <!-- open:ok -->
|
||||
sh <!-- open:ok -->
|
||||
sh_YU <!-- open:ok -->
|
||||
sk <!-- open:ok -->
|
||||
sk_SK <!-- open:ok -->
|
||||
sl <!-- open:ok -->
|
||||
sl_SI <!-- open:ok -->
|
||||
so <!-- open:ok -->
|
||||
so_DJ <!-- open:ok -->
|
||||
so_ET <!-- open:ok -->
|
||||
so_KE <!-- open:ok -->
|
||||
so_SO <!-- open:ok -->
|
||||
sq <!-- open:ok -->
|
||||
sq_AL <!-- open:ok -->
|
||||
sr <!-- open:ok -->
|
||||
sr_YU <!-- open:ok -->
|
||||
sv <!-- open:ok -->
|
||||
sv_FI <!-- open:ok -->
|
||||
sv_SE <!-- open:ok -->
|
||||
sw <!-- open:ok -->
|
||||
sw_KE <!-- open:ok -->
|
||||
sw_TZ <!-- open:ok -->
|
||||
ta <!-- open:ok -->
|
||||
ta_IN <!-- open:ok -->
|
||||
te <!-- open:ok -->
|
||||
te_IN <!-- open:ok -->
|
||||
th <!-- open:ok -->
|
||||
th_TH <!-- open:ok -->
|
||||
ti <!-- open:ok -->
|
||||
ti_ET <!-- open:ok -->
|
||||
ti_ER <!-- open:ok -->
|
||||
tr <!-- open:ok -->
|
||||
tr_TR <!-- open:ok -->
|
||||
uk <!-- open:ok -->
|
||||
uk_UA <!-- open:ok -->
|
||||
vi <!-- open:ok -->
|
||||
vi_VN <!-- open:ok -->
|
||||
zh <!-- open:ok -->
|
||||
zh__PINYIN <!-- open:ok -->
|
||||
zh_CN <!-- open:ok -->
|
||||
zh_HK <!-- open:ok -->
|
||||
zh_MO <!-- open:ok -->
|
||||
zh_SG <!-- open:ok -->
|
||||
zh_TW <!-- open:ok -->
|
||||
zh_TW_STROKE <!-- open:ok -->
|
||||
</feature>
|
||||
<feature type="collation" total="235" version="???">
|
||||
af
|
||||
af_ZA
|
||||
am
|
||||
am_ET
|
||||
ar
|
||||
ar_AE
|
||||
ar_BH
|
||||
ar_DZ
|
||||
ar_EG
|
||||
ar_IQ
|
||||
ar_IN
|
||||
ar_JO
|
||||
ar_KW
|
||||
ar_LB
|
||||
ar_LY
|
||||
ar_MA
|
||||
ar_OM
|
||||
ar_QA
|
||||
ar_SA
|
||||
ar_SD
|
||||
ar_SY
|
||||
ar_TN
|
||||
ar_YE
|
||||
be
|
||||
be_BY
|
||||
bg
|
||||
bg_BG
|
||||
bn
|
||||
bn_IN
|
||||
ca
|
||||
ca_ES
|
||||
ca_ES_PREEURO
|
||||
cs
|
||||
cs_CZ
|
||||
da
|
||||
da_DK
|
||||
de
|
||||
de__PHONEBOOK
|
||||
de_AT
|
||||
de_AT_PREEURO
|
||||
de_BE
|
||||
de_CH
|
||||
de_DE
|
||||
de_DE_PREEURO
|
||||
de_LU
|
||||
de_LU_PREEURO
|
||||
el
|
||||
el_GR
|
||||
el_GR_PREEURO
|
||||
en
|
||||
en_AU
|
||||
en_BE
|
||||
en_BE_PREEURO
|
||||
en_BW
|
||||
en_CA
|
||||
en_GB
|
||||
en_GB_EURO
|
||||
en_HK
|
||||
en_IE
|
||||
en_IE_PREEURO
|
||||
en_IN
|
||||
en_NZ
|
||||
en_PH
|
||||
en_SG
|
||||
en_MT
|
||||
en_US
|
||||
en_US_POSIX
|
||||
en_VI
|
||||
en_ZA
|
||||
en_ZW
|
||||
eo
|
||||
es
|
||||
es__TRADITIONAL
|
||||
es_AR
|
||||
es_BO
|
||||
es_CL
|
||||
es_CO
|
||||
es_CR
|
||||
es_DO
|
||||
es_EC
|
||||
es_ES
|
||||
es_ES_PREEURO
|
||||
es_GT
|
||||
es_HN
|
||||
es_MX
|
||||
es_NI
|
||||
es_PA
|
||||
es_PE
|
||||
es_PR
|
||||
es_PY
|
||||
es_SV
|
||||
es_US
|
||||
es_UY
|
||||
es_VE
|
||||
et
|
||||
et_EE
|
||||
eu
|
||||
eu_ES
|
||||
eu_ES_PREEURO
|
||||
fa
|
||||
fa_IN
|
||||
fa_IR
|
||||
fi
|
||||
fi_FI
|
||||
fi_FI_PREEURO
|
||||
fo
|
||||
fo_FO
|
||||
fr
|
||||
fr_BE
|
||||
fr_BE_PREEURO
|
||||
fr_CA
|
||||
fr_CH
|
||||
fr_FR
|
||||
fr_FR_PREEURO
|
||||
fr_LU
|
||||
fr_LU_PREEURO
|
||||
ga
|
||||
ga_IE
|
||||
ga_IE_PREEURO
|
||||
gl
|
||||
gl_ES
|
||||
gl_ES_PREEURO
|
||||
gv
|
||||
gv_GB
|
||||
gu
|
||||
gu_IN
|
||||
he
|
||||
he_IL
|
||||
hi
|
||||
hi_IN
|
||||
hi__DIRECT
|
||||
hr
|
||||
hr_HR
|
||||
hu
|
||||
hu_HU
|
||||
hy
|
||||
hy_AM
|
||||
hy_AM_REVISED
|
||||
id
|
||||
id_ID
|
||||
is
|
||||
is_IS
|
||||
it
|
||||
it_CH
|
||||
it_IT
|
||||
it_IT_PREEURO
|
||||
ja
|
||||
ja_JP
|
||||
kl
|
||||
kl_GL
|
||||
ko
|
||||
ko_KR
|
||||
kok
|
||||
kok_IN
|
||||
kn
|
||||
kn_IN
|
||||
kw
|
||||
kw_GB
|
||||
lt
|
||||
lt_LT
|
||||
lv
|
||||
lv_LV
|
||||
mk
|
||||
mk_MK
|
||||
mr
|
||||
mr_IN
|
||||
mt
|
||||
mt_MT
|
||||
nb
|
||||
nb_NO
|
||||
nl
|
||||
nl_BE
|
||||
nl_BE_PREEURO
|
||||
nl_NL
|
||||
nl_NL_PREEURO
|
||||
nn
|
||||
nn_NO
|
||||
om
|
||||
om_ET
|
||||
om_KE
|
||||
pl
|
||||
pl_PL
|
||||
pt
|
||||
pt_BR
|
||||
pt_PT
|
||||
pt_PT_PREEURO
|
||||
ro
|
||||
ro_RO
|
||||
ru
|
||||
ru_RU
|
||||
ru_UA
|
||||
sh
|
||||
sh_YU
|
||||
sk
|
||||
sk_SK
|
||||
sl
|
||||
sl_SI
|
||||
so
|
||||
so_DJ
|
||||
so_ET
|
||||
so_KE
|
||||
so_SO
|
||||
sq
|
||||
sq_AL
|
||||
sr
|
||||
sr_YU
|
||||
sv
|
||||
sv_FI
|
||||
sv_SE
|
||||
sw
|
||||
sw_KE
|
||||
sw_TZ
|
||||
ta
|
||||
ta_IN
|
||||
te
|
||||
te_IN
|
||||
th
|
||||
th_TH
|
||||
ti
|
||||
ti_ET
|
||||
ti_ER
|
||||
tr
|
||||
tr_TR
|
||||
uk
|
||||
uk_UA
|
||||
vi
|
||||
vi_VN
|
||||
zh
|
||||
zh__PINYIN
|
||||
zh_CN
|
||||
zh_HK
|
||||
zh_MO
|
||||
zh_SG
|
||||
zh_TW
|
||||
zh_TW_STROKE
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
457
multi/proj/icu4cscan/xml/3_0.xml
Normal file
457
multi/proj/icu4cscan/xml/3_0.xml
Normal file
|
@ -0,0 +1,457 @@
|
|||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4c">
|
||||
<releases>
|
||||
<release version="3.0">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0.1"/>
|
||||
<feature type="uca" version="4.0"/>
|
||||
<feature type="formatting" total="219" version="???">
|
||||
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
|
||||
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
|
||||
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_IN <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
bg <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
bg_BG <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
bn <!-- open:ok syms:40/42#238:ok fmt:ok -->
|
||||
bn_IN <!-- open:ok syms:40/42#238:ok fmt:ok -->
|
||||
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
|
||||
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
|
||||
cs <!-- open:ok syms:40/42#167:ok fmt:ok -->
|
||||
cs_CZ <!-- open:ok syms:40/42#167:ok fmt:ok -->
|
||||
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
|
||||
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
|
||||
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
fa <!-- open:ok syms:40/42#158:ok fmt:ok -->
|
||||
fa_AF <!-- open:ok syms:40/42#156:ok fmt:ok -->
|
||||
fa_IR <!-- open:ok syms:40/42#158:ok fmt:ok -->
|
||||
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
|
||||
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
|
||||
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
|
||||
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
|
||||
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
|
||||
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
|
||||
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
|
||||
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
|
||||
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
|
||||
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
|
||||
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
|
||||
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
|
||||
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
|
||||
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
|
||||
hr <!-- open:ok syms:40/42#199:ok fmt:ok -->
|
||||
hr_HR <!-- open:ok syms:40/42#199:ok fmt:ok -->
|
||||
hu <!-- open:ok syms:40/42#203:ok fmt:ok -->
|
||||
hu_HU <!-- open:ok syms:40/42#203:ok fmt:ok -->
|
||||
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
|
||||
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
|
||||
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
ja <!-- open:ok syms:40/42#75:ok fmt:ok -->
|
||||
ja_JP <!-- open:ok syms:40/42#75:ok fmt:ok -->
|
||||
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
|
||||
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
|
||||
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ko <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
ko_KR <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
|
||||
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
|
||||
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
|
||||
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
|
||||
lt <!-- open:ok syms:40/42#230:ok fmt:ok -->
|
||||
lt_LT <!-- open:ok syms:40/42#230:ok fmt:ok -->
|
||||
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
|
||||
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
|
||||
mr <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
mr_IN <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
nb <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
nb_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
pa <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
pa_IN <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
pl <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
pl_PL <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
ps <!-- open:ok syms:40/42#154:ok fmt:ok -->
|
||||
ps_AF <!-- open:ok syms:40/42#154:ok fmt:ok -->
|
||||
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ru <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
ru_RU <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
ru_UA <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sh <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
sh_YU <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
|
||||
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
|
||||
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sr <!-- open:ok syms:40/42#191:ok fmt:ok -->
|
||||
sr_YU <!-- open:ok syms:40/42#191:ok fmt:ok -->
|
||||
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
th <!-- open:ok syms:40/42#236:ok fmt:ok -->
|
||||
th_TH <!-- open:ok syms:40/42#236:ok fmt:ok -->
|
||||
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
|
||||
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
|
||||
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
|
||||
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
|
||||
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
|
||||
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
|
||||
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
|
||||
zh <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
zh_CN <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
zh_HK <!-- open:ok syms:40/42#86:ok fmt:ok -->
|
||||
zh_MO <!-- open:ok syms:40/42#86:ok fmt:ok -->
|
||||
zh_SG <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
zh_TW <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
</feature>
|
||||
<feature type="collation" total="219" version="???">
|
||||
af
|
||||
af_ZA
|
||||
am
|
||||
am_ET
|
||||
ar
|
||||
ar_AE
|
||||
ar_BH
|
||||
ar_DZ
|
||||
ar_EG
|
||||
ar_IN
|
||||
ar_IQ
|
||||
ar_JO
|
||||
ar_KW
|
||||
ar_LB
|
||||
ar_LY
|
||||
ar_MA
|
||||
ar_OM
|
||||
ar_QA
|
||||
ar_SA
|
||||
ar_SD
|
||||
ar_SY
|
||||
ar_TN
|
||||
ar_YE
|
||||
be
|
||||
be_BY
|
||||
bg
|
||||
bg_BG
|
||||
bn
|
||||
bn_IN
|
||||
ca
|
||||
ca_ES
|
||||
cs
|
||||
cs_CZ
|
||||
da
|
||||
da_DK
|
||||
de
|
||||
de_AT
|
||||
de_BE
|
||||
de_CH
|
||||
de_DE
|
||||
de_LU
|
||||
el
|
||||
el_GR
|
||||
en
|
||||
en_AU
|
||||
en_BE
|
||||
en_BW
|
||||
en_CA
|
||||
en_GB
|
||||
en_HK
|
||||
en_IE
|
||||
en_IN
|
||||
en_MT
|
||||
en_NZ
|
||||
en_PH
|
||||
en_SG
|
||||
en_US
|
||||
en_US_POSIX
|
||||
en_VI
|
||||
en_ZA
|
||||
en_ZW
|
||||
eo
|
||||
es
|
||||
es_AR
|
||||
es_BO
|
||||
es_CL
|
||||
es_CO
|
||||
es_CR
|
||||
es_DO
|
||||
es_EC
|
||||
es_ES
|
||||
es_GT
|
||||
es_HN
|
||||
es_MX
|
||||
es_NI
|
||||
es_PA
|
||||
es_PE
|
||||
es_PR
|
||||
es_PY
|
||||
es_SV
|
||||
es_US
|
||||
es_UY
|
||||
es_VE
|
||||
et
|
||||
et_EE
|
||||
eu
|
||||
eu_ES
|
||||
fa
|
||||
fa_AF
|
||||
fa_IR
|
||||
fi
|
||||
fi_FI
|
||||
fo
|
||||
fo_FO
|
||||
fr
|
||||
fr_BE
|
||||
fr_CA
|
||||
fr_CH
|
||||
fr_FR
|
||||
fr_LU
|
||||
ga
|
||||
ga_IE
|
||||
gl
|
||||
gl_ES
|
||||
gu
|
||||
gu_IN
|
||||
gv
|
||||
gv_GB
|
||||
he
|
||||
he_IL
|
||||
hi
|
||||
hi_IN
|
||||
hr
|
||||
hr_HR
|
||||
hu
|
||||
hu_HU
|
||||
hy
|
||||
hy_AM
|
||||
hy_AM_REVISED
|
||||
id
|
||||
id_ID
|
||||
is
|
||||
is_IS
|
||||
it
|
||||
it_CH
|
||||
it_IT
|
||||
ja
|
||||
ja_JP
|
||||
kk
|
||||
kk_KZ
|
||||
kl
|
||||
kl_GL
|
||||
kn
|
||||
kn_IN
|
||||
ko
|
||||
ko_KR
|
||||
kok
|
||||
kok_IN
|
||||
kw
|
||||
kw_GB
|
||||
lt
|
||||
lt_LT
|
||||
lv
|
||||
lv_LV
|
||||
mk
|
||||
mk_MK
|
||||
mr
|
||||
mr_IN
|
||||
ms
|
||||
ms_BN
|
||||
ms_MY
|
||||
mt
|
||||
mt_MT
|
||||
nb
|
||||
nb_NO
|
||||
nl
|
||||
nl_BE
|
||||
nl_NL
|
||||
nn
|
||||
nn_NO
|
||||
om
|
||||
om_ET
|
||||
om_KE
|
||||
pa
|
||||
pa_IN
|
||||
pl
|
||||
pl_PL
|
||||
ps
|
||||
ps_AF
|
||||
pt
|
||||
pt_BR
|
||||
pt_PT
|
||||
ro
|
||||
ro_RO
|
||||
ru
|
||||
ru_RU
|
||||
ru_UA
|
||||
sh
|
||||
sh_YU
|
||||
sk
|
||||
sk_SK
|
||||
sl
|
||||
sl_SI
|
||||
so
|
||||
so_DJ
|
||||
so_ET
|
||||
so_KE
|
||||
so_SO
|
||||
sq
|
||||
sq_AL
|
||||
sr
|
||||
sr_YU
|
||||
sv
|
||||
sv_FI
|
||||
sv_SE
|
||||
sw
|
||||
sw_KE
|
||||
sw_TZ
|
||||
ta
|
||||
ta_IN
|
||||
te
|
||||
te_IN
|
||||
th
|
||||
th_TH
|
||||
ti
|
||||
ti_ER
|
||||
ti_ET
|
||||
tr
|
||||
tr_TR
|
||||
uk
|
||||
uk_UA
|
||||
vi
|
||||
vi_VN
|
||||
zh
|
||||
zh_CN
|
||||
zh_HK
|
||||
zh_MO
|
||||
zh_SG
|
||||
zh_TW
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
479
multi/proj/icu4cscan/xml/3_2.xml
Normal file
479
multi/proj/icu4cscan/xml/3_2.xml
Normal file
|
@ -0,0 +1,479 @@
|
|||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4c">
|
||||
<releases>
|
||||
<release version="3.2">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.0.1"/>
|
||||
<feature type="uca" version="4.0"/>
|
||||
<feature type="formatting" total="230" version="???">
|
||||
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
|
||||
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
|
||||
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_IN <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
bg <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
bg_BG <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
bn <!-- open:ok syms:40/42#238:ok fmt:ok -->
|
||||
bn_IN <!-- open:ok syms:40/42#238:ok fmt:ok -->
|
||||
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
|
||||
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
|
||||
cs <!-- open:ok syms:40/42#167:ok fmt:ok -->
|
||||
cs_CZ <!-- open:ok syms:40/42#167:ok fmt:ok -->
|
||||
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
|
||||
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
|
||||
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
fa <!-- open:ok syms:40/42#158:ok fmt:ok -->
|
||||
fa_AF <!-- open:ok syms:40/42#156:ok fmt:ok -->
|
||||
fa_IR <!-- open:ok syms:40/42#158:ok fmt:ok -->
|
||||
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
|
||||
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
|
||||
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
|
||||
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
|
||||
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
|
||||
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
|
||||
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
|
||||
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
|
||||
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
|
||||
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
|
||||
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
|
||||
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
|
||||
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
|
||||
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
|
||||
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
|
||||
hr <!-- open:ok syms:40/42#199:ok fmt:ok -->
|
||||
hr_HR <!-- open:ok syms:40/42#199:ok fmt:ok -->
|
||||
hu <!-- open:ok syms:40/42#203:ok fmt:ok -->
|
||||
hu_HU <!-- open:ok syms:40/42#203:ok fmt:ok -->
|
||||
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
|
||||
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
|
||||
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
ja <!-- open:ok syms:40/42#75:ok fmt:ok -->
|
||||
ja_JP <!-- open:ok syms:40/42#75:ok fmt:ok -->
|
||||
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
|
||||
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
|
||||
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
|
||||
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
|
||||
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
|
||||
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
|
||||
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
|
||||
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
|
||||
lt <!-- open:ok syms:40/42#230:ok fmt:ok -->
|
||||
lt_LT <!-- open:ok syms:40/42#230:ok fmt:ok -->
|
||||
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
|
||||
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
|
||||
ml <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
ml_IN <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
mr <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
mr_IN <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
nb <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
nb_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
or <!-- open:ok syms:40/42#170:ok fmt:ok -->
|
||||
or_IN <!-- open:ok syms:40/42#170:ok fmt:ok -->
|
||||
pa <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
pa_IN <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
pl <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
pl_PL <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
ps <!-- open:ok syms:40/42#154:ok fmt:ok -->
|
||||
ps_AF <!-- open:ok syms:40/42#154:ok fmt:ok -->
|
||||
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
|
||||
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
|
||||
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Cyrl_YU <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Latn <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sr_Latn_YU <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sr_YU <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
th <!-- open:ok syms:40/42#236:ok fmt:ok -->
|
||||
th_TH <!-- open:ok syms:40/42#236:ok fmt:ok -->
|
||||
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
|
||||
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
|
||||
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
|
||||
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
|
||||
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
|
||||
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
|
||||
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
|
||||
zh <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
zh_Hans <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
zh_Hans_CN <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
zh_Hans_SG <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
zh_Hant <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
zh_Hant_HK <!-- open:ok syms:40/42#86:ok fmt:ok -->
|
||||
zh_Hant_MO <!-- open:ok syms:40/42#86:ok fmt:ok -->
|
||||
zh_Hant_TW <!-- open:ok syms:40/42#85:ok fmt:ok -->
|
||||
</feature>
|
||||
<feature type="collation" total="230" version="???">
|
||||
af
|
||||
af_ZA
|
||||
am
|
||||
am_ET
|
||||
ar
|
||||
ar_AE
|
||||
ar_BH
|
||||
ar_DZ
|
||||
ar_EG
|
||||
ar_IN
|
||||
ar_IQ
|
||||
ar_JO
|
||||
ar_KW
|
||||
ar_LB
|
||||
ar_LY
|
||||
ar_MA
|
||||
ar_OM
|
||||
ar_QA
|
||||
ar_SA
|
||||
ar_SD
|
||||
ar_SY
|
||||
ar_TN
|
||||
ar_YE
|
||||
be
|
||||
be_BY
|
||||
bg
|
||||
bg_BG
|
||||
bn
|
||||
bn_IN
|
||||
ca
|
||||
ca_ES
|
||||
cs
|
||||
cs_CZ
|
||||
cy
|
||||
cy_GB
|
||||
da
|
||||
da_DK
|
||||
de
|
||||
de_AT
|
||||
de_BE
|
||||
de_CH
|
||||
de_DE
|
||||
de_LU
|
||||
el
|
||||
el_GR
|
||||
en
|
||||
en_AU
|
||||
en_BE
|
||||
en_BW
|
||||
en_CA
|
||||
en_GB
|
||||
en_HK
|
||||
en_IE
|
||||
en_IN
|
||||
en_MT
|
||||
en_NZ
|
||||
en_PH
|
||||
en_PK
|
||||
en_SG
|
||||
en_US
|
||||
en_US_POSIX
|
||||
en_VI
|
||||
en_ZA
|
||||
en_ZW
|
||||
eo
|
||||
es
|
||||
es_AR
|
||||
es_BO
|
||||
es_CL
|
||||
es_CO
|
||||
es_CR
|
||||
es_DO
|
||||
es_EC
|
||||
es_ES
|
||||
es_GT
|
||||
es_HN
|
||||
es_MX
|
||||
es_NI
|
||||
es_PA
|
||||
es_PE
|
||||
es_PR
|
||||
es_PY
|
||||
es_SV
|
||||
es_US
|
||||
es_UY
|
||||
es_VE
|
||||
et
|
||||
et_EE
|
||||
eu
|
||||
eu_ES
|
||||
fa
|
||||
fa_AF
|
||||
fa_IR
|
||||
fi
|
||||
fi_FI
|
||||
fo
|
||||
fo_FO
|
||||
fr
|
||||
fr_BE
|
||||
fr_CA
|
||||
fr_CH
|
||||
fr_FR
|
||||
fr_LU
|
||||
ga
|
||||
ga_IE
|
||||
gl
|
||||
gl_ES
|
||||
gu
|
||||
gu_IN
|
||||
gv
|
||||
gv_GB
|
||||
he
|
||||
he_IL
|
||||
hi
|
||||
hi_IN
|
||||
hr
|
||||
hr_HR
|
||||
hu
|
||||
hu_HU
|
||||
hy
|
||||
hy_AM
|
||||
hy_AM_REVISED
|
||||
id
|
||||
id_ID
|
||||
is
|
||||
is_IS
|
||||
it
|
||||
it_CH
|
||||
it_IT
|
||||
ja
|
||||
ja_JP
|
||||
kk
|
||||
kk_KZ
|
||||
kl
|
||||
kl_GL
|
||||
kn
|
||||
kn_IN
|
||||
ko
|
||||
ko_KR
|
||||
kok
|
||||
kok_IN
|
||||
kw
|
||||
kw_GB
|
||||
lt
|
||||
lt_LT
|
||||
lv
|
||||
lv_LV
|
||||
mk
|
||||
mk_MK
|
||||
ml
|
||||
ml_IN
|
||||
mr
|
||||
mr_IN
|
||||
ms
|
||||
ms_BN
|
||||
ms_MY
|
||||
mt
|
||||
mt_MT
|
||||
nb
|
||||
nb_NO
|
||||
nl
|
||||
nl_BE
|
||||
nl_NL
|
||||
nn
|
||||
nn_NO
|
||||
om
|
||||
om_ET
|
||||
om_KE
|
||||
or
|
||||
or_IN
|
||||
pa
|
||||
pa_IN
|
||||
pl
|
||||
pl_PL
|
||||
ps
|
||||
ps_AF
|
||||
pt
|
||||
pt_BR
|
||||
pt_PT
|
||||
ro
|
||||
ro_RO
|
||||
ru
|
||||
ru_RU
|
||||
ru_UA
|
||||
sk
|
||||
sk_SK
|
||||
sl
|
||||
sl_SI
|
||||
so
|
||||
so_DJ
|
||||
so_ET
|
||||
so_KE
|
||||
so_SO
|
||||
sq
|
||||
sq_AL
|
||||
sr
|
||||
sr_Cyrl
|
||||
sr_Cyrl_YU
|
||||
sr_Latn
|
||||
sr_Latn_YU
|
||||
sr_YU
|
||||
sv
|
||||
sv_FI
|
||||
sv_SE
|
||||
sw
|
||||
sw_KE
|
||||
sw_TZ
|
||||
ta
|
||||
ta_IN
|
||||
te
|
||||
te_IN
|
||||
th
|
||||
th_TH
|
||||
ti
|
||||
ti_ER
|
||||
ti_ET
|
||||
tr
|
||||
tr_TR
|
||||
uk
|
||||
uk_UA
|
||||
vi
|
||||
vi_VN
|
||||
zh
|
||||
zh_Hans
|
||||
zh_Hans_CN
|
||||
zh_Hans_SG
|
||||
zh_Hant
|
||||
zh_Hant_HK
|
||||
zh_Hant_MO
|
||||
zh_Hant_TW
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
503
multi/proj/icu4cscan/xml/3_4.xml
Normal file
503
multi/proj/icu4cscan/xml/3_4.xml
Normal file
|
@ -0,0 +1,503 @@
|
|||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4c">
|
||||
<releases>
|
||||
<release version="3.4">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.1"/>
|
||||
<feature type="uca" version="4.1"/>
|
||||
<feature type="formatting" total="242" version="???">
|
||||
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
|
||||
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
|
||||
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
as <!-- open:ok syms:40/42#212:ok fmt:ok -->
|
||||
as_IN <!-- open:ok syms:40/42#212:ok fmt:ok -->
|
||||
az <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
az_Cyrl <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
az_Cyrl_AZ <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
az_Latn <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
az_Latn_AZ <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
bg <!-- open:ok syms:40/42#180:ok fmt:ok -->
|
||||
bg_BG <!-- open:ok syms:40/42#180:ok fmt:ok -->
|
||||
bn <!-- open:ok syms:40/42#238:ok fmt:ok -->
|
||||
bn_IN <!-- open:ok syms:40/42#238:ok fmt:ok -->
|
||||
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
|
||||
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
|
||||
cs <!-- open:ok syms:40/42#167:ok fmt:ok -->
|
||||
cs_CZ <!-- open:ok syms:40/42#167:ok fmt:ok -->
|
||||
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
|
||||
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
|
||||
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
fa <!-- open:ok syms:40/42#158:ok fmt:ok -->
|
||||
fa_AF <!-- open:ok syms:40/42#156:ok fmt:ok -->
|
||||
fa_IR <!-- open:ok syms:40/42#158:ok fmt:ok -->
|
||||
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
|
||||
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
|
||||
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
|
||||
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
|
||||
fr <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_BE <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_CA <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_CH <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_FR <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_LU <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
|
||||
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
|
||||
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
|
||||
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
|
||||
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
|
||||
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
|
||||
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
|
||||
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
|
||||
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
|
||||
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
|
||||
hr <!-- open:ok syms:40/42#199:ok fmt:ok -->
|
||||
hr_HR <!-- open:ok syms:40/42#199:ok fmt:ok -->
|
||||
hu <!-- open:ok syms:40/42#203:ok fmt:ok -->
|
||||
hu_HU <!-- open:ok syms:40/42#203:ok fmt:ok -->
|
||||
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
|
||||
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
|
||||
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
ja <!-- open:ok syms:40/42#99:ok fmt:ok -->
|
||||
ja_JP <!-- open:ok syms:40/42#99:ok fmt:ok -->
|
||||
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
|
||||
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
|
||||
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
|
||||
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
|
||||
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
|
||||
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
|
||||
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
|
||||
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
|
||||
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
|
||||
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
|
||||
ml <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
ml_IN <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
mr <!-- open:ok syms:40/42#227:ok fmt:ok -->
|
||||
mr_IN <!-- open:ok syms:40/42#227:ok fmt:ok -->
|
||||
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
nb <!-- open:ok syms:40/42#194:ok fmt:ok -->
|
||||
nb_NO <!-- open:ok syms:40/42#194:ok fmt:ok -->
|
||||
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
or <!-- open:ok syms:40/42#170:ok fmt:ok -->
|
||||
or_IN <!-- open:ok syms:40/42#170:ok fmt:ok -->
|
||||
pa <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
pa_IN <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
pl <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
pl_PL <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
ps <!-- open:ok syms:40/42#154:ok fmt:ok -->
|
||||
ps_AF <!-- open:ok syms:40/42#154:ok fmt:ok -->
|
||||
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
|
||||
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
|
||||
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Cyrl_CS <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Latn <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sr_Latn_CS <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
th <!-- open:ok syms:40/42#236:ok fmt:ok -->
|
||||
th_TH <!-- open:ok syms:40/42#236:ok fmt:ok -->
|
||||
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
|
||||
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
|
||||
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
|
||||
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
|
||||
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
|
||||
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
ur <!-- open:ok syms:40/42#49:ok fmt:ok -->
|
||||
ur_PK <!-- open:ok syms:40/42#49:ok fmt:ok -->
|
||||
uz <!-- open:ok syms:40/42#211:ok fmt:ok -->
|
||||
uz_Cyrl <!-- open:ok syms:40/42#211:ok fmt:ok -->
|
||||
uz_Cyrl_UZ <!-- open:ok syms:40/42#211:ok fmt:ok -->
|
||||
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
|
||||
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
|
||||
zh <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hans <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hans_CN <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hans_SG <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hant <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hant_HK <!-- open:ok syms:40/42#93:ok fmt:ok -->
|
||||
zh_Hant_MO <!-- open:ok syms:40/42#93:ok fmt:ok -->
|
||||
zh_Hant_TW <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
</feature>
|
||||
<feature type="collation" total="242" version="???">
|
||||
af
|
||||
af_ZA
|
||||
am
|
||||
am_ET
|
||||
ar
|
||||
ar_AE
|
||||
ar_BH
|
||||
ar_DZ
|
||||
ar_EG
|
||||
ar_IQ
|
||||
ar_JO
|
||||
ar_KW
|
||||
ar_LB
|
||||
ar_LY
|
||||
ar_MA
|
||||
ar_OM
|
||||
ar_QA
|
||||
ar_SA
|
||||
ar_SD
|
||||
ar_SY
|
||||
ar_TN
|
||||
ar_YE
|
||||
as
|
||||
as_IN
|
||||
az
|
||||
az_Cyrl
|
||||
az_Cyrl_AZ
|
||||
az_Latn
|
||||
az_Latn_AZ
|
||||
be
|
||||
be_BY
|
||||
bg
|
||||
bg_BG
|
||||
bn
|
||||
bn_IN
|
||||
ca
|
||||
ca_ES
|
||||
cs
|
||||
cs_CZ
|
||||
cy
|
||||
cy_GB
|
||||
da
|
||||
da_DK
|
||||
de
|
||||
de_AT
|
||||
de_BE
|
||||
de_CH
|
||||
de_DE
|
||||
de_LU
|
||||
el
|
||||
el_GR
|
||||
en
|
||||
en_AU
|
||||
en_BE
|
||||
en_BW
|
||||
en_CA
|
||||
en_GB
|
||||
en_HK
|
||||
en_IE
|
||||
en_IN
|
||||
en_MT
|
||||
en_NZ
|
||||
en_PH
|
||||
en_PK
|
||||
en_SG
|
||||
en_US
|
||||
en_US_POSIX
|
||||
en_VI
|
||||
en_ZA
|
||||
en_ZW
|
||||
eo
|
||||
es
|
||||
es_AR
|
||||
es_BO
|
||||
es_CL
|
||||
es_CO
|
||||
es_CR
|
||||
es_DO
|
||||
es_EC
|
||||
es_ES
|
||||
es_GT
|
||||
es_HN
|
||||
es_MX
|
||||
es_NI
|
||||
es_PA
|
||||
es_PE
|
||||
es_PR
|
||||
es_PY
|
||||
es_SV
|
||||
es_US
|
||||
es_UY
|
||||
es_VE
|
||||
et
|
||||
et_EE
|
||||
eu
|
||||
eu_ES
|
||||
fa
|
||||
fa_AF
|
||||
fa_IR
|
||||
fi
|
||||
fi_FI
|
||||
fo
|
||||
fo_FO
|
||||
fr
|
||||
fr_BE
|
||||
fr_CA
|
||||
fr_CH
|
||||
fr_FR
|
||||
fr_LU
|
||||
ga
|
||||
ga_IE
|
||||
gl
|
||||
gl_ES
|
||||
gu
|
||||
gu_IN
|
||||
gv
|
||||
gv_GB
|
||||
he
|
||||
he_IL
|
||||
hi
|
||||
hi_IN
|
||||
hr
|
||||
hr_HR
|
||||
hu
|
||||
hu_HU
|
||||
hy
|
||||
hy_AM
|
||||
hy_AM_REVISED
|
||||
id
|
||||
id_ID
|
||||
is
|
||||
is_IS
|
||||
it
|
||||
it_CH
|
||||
it_IT
|
||||
ja
|
||||
ja_JP
|
||||
kk
|
||||
kk_KZ
|
||||
kl
|
||||
kl_GL
|
||||
kn
|
||||
kn_IN
|
||||
ko
|
||||
ko_KR
|
||||
kok
|
||||
kok_IN
|
||||
kw
|
||||
kw_GB
|
||||
lt
|
||||
lt_LT
|
||||
lv
|
||||
lv_LV
|
||||
mk
|
||||
mk_MK
|
||||
ml
|
||||
ml_IN
|
||||
mr
|
||||
mr_IN
|
||||
ms
|
||||
ms_BN
|
||||
ms_MY
|
||||
mt
|
||||
mt_MT
|
||||
nb
|
||||
nb_NO
|
||||
nl
|
||||
nl_BE
|
||||
nl_NL
|
||||
nn
|
||||
nn_NO
|
||||
om
|
||||
om_ET
|
||||
om_KE
|
||||
or
|
||||
or_IN
|
||||
pa
|
||||
pa_IN
|
||||
pl
|
||||
pl_PL
|
||||
ps
|
||||
ps_AF
|
||||
pt
|
||||
pt_BR
|
||||
pt_PT
|
||||
ro
|
||||
ro_RO
|
||||
ru
|
||||
ru_RU
|
||||
ru_UA
|
||||
sk
|
||||
sk_SK
|
||||
sl
|
||||
sl_SI
|
||||
so
|
||||
so_DJ
|
||||
so_ET
|
||||
so_KE
|
||||
so_SO
|
||||
sq
|
||||
sq_AL
|
||||
sr
|
||||
sr_Cyrl
|
||||
sr_Cyrl_CS
|
||||
sr_Latn
|
||||
sr_Latn_CS
|
||||
sv
|
||||
sv_FI
|
||||
sv_SE
|
||||
sw
|
||||
sw_KE
|
||||
sw_TZ
|
||||
ta
|
||||
ta_IN
|
||||
te
|
||||
te_IN
|
||||
th
|
||||
th_TH
|
||||
ti
|
||||
ti_ER
|
||||
ti_ET
|
||||
tr
|
||||
tr_TR
|
||||
uk
|
||||
uk_UA
|
||||
ur
|
||||
ur_PK
|
||||
uz
|
||||
uz_Cyrl
|
||||
uz_Cyrl_UZ
|
||||
uz_Latn
|
||||
uz_Latn_UZ
|
||||
vi
|
||||
vi_VN
|
||||
zh
|
||||
zh_Hans
|
||||
zh_Hans_CN
|
||||
zh_Hans_SG
|
||||
zh_Hant
|
||||
zh_Hant_HK
|
||||
zh_Hant_MO
|
||||
zh_Hant_TW
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
503
multi/proj/icu4cscan/xml/3_4_1.xml
Normal file
503
multi/proj/icu4cscan/xml/3_4_1.xml
Normal file
|
@ -0,0 +1,503 @@
|
|||
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
|
||||
<icuInfo>
|
||||
<icuProducts>
|
||||
<icuProduct type="icu4c">
|
||||
<releases>
|
||||
<release version="3.4.1">
|
||||
<capabilities>
|
||||
<feature type="unicode" version="4.1"/>
|
||||
<feature type="uca" version="4.1"/>
|
||||
<feature type="formatting" total="242" version="???">
|
||||
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
|
||||
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
|
||||
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
|
||||
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
as <!-- open:ok syms:40/42#212:ok fmt:ok -->
|
||||
as_IN <!-- open:ok syms:40/42#212:ok fmt:ok -->
|
||||
az <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
az_Cyrl <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
az_Cyrl_AZ <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
az_Latn <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
az_Latn_AZ <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
bg <!-- open:ok syms:40/42#180:ok fmt:ok -->
|
||||
bg_BG <!-- open:ok syms:40/42#180:ok fmt:ok -->
|
||||
bn <!-- open:ok syms:40/42#238:ok fmt:ok -->
|
||||
bn_IN <!-- open:ok syms:40/42#238:ok fmt:ok -->
|
||||
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
|
||||
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
|
||||
cs <!-- open:ok syms:40/42#167:ok fmt:ok -->
|
||||
cs_CZ <!-- open:ok syms:40/42#167:ok fmt:ok -->
|
||||
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
|
||||
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
|
||||
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
|
||||
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
|
||||
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
fa <!-- open:ok syms:40/42#158:ok fmt:ok -->
|
||||
fa_AF <!-- open:ok syms:40/42#156:ok fmt:ok -->
|
||||
fa_IR <!-- open:ok syms:40/42#158:ok fmt:ok -->
|
||||
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
|
||||
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
|
||||
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
|
||||
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
|
||||
fr <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_BE <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_CA <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_CH <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_FR <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
fr_LU <!-- open:ok syms:40/42#216:ok fmt:ok -->
|
||||
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
|
||||
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
|
||||
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
|
||||
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
|
||||
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
|
||||
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
|
||||
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
|
||||
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
|
||||
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
|
||||
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
|
||||
hr <!-- open:ok syms:40/42#199:ok fmt:ok -->
|
||||
hr_HR <!-- open:ok syms:40/42#199:ok fmt:ok -->
|
||||
hu <!-- open:ok syms:40/42#203:ok fmt:ok -->
|
||||
hu_HU <!-- open:ok syms:40/42#203:ok fmt:ok -->
|
||||
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
|
||||
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
|
||||
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
|
||||
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
ja <!-- open:ok syms:40/42#99:ok fmt:ok -->
|
||||
ja_JP <!-- open:ok syms:40/42#99:ok fmt:ok -->
|
||||
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
|
||||
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
|
||||
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
|
||||
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
|
||||
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
|
||||
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
|
||||
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
|
||||
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
|
||||
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
|
||||
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
|
||||
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
|
||||
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
|
||||
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
|
||||
ml <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
ml_IN <!-- open:ok syms:40/42#197:ok fmt:ok -->
|
||||
mr <!-- open:ok syms:40/42#227:ok fmt:ok -->
|
||||
mr_IN <!-- open:ok syms:40/42#227:ok fmt:ok -->
|
||||
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
|
||||
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
nb <!-- open:ok syms:40/42#194:ok fmt:ok -->
|
||||
nb_NO <!-- open:ok syms:40/42#194:ok fmt:ok -->
|
||||
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
|
||||
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
|
||||
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
|
||||
or <!-- open:ok syms:40/42#170:ok fmt:ok -->
|
||||
or_IN <!-- open:ok syms:40/42#170:ok fmt:ok -->
|
||||
pa <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
pa_IN <!-- open:ok syms:40/42#190:ok fmt:ok -->
|
||||
pl <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
pl_PL <!-- open:ok syms:40/42#195:ok fmt:ok -->
|
||||
ps <!-- open:ok syms:40/42#154:ok fmt:ok -->
|
||||
ps_AF <!-- open:ok syms:40/42#154:ok fmt:ok -->
|
||||
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
|
||||
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
|
||||
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
|
||||
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
|
||||
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
|
||||
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
|
||||
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
|
||||
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Cyrl_CS <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
sr_Latn <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sr_Latn_CS <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
|
||||
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
|
||||
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
|
||||
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
th <!-- open:ok syms:40/42#236:ok fmt:ok -->
|
||||
th_TH <!-- open:ok syms:40/42#236:ok fmt:ok -->
|
||||
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
|
||||
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
|
||||
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
|
||||
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
|
||||
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
|
||||
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
|
||||
ur <!-- open:ok syms:40/42#49:ok fmt:ok -->
|
||||
ur_PK <!-- open:ok syms:40/42#49:ok fmt:ok -->
|
||||
uz <!-- open:ok syms:40/42#211:ok fmt:ok -->
|
||||
uz_Cyrl <!-- open:ok syms:40/42#211:ok fmt:ok -->
|
||||
uz_Cyrl_UZ <!-- open:ok syms:40/42#211:ok fmt:ok -->
|
||||
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
|
||||
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
|
||||
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
|
||||
zh <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hans <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hans_CN <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hans_SG <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hant <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
zh_Hant_HK <!-- open:ok syms:40/42#93:ok fmt:ok -->
|
||||
zh_Hant_MO <!-- open:ok syms:40/42#93:ok fmt:ok -->
|
||||
zh_Hant_TW <!-- open:ok syms:40/42#92:ok fmt:ok -->
|
||||
</feature>
|
||||
<feature type="collation" total="242" version="???">
|
||||
af
|
||||
af_ZA
|
||||
am
|
||||
am_ET
|
||||
ar
|
||||
ar_AE
|
||||
ar_BH
|
||||
ar_DZ
|
||||
ar_EG
|
||||
ar_IQ
|
||||
ar_JO
|
||||
ar_KW
|
||||
ar_LB
|
||||
ar_LY
|
||||
ar_MA
|
||||
ar_OM
|
||||
ar_QA
|
||||
ar_SA
|
||||
ar_SD
|
||||
ar_SY
|
||||
ar_TN
|
||||
ar_YE
|
||||
as
|
||||
as_IN
|
||||
az
|
||||
az_Cyrl
|
||||
az_Cyrl_AZ
|
||||
az_Latn
|
||||
az_Latn_AZ
|
||||
be
|
||||
be_BY
|
||||
bg
|
||||
bg_BG
|
||||
bn
|
||||
bn_IN
|
||||
ca
|
||||
ca_ES
|
||||
cs
|
||||
cs_CZ
|
||||
cy
|
||||
cy_GB
|
||||
da
|
||||
da_DK
|
||||
de
|
||||
de_AT
|
||||
de_BE
|
||||
de_CH
|
||||
de_DE
|
||||
de_LU
|
||||
el
|
||||
el_GR
|
||||
en
|
||||
en_AU
|
||||
en_BE
|
||||
en_BW
|
||||
en_CA
|
||||
en_GB
|
||||
en_HK
|
||||
en_IE
|
||||
en_IN
|
||||
en_MT
|
||||
en_NZ
|
||||
en_PH
|
||||
en_PK
|
||||
en_SG
|
||||
en_US
|
||||
en_US_POSIX
|
||||
en_VI
|
||||
en_ZA
|
||||
en_ZW
|
||||
eo
|
||||
es
|
||||
es_AR
|
||||
es_BO
|
||||
es_CL
|
||||
es_CO
|
||||
es_CR
|
||||
es_DO
|
||||
es_EC
|
||||
es_ES
|
||||
es_GT
|
||||
es_HN
|
||||
es_MX
|
||||
es_NI
|
||||
es_PA
|
||||
es_PE
|
||||
es_PR
|
||||
es_PY
|
||||
es_SV
|
||||
es_US
|
||||
es_UY
|
||||
es_VE
|
||||
et
|
||||
et_EE
|
||||
eu
|
||||
eu_ES
|
||||
fa
|
||||
fa_AF
|
||||
fa_IR
|
||||
fi
|
||||
fi_FI
|
||||
fo
|
||||
fo_FO
|
||||
fr
|
||||
fr_BE
|
||||
fr_CA
|
||||
fr_CH
|
||||
fr_FR
|
||||
fr_LU
|
||||
ga
|
||||
ga_IE
|
||||
gl
|
||||
gl_ES
|
||||
gu
|
||||
gu_IN
|
||||
gv
|
||||
gv_GB
|
||||
he
|
||||
he_IL
|
||||
hi
|
||||
hi_IN
|
||||
hr
|
||||
hr_HR
|
||||
hu
|
||||
hu_HU
|
||||
hy
|
||||
hy_AM
|
||||
hy_AM_REVISED
|
||||
id
|
||||
id_ID
|
||||
is
|
||||
is_IS
|
||||
it
|
||||
it_CH
|
||||
it_IT
|
||||
ja
|
||||
ja_JP
|
||||
kk
|
||||
kk_KZ
|
||||
kl
|
||||
kl_GL
|
||||
kn
|
||||
kn_IN
|
||||
ko
|
||||
ko_KR
|
||||
kok
|
||||
kok_IN
|
||||
kw
|
||||
kw_GB
|
||||
lt
|
||||
lt_LT
|
||||
lv
|
||||
lv_LV
|
||||
mk
|
||||
mk_MK
|
||||
ml
|
||||
ml_IN
|
||||
mr
|
||||
mr_IN
|
||||
ms
|
||||
ms_BN
|
||||
ms_MY
|
||||
mt
|
||||
mt_MT
|
||||
nb
|
||||
nb_NO
|
||||
nl
|
||||
nl_BE
|
||||
nl_NL
|
||||
nn
|
||||
nn_NO
|
||||
om
|
||||
om_ET
|
||||
om_KE
|
||||
or
|
||||
or_IN
|
||||
pa
|
||||
pa_IN
|
||||
pl
|
||||
pl_PL
|
||||
ps
|
||||
ps_AF
|
||||
pt
|
||||
pt_BR
|
||||
pt_PT
|
||||
ro
|
||||
ro_RO
|
||||
ru
|
||||
ru_RU
|
||||
ru_UA
|
||||
sk
|
||||
sk_SK
|
||||
sl
|
||||
sl_SI
|
||||
so
|
||||
so_DJ
|
||||
so_ET
|
||||
so_KE
|
||||
so_SO
|
||||
sq
|
||||
sq_AL
|
||||
sr
|
||||
sr_Cyrl
|
||||
sr_Cyrl_CS
|
||||
sr_Latn
|
||||
sr_Latn_CS
|
||||
sv
|
||||
sv_FI
|
||||
sv_SE
|
||||
sw
|
||||
sw_KE
|
||||
sw_TZ
|
||||
ta
|
||||
ta_IN
|
||||
te
|
||||
te_IN
|
||||
th
|
||||
th_TH
|
||||
ti
|
||||
ti_ER
|
||||
ti_ET
|
||||
tr
|
||||
tr_TR
|
||||
uk
|
||||
uk_UA
|
||||
ur
|
||||
ur_PK
|
||||
uz
|
||||
uz_Cyrl
|
||||
uz_Cyrl_UZ
|
||||
uz_Latn
|
||||
uz_Latn_UZ
|
||||
vi
|
||||
vi_VN
|
||||
zh
|
||||
zh_Hans
|
||||
zh_Hans_CN
|
||||
zh_Hans_SG
|
||||
zh_Hant
|
||||
zh_Hant_HK
|
||||
zh_Hant_MO
|
||||
zh_Hant_TW
|
||||
</feature>
|
||||
</capabilities>
|
||||
</release>
|
||||
</releases>
|
||||
</icuProduct>
|
||||
</icuProducts>
|
||||
</icuInfo>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue