aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike FABIAN <mfabian@redhat.com>2023-06-01 17:02:44 +0200
committerMike FABIAN <mfabian@redhat.com>2023-09-21 10:34:35 +0200
commitaceda10bd5131cf716830827d66da9c671dec649 (patch)
tree85fce5090f9abd310d3a9e0f0e9748d729f98ac8
parent672b91ba1060887aa8897d0b98af83b96d4a52b0 (diff)
downloadglibc-aceda10bd5131cf716830827d66da9c671dec649.zip
glibc-aceda10bd5131cf716830827d66da9c671dec649.tar.gz
glibc-aceda10bd5131cf716830827d66da9c671dec649.tar.bz2
Adapt collation in th_TH locale to use the iso14651_t1_common file and sync the collation with CLDR
I made it to agree as much as possible with the rules from CLDR (see: https://github.com/unicode-org/cldr/blob/main/common/collation/th.xml). It seems to be impossible to follow the CLDR rules &[before 1]๚<ฯ # should be "variable" and &๛<ๆ # should be "variable" exactly though. These ask for a primary difference in punctuation characters whose primary weight should be "IGNORE". But using a secondary differnence instead still sorts the test data correctly and the previously used collation in th_TH used tertiary differences for these characters. There was old localedata/th_TH.in test data in TIS-620 encoding which was not used (it was not in the localedata/Makefile). I converted this to UTF-8 and moved it to localedata/th_TH.UTF-8.in and added it to localedata/Makefile. Using the existing collation rules in the th_TH locale did not sort that test file completely correct, I think my new collation rules based on iso14651_t1 are better.
-rw-r--r--localedata/Makefile2
-rw-r--r--localedata/locales/th_TH828
-rw-r--r--localedata/th_TH.UTF-8.in163
3 files changed, 252 insertions, 741 deletions
diff --git a/localedata/Makefile b/localedata/Makefile
index dd41db6..3b9802c 100644
--- a/localedata/Makefile
+++ b/localedata/Makefile
@@ -112,6 +112,7 @@ test-input := \
syr.UTF-8 \
szl_PL.UTF-8 \
tg_TJ.UTF-8 \
+ th_TH.UTF-8 \
tk_TM.UTF-8 \
tr_TR.UTF-8 \
tt_RU.UTF-8 \
@@ -305,6 +306,7 @@ LOCALES := \
syr.UTF-8 \
szl_PL.UTF-8 \
tg_TJ.UTF-8 \
+ th_TH.UTF-8 \
tk_TM.UTF-8 \
tr_TR.ISO-8859-9 \
tr_TR.UTF-8 \
diff --git a/localedata/locales/th_TH b/localedata/locales/th_TH
index 7a10376..f97b6bd 100644
--- a/localedata/locales/th_TH
+++ b/localedata/locales/th_TH
@@ -62,750 +62,96 @@ END LC_CTYPE
LC_COLLATE
-collating-element <ko-kai-e> from "<U0E40><U0E01>"
-collating-element <ko-kai-ae> from "<U0E41><U0E01>"
-collating-element <ko-kai-o> from "<U0E42><U0E01>"
-collating-element <ko-kai-ai-maimuan> from "<U0E43><U0E01>"
-collating-element <ko-kai-ai-maimalai> from "<U0E44><U0E01>"
-
-collating-element <kho-khai-e> from "<U0E40><U0E02>"
-collating-element <kho-khai-ae> from "<U0E41><U0E02>"
-collating-element <kho-khai-o> from "<U0E42><U0E02>"
-collating-element <kho-khai-ai-maimuan> from "<U0E43><U0E02>"
-collating-element <kho-khai-ai-maimalai> from "<U0E44><U0E02>"
-
-collating-element <kho-khuat-e> from "<U0E40><U0E03>"
-collating-element <kho-khuat-ae> from "<U0E41><U0E03>"
-collating-element <kho-khuat-o> from "<U0E42><U0E03>"
-collating-element <kho-khuat-ai-maimuan> from "<U0E43><U0E03>"
-collating-element <kho-khuat-ai-maimalai> from "<U0E44><U0E03>"
-
-collating-element <kho-khwai-e> from "<U0E40><U0E04>"
-collating-element <kho-khwai-ae> from "<U0E41><U0E04>"
-collating-element <kho-khwai-o> from "<U0E42><U0E04>"
-collating-element <kho-khwai-ai-maimuan> from "<U0E43><U0E04>"
-collating-element <kho-khwai-ai-maimalai> from "<U0E44><U0E04>"
-
-collating-element <kho-khon-e> from "<U0E40><U0E05>"
-collating-element <kho-khon-ae> from "<U0E41><U0E05>"
-collating-element <kho-khon-o> from "<U0E42><U0E05>"
-collating-element <kho-khon-ai-maimuan> from "<U0E43><U0E05>"
-collating-element <kho-khon-ai-maimalai> from "<U0E44><U0E05>"
-
-collating-element <kho-rakhang-e> from "<U0E40><U0E06>"
-collating-element <kho-rakhang-ae> from "<U0E41><U0E06>"
-collating-element <kho-rakhang-o> from "<U0E42><U0E06>"
-collating-element <kho-rakhang-ai-maimuan> from "<U0E43><U0E06>"
-collating-element <kho-rakhang-ai-maimalai> from "<U0E44><U0E06>"
-
-collating-element <ngo-ngu-e> from "<U0E40><U0E07>"
-collating-element <ngo-ngu-ae> from "<U0E41><U0E07>"
-collating-element <ngo-ngu-o> from "<U0E42><U0E07>"
-collating-element <ngo-ngu-ai-maimuan> from "<U0E43><U0E07>"
-collating-element <ngo-ngu-ai-maimalai> from "<U0E44><U0E07>"
-
-collating-element <cho-chan-e> from "<U0E40><U0E08>"
-collating-element <cho-chan-ae> from "<U0E41><U0E08>"
-collating-element <cho-chan-o> from "<U0E42><U0E08>"
-collating-element <cho-chan-ai-maimuan> from "<U0E43><U0E08>"
-collating-element <cho-chan-ai-maimalai> from "<U0E44><U0E08>"
-
-collating-element <cho-ching-e> from "<U0E40><U0E09>"
-collating-element <cho-ching-ae> from "<U0E41><U0E09>"
-collating-element <cho-ching-o> from "<U0E42><U0E09>"
-collating-element <cho-ching-ai-maimuan> from "<U0E43><U0E09>"
-collating-element <cho-ching-ai-maimalai> from "<U0E44><U0E09>"
-
-collating-element <cho-chang-e> from "<U0E40><U0E0A>"
-collating-element <cho-chang-ae> from "<U0E41><U0E0A>"
-collating-element <cho-chang-o> from "<U0E42><U0E0A>"
-collating-element <cho-chang-ai-maimuan> from "<U0E43><U0E0A>"
-collating-element <cho-chang-ai-maimalai> from "<U0E44><U0E0A>"
-
-collating-element <so-so-e> from "<U0E40><U0E0B>"
-collating-element <so-so-ae> from "<U0E41><U0E0B>"
-collating-element <so-so-o> from "<U0E42><U0E0B>"
-collating-element <so-so-ai-maimuan> from "<U0E43><U0E0B>"
-collating-element <so-so-ai-maimalai> from "<U0E44><U0E0B>"
-
-collating-element <cho-choe-e> from "<U0E40><U0E0C>"
-collating-element <cho-choe-ae> from "<U0E41><U0E0C>"
-collating-element <cho-choe-o> from "<U0E42><U0E0C>"
-collating-element <cho-choe-ai-maimuan> from "<U0E43><U0E0C>"
-collating-element <cho-choe-ai-maimalai> from "<U0E44><U0E0C>"
-
-collating-element <yo-ying-e> from "<U0E40><U0E0D>"
-collating-element <yo-ying-ae> from "<U0E41><U0E0D>"
-collating-element <yo-ying-o> from "<U0E42><U0E0D>"
-collating-element <yo-ying-ai-maimuan> from "<U0E43><U0E0D>"
-collating-element <yo-ying-ai-maimalai> from "<U0E44><U0E0D>"
-
-collating-element <do-chada-e> from "<U0E40><U0E0E>"
-collating-element <do-chada-ae> from "<U0E41><U0E0E>"
-collating-element <do-chada-o> from "<U0E42><U0E0E>"
-collating-element <do-chada-ai-maimuan> from "<U0E43><U0E0E>"
-collating-element <do-chada-ai-maimalai> from "<U0E44><U0E0E>"
-
-collating-element <to-patak-e> from "<U0E40><U0E0F>"
-collating-element <to-patak-ae> from "<U0E41><U0E0F>"
-collating-element <to-patak-o> from "<U0E42><U0E0F>"
-collating-element <to-patak-ai-maimuan> from "<U0E43><U0E0F>"
-collating-element <to-patak-ai-maimalai> from "<U0E44><U0E0F>"
-
-collating-element <tho-than-e> from "<U0E40><U0E10>"
-collating-element <tho-than-ae> from "<U0E41><U0E10>"
-collating-element <tho-than-o> from "<U0E42><U0E10>"
-collating-element <tho-than-ai-maimuan> from "<U0E43><U0E10>"
-collating-element <tho-than-ai-maimalai> from "<U0E44><U0E10>"
-
-collating-element <tho-nangmontho-e> from "<U0E40><U0E11>"
-collating-element <tho-nangmontho-ae> from "<U0E41><U0E11>"
-collating-element <tho-nangmontho-o> from "<U0E42><U0E11>"
-collating-element <tho-nangmontho-ai-maimuan> from "<U0E43><U0E11>"
-collating-element <tho-nangmontho-ai-maimalai> from "<U0E44><U0E11>"
-
-collating-element <tho-phuthao-e> from "<U0E40><U0E12>"
-collating-element <tho-phuthao-ae> from "<U0E41><U0E12>"
-collating-element <tho-phuthao-o> from "<U0E42><U0E12>"
-collating-element <tho-phuthao-ai-maimuan> from "<U0E43><U0E12>"
-collating-element <tho-phuthao-ai-maimalai> from "<U0E44><U0E12>"
-
-collating-element <no-nen-e> from "<U0E40><U0E13>"
-collating-element <no-nen-ae> from "<U0E41><U0E13>"
-collating-element <no-nen-o> from "<U0E42><U0E13>"
-collating-element <no-nen-ai-maimuan> from "<U0E43><U0E13>"
-collating-element <no-nen-ai-maimalai> from "<U0E44><U0E13>"
-
-collating-element <do-dek-e> from "<U0E40><U0E14>"
-collating-element <do-dek-ae> from "<U0E41><U0E14>"
-collating-element <do-dek-o> from "<U0E42><U0E14>"
-collating-element <do-dek-ai-maimuan> from "<U0E43><U0E14>"
-collating-element <do-dek-ai-maimalai> from "<U0E44><U0E14>"
-
-collating-element <to-tao-e> from "<U0E40><U0E15>"
-collating-element <to-tao-ae> from "<U0E41><U0E15>"
-collating-element <to-tao-o> from "<U0E42><U0E15>"
-collating-element <to-tao-ai-maimuan> from "<U0E43><U0E15>"
-collating-element <to-tao-ai-maimalai> from "<U0E44><U0E15>"
-
-collating-element <tho-thung-e> from "<U0E40><U0E16>"
-collating-element <tho-thung-ae> from "<U0E41><U0E16>"
-collating-element <tho-thung-o> from "<U0E42><U0E16>"
-collating-element <tho-thung-ai-maimuan> from "<U0E43><U0E16>"
-collating-element <tho-thung-ai-maimalai> from "<U0E44><U0E16>"
-
-collating-element <tho-thahan-e> from "<U0E40><U0E17>"
-collating-element <tho-thahan-ae> from "<U0E41><U0E17>"
-collating-element <tho-thahan-o> from "<U0E42><U0E17>"
-collating-element <tho-thahan-ai-maimuan> from "<U0E43><U0E17>"
-collating-element <tho-thahan-ai-maimalai> from "<U0E44><U0E17>"
-
-collating-element <tho-thong-e> from "<U0E40><U0E18>"
-collating-element <tho-thong-ae> from "<U0E41><U0E18>"
-collating-element <tho-thong-o> from "<U0E42><U0E18>"
-collating-element <tho-thong-ai-maimuan> from "<U0E43><U0E18>"
-collating-element <tho-thong-ai-maimalai> from "<U0E44><U0E18>"
-
-collating-element <no-nu-e> from "<U0E40><U0E19>"
-collating-element <no-nu-ae> from "<U0E41><U0E19>"
-collating-element <no-nu-o> from "<U0E42><U0E19>"
-collating-element <no-nu-ai-maimuan> from "<U0E43><U0E19>"
-collating-element <no-nu-ai-maimalai> from "<U0E44><U0E19>"
-
-collating-element <bo-baimai-e> from "<U0E40><U0E1A>"
-collating-element <bo-baimai-ae> from "<U0E41><U0E1A>"
-collating-element <bo-baimai-o> from "<U0E42><U0E1A>"
-collating-element <bo-baimai-ai-maimuan> from "<U0E43><U0E1A>"
-collating-element <bo-baimai-ai-maimalai> from "<U0E44><U0E1A>"
-
-collating-element <po-pla-e> from "<U0E40><U0E1B>"
-collating-element <po-pla-ae> from "<U0E41><U0E1B>"
-collating-element <po-pla-o> from "<U0E42><U0E1B>"
-collating-element <po-pla-ai-maimuan> from "<U0E43><U0E1B>"
-collating-element <po-pla-ai-maimalai> from "<U0E44><U0E1B>"
-
-collating-element <pho-phung-e> from "<U0E40><U0E1C>"
-collating-element <pho-phung-ae> from "<U0E41><U0E1C>"
-collating-element <pho-phung-o> from "<U0E42><U0E1C>"
-collating-element <pho-phung-ai-maimuan> from "<U0E43><U0E1C>"
-collating-element <pho-phung-ai-maimalai> from "<U0E44><U0E1C>"
-
-collating-element <fo-fa-e> from "<U0E40><U0E1D>"
-collating-element <fo-fa-ae> from "<U0E41><U0E1D>"
-collating-element <fo-fa-o> from "<U0E42><U0E1D>"
-collating-element <fo-fa-ai-maimuan> from "<U0E43><U0E1D>"
-collating-element <fo-fa-ai-maimalai> from "<U0E44><U0E1D>"
-
-collating-element <pho-phan-e> from "<U0E40><U0E1E>"
-collating-element <pho-phan-ae> from "<U0E41><U0E1E>"
-collating-element <pho-phan-o> from "<U0E42><U0E1E>"
-collating-element <pho-phan-ai-maimuan> from "<U0E43><U0E1E>"
-collating-element <pho-phan-ai-maimalai> from "<U0E44><U0E1E>"
-
-collating-element <fo-fan-e> from "<U0E40><U0E1F>"
-collating-element <fo-fan-ae> from "<U0E41><U0E1F>"
-collating-element <fo-fan-o> from "<U0E42><U0E1F>"
-collating-element <fo-fan-ai-maimuan> from "<U0E43><U0E1F>"
-collating-element <fo-fan-ai-maimalai> from "<U0E44><U0E1F>"
-
-collating-element <pho-samphao-e> from "<U0E40><U0E20>"
-collating-element <pho-samphao-ae> from "<U0E41><U0E20>"
-collating-element <pho-samphao-o> from "<U0E42><U0E20>"
-collating-element <pho-samphao-ai-maimuan> from "<U0E43><U0E20>"
-collating-element <pho-samphao-ai-maimalai> from "<U0E44><U0E20>"
-
-collating-element <mo-ma-e> from "<U0E40><U0E21>"
-collating-element <mo-ma-ae> from "<U0E41><U0E21>"
-collating-element <mo-ma-o> from "<U0E42><U0E21>"
-collating-element <mo-ma-ai-maimuan> from "<U0E43><U0E21>"
-collating-element <mo-ma-ai-maimalai> from "<U0E44><U0E21>"
-
-collating-element <yo-yak-e> from "<U0E40><U0E22>"
-collating-element <yo-yak-ae> from "<U0E41><U0E22>"
-collating-element <yo-yak-o> from "<U0E42><U0E22>"
-collating-element <yo-yak-ai-maimuan> from "<U0E43><U0E22>"
-collating-element <yo-yak-ai-maimalai> from "<U0E44><U0E22>"
-
-collating-element <ro-rua-e> from "<U0E40><U0E23>"
-collating-element <ro-rua-ae> from "<U0E41><U0E23>"
-collating-element <ro-rua-o> from "<U0E42><U0E23>"
-collating-element <ro-rua-ai-maimuan> from "<U0E43><U0E23>"
-collating-element <ro-rua-ai-maimalai> from "<U0E44><U0E23>"
-
-collating-element <lo-ling-e> from "<U0E40><U0E25>"
-collating-element <lo-ling-ae> from "<U0E41><U0E25>"
-collating-element <lo-ling-o> from "<U0E42><U0E25>"
-collating-element <lo-ling-ai-maimuan> from "<U0E43><U0E25>"
-collating-element <lo-ling-ai-maimalai> from "<U0E44><U0E25>"
-
-collating-element <wo-waen-e> from "<U0E40><U0E27>"
-collating-element <wo-waen-ae> from "<U0E41><U0E27>"
-collating-element <wo-waen-o> from "<U0E42><U0E27>"
-collating-element <wo-waen-ai-maimuan> from "<U0E43><U0E27>"
-collating-element <wo-waen-ai-maimalai> from "<U0E44><U0E27>"
-
-collating-element <so-sala-e> from "<U0E40><U0E28>"
-collating-element <so-sala-ae> from "<U0E41><U0E28>"
-collating-element <so-sala-o> from "<U0E42><U0E28>"
-collating-element <so-sala-ai-maimuan> from "<U0E43><U0E28>"
-collating-element <so-sala-ai-maimalai> from "<U0E44><U0E28>"
-
-collating-element <so-rusi-e> from "<U0E40><U0E29>"
-collating-element <so-rusi-ae> from "<U0E41><U0E29>"
-collating-element <so-rusi-o> from "<U0E42><U0E29>"
-collating-element <so-rusi-ai-maimuan> from "<U0E43><U0E29>"
-collating-element <so-rusi-ai-maimalai> from "<U0E44><U0E29>"
-
-collating-element <so-sua-e> from "<U0E40><U0E2A>"
-collating-element <so-sua-ae> from "<U0E41><U0E2A>"
-collating-element <so-sua-o> from "<U0E42><U0E2A>"
-collating-element <so-sua-ai-maimuan> from "<U0E43><U0E2A>"
-collating-element <so-sua-ai-maimalai> from "<U0E44><U0E2A>"
-
-collating-element <ho-hip-e> from "<U0E40><U0E2B>"
-collating-element <ho-hip-ae> from "<U0E41><U0E2B>"
-collating-element <ho-hip-o> from "<U0E42><U0E2B>"
-collating-element <ho-hip-ai-maimuan> from "<U0E43><U0E2B>"
-collating-element <ho-hip-ai-maimalai> from "<U0E44><U0E2B>"
-
-collating-element <lo-chula-e> from "<U0E40><U0E2C>"
-collating-element <lo-chula-ae> from "<U0E41><U0E2C>"
-collating-element <lo-chula-o> from "<U0E42><U0E2C>"
-collating-element <lo-chula-ai-maimuan> from "<U0E43><U0E2C>"
-collating-element <lo-chula-ai-maimalai> from "<U0E44><U0E2C>"
-
-collating-element <o-ang-e> from "<U0E40><U0E2D>"
-collating-element <o-ang-ae> from "<U0E41><U0E2D>"
-collating-element <o-ang-o> from "<U0E42><U0E2D>"
-collating-element <o-ang-ai-maimuan> from "<U0E43><U0E2D>"
-collating-element <o-ang-ai-maimalai> from "<U0E44><U0E2D>"
-
-collating-element <ho-nokhuk-e> from "<U0E40><U0E2E>"
-collating-element <ho-nokhuk-ae> from "<U0E41><U0E2E>"
-collating-element <ho-nokhuk-o> from "<U0E42><U0E2E>"
-collating-element <ho-nokhuk-ai-maimuan> from "<U0E43><U0E2E>"
-collating-element <ho-nokhuk-ai-maimalai> from "<U0E44><U0E2E>"
-
-collating-symbol <BLANK>
-collating-symbol <THAII>
-collating-symbol <CAP>
-collating-symbol <MIN>
-collating-symbol <EXTRA>
-
-order_start forward;forward;forward;forward
-
-% definitions of extra collating symbols
-<BLANK>
-<THAII>
-<CAP>
-<MIN>
-<EXTRA>
-
-UNDEFINED IGNORE;IGNORE;IGNORE;IGNORE
-
-% punctuation marks, ordered after ISO/IEC 14651
-<U0020> IGNORE;IGNORE;<U0020>;IGNORE % SPACE
-<U005F> IGNORE;IGNORE;<U005F>;IGNORE % LOW LINE
-<U002D> IGNORE;IGNORE;<U002D>;IGNORE % HYPHEN-MINUS
-<U002C> IGNORE;IGNORE;<U002C>;IGNORE % COMMA
-<U003B> IGNORE;IGNORE;<U003B>;IGNORE % SEMICOLON
-<U003A> IGNORE;IGNORE;<U003A>;IGNORE % COLON
-<U0021> IGNORE;IGNORE;<U0021>;IGNORE % EXCLAMATION MARK
-<U003F> IGNORE;IGNORE;<U003F>;IGNORE % QUESTION MARK
-<U002F> IGNORE;IGNORE;<U002F>;IGNORE % SOLIDUS
-<U002E> IGNORE;IGNORE;<U002E>;IGNORE % FULL STOP
-<U0E2F> IGNORE;IGNORE;<U0E2F>;IGNORE % THAI CHARACTER PAIYANNOI
-<U0E46> IGNORE;IGNORE;<U0E46>;IGNORE % THAI CHARACTER MAIYAMOK
-<U0060> IGNORE;IGNORE;<U0060>;IGNORE % GRAVE ACCENT
-<U005E> IGNORE;IGNORE;<U005E>;IGNORE % CIRCUMFLEX
-<U007E> IGNORE;IGNORE;<U007E>;IGNORE % TILDE
-<U0027> IGNORE;IGNORE;<U0027>;IGNORE % APOSTROPHE
-<U0022> IGNORE;IGNORE;<U0022>;IGNORE % QUOTATION MARK
-<U0028> IGNORE;IGNORE;<U0028>;IGNORE % LEFT PAREN.
-<U005B> IGNORE;IGNORE;<U005B>;IGNORE % LT BRACKET
-<U007B> IGNORE;IGNORE;<U007B>;IGNORE % LEFT CURLY BRACKET
-<U007D> IGNORE;IGNORE;<U007D>;IGNORE % RIGHT CURLY BRACKET
-<U005D> IGNORE;IGNORE;<U005D>;IGNORE % RT BRACKET
-<U0029> IGNORE;IGNORE;<U0029>;IGNORE % RIGHT PAREN.
-<U0040> IGNORE;IGNORE;<U0040>;IGNORE % COMMERCIAL AT
-<U0E3F> IGNORE;IGNORE;<U0E3F>;IGNORE % THAI CHARACTER SYMBOL BAHT
-<U0024> IGNORE;IGNORE;<U0024>;IGNORE % DOLLAR SIGN
-<U0E4F> IGNORE;IGNORE;<U0E4F>;IGNORE % THAI CHARACTER FONGMAN
-<U0E5A> IGNORE;IGNORE;<U0E5A>;IGNORE % THAI CHARACTER ANGKHANKHU
-<U0E5B> IGNORE;IGNORE;<U0E5B>;IGNORE % THAI CHARACTER KHOMUT
-<U002A> IGNORE;IGNORE;<U002A>;IGNORE % ASTERISK
-<U005C> IGNORE;IGNORE;<U005C>;IGNORE % BACK SOLIDUS
-<U0026> IGNORE;IGNORE;<U0026>;IGNORE % AMPERSAND
-<U0023> IGNORE;IGNORE;<U0023>;IGNORE % NUMBER SIGN
-<U0025> IGNORE;IGNORE;<U0025>;IGNORE % PERCENT
-<U002B> IGNORE;IGNORE;<U002B>;IGNORE % PLUS
-<U003C> IGNORE;IGNORE;<U003C>;IGNORE % LESS THAN
-<U003D> IGNORE;IGNORE;<U003D>;IGNORE % EQUAL
-<U003E> IGNORE;IGNORE;<U003E>;IGNORE % GREATER THAN
-<U007C> IGNORE;IGNORE;<U007C>;IGNORE % VERTICAL LINE
-
-% Thai tone marks and diacritics
-<U0E4E> IGNORE;<U0E4E>;<BLANK>;<BLANK> % THAI CHARACTER YAMAKKAN
-<U0E3A> IGNORE;<U0E3A>;<BLANK>;<BLANK> % THAI CHARACTER PINTHU
-<U0E4C> IGNORE;<U0E4C>;<BLANK>;<BLANK> % THAI CHARACTER THANTHAKHAT
-<U0E47> IGNORE;<U0E47>;<BLANK>;<BLANK> % THAI CHARACTER MAITAIKHU
-<U0E48> IGNORE;<U0E48>;<BLANK>;<BLANK> % THAI CHARACTER MAI EK
-<U0E49> IGNORE;<U0E49>;<BLANK>;<BLANK> % THAI CHARACTER MAI THO
-<U0E4A> IGNORE;<U0E4A>;<BLANK>;<BLANK> % THAI CHARACTER MAI TRI
-<U0E4B> IGNORE;<U0E4B>;<BLANK>;<BLANK> % THAI CHARACTER MAI CHATTAWA
-
-% Arabic and Thai decimal digits
-<U0030> <U0030>;<BLANK>;<BLANK>;<BLANK> % DIGIT ZERO
-<U0E50> <U0030>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT ZERO
-<U0031> <U0031>;<BLANK>;<BLANK>;<BLANK> % DIGIT ONE
-<U0E51> <U0031>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT ONE
-<U0032> <U0032>;<BLANK>;<BLANK>;<BLANK> % DIGIT TWO
-<U0E52> <U0032>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT TWO
-<U0033> <U0033>;<BLANK>;<BLANK>;<BLANK> % DIGIT THREE
-<U0E53> <U0033>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT THREE
-<U0034> <U0034>;<BLANK>;<BLANK>;<BLANK> % DIGIT FOUR
-<U0E54> <U0034>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT FOUR
-<U0035> <U0035>;<BLANK>;<BLANK>;<BLANK> % DIGIT FIVE
-<U0E55> <U0035>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT FIVE
-<U0036> <U0036>;<BLANK>;<BLANK>;<BLANK> % DIGIT SIX
-<U0E56> <U0036>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT SIX
-<U0037> <U0037>;<BLANK>;<BLANK>;<BLANK> % DIGIT SEVEN
-<U0E57> <U0037>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT SEVEN
-<U0038> <U0038>;<BLANK>;<BLANK>;<BLANK> % DIGIT EIGHT
-<U0E58> <U0038>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT EIGHT
-<U0039> <U0039>;<BLANK>;<BLANK>;<BLANK> % DIGIT NINE
-<U0E59> <U0039>;<THAII>;<BLANK>;<BLANK> % THAI DIGIT NINE
-
-% Latin alphabet
-<U0041> <U0041>;<BLANK>;<BLANK>;<CAP> % A
-<U0061> <U0041>;<BLANK>;<BLANK>;<MIN> % a
-<U0042> <U0042>;<BLANK>;<BLANK>;<CAP> % B
-<U0062> <U0042>;<BLANK>;<BLANK>;<MIN> % b
-<U0043> <U0043>;<BLANK>;<BLANK>;<CAP> % C
-<U0063> <U0043>;<BLANK>;<BLANK>;<MIN> % c
-<U0044> <U0044>;<BLANK>;<BLANK>;<CAP> % D
-<U0064> <U0044>;<BLANK>;<BLANK>;<MIN> % d
-<U0045> <U0045>;<BLANK>;<BLANK>;<CAP> % E
-<U0065> <U0045>;<BLANK>;<BLANK>;<MIN> % e
-<U0046> <U0046>;<BLANK>;<BLANK>;<CAP> % F
-<U0066> <U0046>;<BLANK>;<BLANK>;<MIN> % f
-<U0047> <U0047>;<BLANK>;<BLANK>;<CAP> % G
-<U0067> <U0047>;<BLANK>;<BLANK>;<MIN> % g
-<U0048> <U0048>;<BLANK>;<BLANK>;<CAP> % H
-<U0068> <U0048>;<BLANK>;<BLANK>;<MIN> % h
-<U0049> <U0049>;<BLANK>;<BLANK>;<CAP> % I
-<U0069> <U0049>;<BLANK>;<BLANK>;<MIN> % i
-<U004A> <U004A>;<BLANK>;<BLANK>;<CAP> % J
-<U006A> <U004A>;<BLANK>;<BLANK>;<MIN> % j
-<U004B> <U004B>;<BLANK>;<BLANK>;<CAP> % K
-<U006B> <U004B>;<BLANK>;<BLANK>;<MIN> % k
-<U004C> <U004C>;<BLANK>;<BLANK>;<CAP> % L
-<U006C> <U004C>;<BLANK>;<BLANK>;<MIN> % l
-<U004D> <U004D>;<BLANK>;<BLANK>;<CAP> % M
-<U006D> <U004D>;<BLANK>;<BLANK>;<MIN> % m
-<U004E> <U004E>;<BLANK>;<BLANK>;<CAP> % N
-<U006E> <U004E>;<BLANK>;<BLANK>;<MIN> % n
-<U004F> <U004F>;<BLANK>;<BLANK>;<CAP> % O
-<U006F> <U004F>;<BLANK>;<BLANK>;<MIN> % o
-<U0050> <U0050>;<BLANK>;<BLANK>;<CAP> % P
-<U0070> <U0050>;<BLANK>;<BLANK>;<MIN> % p
-<U0051> <U0051>;<BLANK>;<BLANK>;<CAP> % Q
-<U0071> <U0051>;<BLANK>;<BLANK>;<MIN> % q
-<U0052> <U0052>;<BLANK>;<BLANK>;<CAP> % R
-<U0072> <U0052>;<BLANK>;<BLANK>;<MIN> % r
-<U0053> <U0053>;<BLANK>;<BLANK>;<CAP> % S
-<U0073> <U0053>;<BLANK>;<BLANK>;<MIN> % s
-<U0054> <U0054>;<BLANK>;<BLANK>;<CAP> % T
-<U0074> <U0054>;<BLANK>;<BLANK>;<MIN> % t
-<U0055> <U0055>;<BLANK>;<BLANK>;<CAP> % U
-<U0075> <U0055>;<BLANK>;<BLANK>;<MIN> % u
-<U0056> <U0056>;<BLANK>;<BLANK>;<CAP> % V
-<U0076> <U0056>;<BLANK>;<BLANK>;<MIN> % v
-<U0057> <U0057>;<BLANK>;<BLANK>;<CAP> % W
-<U0077> <U0057>;<BLANK>;<BLANK>;<MIN> % w
-<U0058> <U0058>;<BLANK>;<BLANK>;<CAP> % X
-<U0078> <U0058>;<BLANK>;<BLANK>;<MIN> % x
-<U0059> <U0059>;<BLANK>;<BLANK>;<CAP> % Y
-<U0079> <U0059>;<BLANK>;<BLANK>;<MIN> % y
-<U005A> <U005A>;<BLANK>;<BLANK>;<CAP> % Z
-<U007A> <U005A>;<BLANK>;<BLANK>;<MIN> % z
+% Copy the template from ISO/IEC 14651
+copy "iso14651_t1"
+% CLDR collation rules for Thai:
+% (see: https://github.com/unicode-org/cldr/blob/main/common/collation/th.xml)
%
-% Thai consonants, with leading vowels rearrangement
+%[normalization on]
+%[alternate shifted]
+%[reorder Thai]
+% #
+% # The following tailoring is an adjustment of the
+% # DUCET collation order for PAIYANNOI, MAIYAMOK,
+% # NIKHAHIT, LAKKHANGYAO, and PHINTHU. This gives
+% # a sort order as defined in the Royal Institute
+% # Dictionary 2542 B.E. Edition (1999 A.D.).
+% #
+% &[before 1]๚<ฯ # should be "variable"
%
-<U0E01> <U0E01>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER KO KAI
-<ko-kai-e> "<U0E01><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<ko-kai-ae> "<U0E01><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<ko-kai-o> "<U0E01><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<ko-kai-ai-maimuan> "<U0E01><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<ko-kai-ai-maimalai> "<U0E01><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E02> <U0E02>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER KHO KHAI
-<kho-khai-e> "<U0E02><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<kho-khai-ae> "<U0E02><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<kho-khai-o> "<U0E02><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<kho-khai-ai-maimuan> "<U0E02><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<kho-khai-ai-maimalai> "<U0E02><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E03> <U0E03>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER KHO KHUAT
-<kho-khuat-e> "<U0E03><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<kho-khuat-ae> "<U0E03><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<kho-khuat-o> "<U0E03><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<kho-khuat-ai-maimuan> "<U0E03><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<kho-khuat-ai-maimalai> "<U0E03><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E04> <U0E04>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER KHO KHWAI
-<kho-khwai-e> "<U0E04><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<kho-khwai-ae> "<U0E04><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<kho-khwai-o> "<U0E04><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<kho-khwai-ai-maimuan> "<U0E04><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<kho-khwai-ai-maimalai> "<U0E04><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E05> <U0E05>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER KHO KHON
-<kho-khon-e> "<U0E05><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<kho-khon-ae> "<U0E05><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<kho-khon-o> "<U0E05><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<kho-khon-ai-maimuan> "<U0E05><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<kho-khon-ai-maimalai> "<U0E05><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E06> <U0E06>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER KHO RAKHANG
-<kho-rakhang-e> "<U0E06><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<kho-rakhang-ae> "<U0E06><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<kho-rakhang-o> "<U0E06><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<kho-rakhang-ai-maimuan> "<U0E06><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<kho-rakhang-ai-maimalai> "<U0E06><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E07> <U0E07>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER NGO NGU
-<ngo-ngu-e> "<U0E07><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<ngo-ngu-ae> "<U0E07><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<ngo-ngu-o> "<U0E07><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<ngo-ngu-ai-maimuan> "<U0E07><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<ngo-ngu-ai-maimalai> "<U0E07><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E08> <U0E08>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER CHO CHAN
-<cho-chan-e> "<U0E08><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<cho-chan-ae> "<U0E08><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<cho-chan-o> "<U0E08><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<cho-chan-ai-maimuan> "<U0E08><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<cho-chan-ai-maimalai> "<U0E08><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E09> <U0E09>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER CHO CHING
-<cho-ching-e> "<U0E09><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<cho-ching-ae> "<U0E09><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<cho-ching-o> "<U0E09><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<cho-ching-ai-maimuan> "<U0E09><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<cho-ching-ai-maimalai> "<U0E09><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E0A> <U0E0A>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER CHO CHANG
-<cho-chang-e> "<U0E0A><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<cho-chang-ae> "<U0E0A><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<cho-chang-o> "<U0E0A><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<cho-chang-ai-maimuan> "<U0E0A><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<cho-chang-ai-maimalai> "<U0E0A><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E0B> <U0E0B>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SO SO
-<so-so-e> "<U0E0B><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<so-so-ae> "<U0E0B><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<so-so-o> "<U0E0B><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<so-so-ai-maimuan> "<U0E0B><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<so-so-ai-maimalai> "<U0E0B><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E0C> <U0E0C>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER CHO CHOE
-<cho-choe-e> "<U0E0C><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<cho-choe-ae> "<U0E0C><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<cho-choe-o> "<U0E0C><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<cho-choe-ai-maimuan> "<U0E0C><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<cho-choe-ai-maimalai> "<U0E0C><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E0D> <U0E0D>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER YO YING
-<yo-ying-e> "<U0E0D><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<yo-ying-ae> "<U0E0D><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<yo-ying-o> "<U0E0D><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<yo-ying-ai-maimuan> "<U0E0D><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<yo-ying-ai-maimalai> "<U0E0D><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E0E> <U0E0E>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER DO CHADA
-<do-chada-e> "<U0E0E><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<do-chada-ae> "<U0E0E><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<do-chada-o> "<U0E0E><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<do-chada-ai-maimuan> "<U0E0E><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<do-chada-ai-maimalai> "<U0E0E><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E0F> <U0E0F>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER TO PATAK
-<to-patak-e> "<U0E0F><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<to-patak-ae> "<U0E0F><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<to-patak-o> "<U0E0F><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<to-patak-ai-maimuan> "<U0E0F><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<to-patak-ai-maimalai> "<U0E0F><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E10> <U0E10>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER THO THAN
-<tho-than-e> "<U0E10><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<tho-than-ae> "<U0E10><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<tho-than-o> "<U0E10><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<tho-than-ai-maimuan> "<U0E10><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<tho-than-ai-maimalai> "<U0E10><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E11> <U0E11>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER THO NANGMONTHO
-<tho-nangmontho-e> "<U0E11><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<tho-nangmontho-ae> "<U0E11><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<tho-nangmontho-o> "<U0E11><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<tho-nangmontho-ai-maimuan> "<U0E11><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<tho-nangmontho-ai-maimalai> "<U0E11><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E12> <U0E12>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER THO PHUTHAO
-<tho-phuthao-e> "<U0E12><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<tho-phuthao-ae> "<U0E12><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<tho-phuthao-o> "<U0E12><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<tho-phuthao-ai-maimuan> "<U0E12><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<tho-phuthao-ai-maimalai> "<U0E12><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E13> <U0E13>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER NO NEN
-<no-nen-e> "<U0E13><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<no-nen-ae> "<U0E13><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<no-nen-o> "<U0E13><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<no-nen-ai-maimuan> "<U0E13><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<no-nen-ai-maimalai> "<U0E13><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E14> <U0E14>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER DO DEK
-<do-dek-e> "<U0E14><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<do-dek-ae> "<U0E14><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<do-dek-o> "<U0E14><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<do-dek-ai-maimuan> "<U0E14><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<do-dek-ai-maimalai> "<U0E14><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E15> <U0E15>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER TO TAO
-<to-tao-e> "<U0E15><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<to-tao-ae> "<U0E15><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<to-tao-o> "<U0E15><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<to-tao-ai-maimuan> "<U0E15><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<to-tao-ai-maimalai> "<U0E15><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E16> <U0E16>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER THO THUNG
-<tho-thung-e> "<U0E16><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<tho-thung-ae> "<U0E16><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<tho-thung-o> "<U0E16><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<tho-thung-ai-maimuan> "<U0E16><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<tho-thung-ai-maimalai> "<U0E16><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E17> <U0E17>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER THO THAHAN
-<tho-thahan-e> "<U0E17><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<tho-thahan-ae> "<U0E17><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<tho-thahan-o> "<U0E17><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<tho-thahan-ai-maimuan> "<U0E17><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<tho-thahan-ai-maimalai> "<U0E17><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E18> <U0E18>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER THO THONG
-<tho-thong-e> "<U0E18><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<tho-thong-ae> "<U0E18><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<tho-thong-o> "<U0E18><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<tho-thong-ai-maimuan> "<U0E18><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<tho-thong-ai-maimalai> "<U0E18><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E19> <U0E19>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER NO NU
-<no-nu-e> "<U0E19><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<no-nu-ae> "<U0E19><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<no-nu-o> "<U0E19><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<no-nu-ai-maimuan> "<U0E19><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<no-nu-ai-maimalai> "<U0E19><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E1A> <U0E1A>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER BO BAIMAI
-<bo-baimai-e> "<U0E1A><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<bo-baimai-ae> "<U0E1A><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<bo-baimai-o> "<U0E1A><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<bo-baimai-ai-maimuan> "<U0E1A><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<bo-baimai-ai-maimalai> "<U0E1A><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E1B> <U0E1B>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER PO PLA
-<po-pla-e> "<U0E1B><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<po-pla-ae> "<U0E1B><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<po-pla-o> "<U0E1B><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<po-pla-ai-maimuan> "<U0E1B><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<po-pla-ai-maimalai> "<U0E1B><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E1C> <U0E1C>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER PHO PHUNG
-<pho-phung-e> "<U0E1C><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<pho-phung-ae> "<U0E1C><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<pho-phung-o> "<U0E1C><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<pho-phung-ai-maimuan> "<U0E1C><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<pho-phung-ai-maimalai> "<U0E1C><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E1D> <U0E1D>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER FO FA
-<fo-fa-e> "<U0E1D><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<fo-fa-ae> "<U0E1D><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<fo-fa-o> "<U0E1D><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<fo-fa-ai-maimuan> "<U0E1D><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<fo-fa-ai-maimalai> "<U0E1D><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E1E> <U0E1E>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER PHO PHAN
-<pho-phan-e> "<U0E1E><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<pho-phan-ae> "<U0E1E><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<pho-phan-o> "<U0E1E><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<pho-phan-ai-maimuan> "<U0E1E><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<pho-phan-ai-maimalai> "<U0E1E><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E1F> <U0E1F>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER FO FAN
-<fo-fan-e> "<U0E1F><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<fo-fan-ae> "<U0E1F><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<fo-fan-o> "<U0E1F><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<fo-fan-ai-maimuan> "<U0E1F><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<fo-fan-ai-maimalai> "<U0E1F><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E20> <U0E20>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER PHO SAMPHAO
-<pho-samphao-e> "<U0E20><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<pho-samphao-ae> "<U0E20><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<pho-samphao-o> "<U0E20><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<pho-samphao-ai-maimuan> "<U0E20><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<pho-samphao-ai-maimalai> "<U0E20><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E21> <U0E21>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER MO MA
-<mo-ma-e> "<U0E21><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<mo-ma-ae> "<U0E21><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<mo-ma-o> "<U0E21><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<mo-ma-ai-maimuan> "<U0E21><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<mo-ma-ai-maimalai> "<U0E21><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E22> <U0E22>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER YO YAK
-<yo-yak-e> "<U0E22><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<yo-yak-ae> "<U0E22><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<yo-yak-o> "<U0E22><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<yo-yak-ai-maimuan> "<U0E22><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<yo-yak-ai-maimalai> "<U0E22><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E23> <U0E23>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER RO RUA
-<ro-rua-e> "<U0E23><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<ro-rua-ae> "<U0E23><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<ro-rua-o> "<U0E23><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<ro-rua-ai-maimuan> "<U0E23><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<ro-rua-ai-maimalai> "<U0E23><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E24> <U0E24>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER RU
-
-<U0E25> <U0E25>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER LO LING
-<lo-ling-e> "<U0E25><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<lo-ling-ae> "<U0E25><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<lo-ling-o> "<U0E25><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<lo-ling-ai-maimuan> "<U0E25><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<lo-ling-ai-maimalai> "<U0E25><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E26> <U0E26>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER LU
-
-<U0E27> <U0E27>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER WO WAEN
-<wo-waen-e> "<U0E27><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<wo-waen-ae> "<U0E27><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<wo-waen-o> "<U0E27><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<wo-waen-ai-maimuan> "<U0E27><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<wo-waen-ai-maimalai> "<U0E27><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E28> <U0E28>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SO SALA
-<so-sala-e> "<U0E28><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<so-sala-ae> "<U0E28><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<so-sala-o> "<U0E28><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<so-sala-ai-maimuan> "<U0E28><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<so-sala-ai-maimalai> "<U0E28><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E29> <U0E29>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SO RUSI
-<so-rusi-e> "<U0E29><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<so-rusi-ae> "<U0E29><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<so-rusi-o> "<U0E29><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<so-rusi-ai-maimuan> "<U0E29><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<so-rusi-ai-maimalai> "<U0E29><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E2A> <U0E2A>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SO SUA
-<so-sua-e> "<U0E2A><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<so-sua-ae> "<U0E2A><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<so-sua-o> "<U0E2A><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<so-sua-ai-maimuan> "<U0E2A><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<so-sua-ai-maimalai> "<U0E2A><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E2B> <U0E2B>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER HO HIP
-<ho-hip-e> "<U0E2B><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<ho-hip-ae> "<U0E2B><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<ho-hip-o> "<U0E2B><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<ho-hip-ai-maimuan> "<U0E2B><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<ho-hip-ai-maimalai> "<U0E2B><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E2C> <U0E2C>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER LO CHULA
-<lo-chula-e> "<U0E2C><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<lo-chula-ae> "<U0E2C><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<lo-chula-o> "<U0E2C><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<lo-chula-ai-maimuan> "<U0E2C><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<lo-chula-ai-maimalai> "<U0E2C><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E2D> <U0E2D>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER O ANG
-<o-ang-e> "<U0E2D><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<o-ang-ae> "<U0E2D><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<o-ang-o> "<U0E2D><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<o-ang-ai-maimuan> "<U0E2D><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<o-ang-ai-maimalai> "<U0E2D><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E2E> <U0E2E>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER HO NOKHUK
-<ho-nokhuk-e> "<U0E2E><U0E40>";<BLANK>;<BLANK>;<BLANK>
-<ho-nokhuk-ae> "<U0E2E><U0E41>";<BLANK>;<BLANK>;<BLANK>
-<ho-nokhuk-o> "<U0E2E><U0E42>";<BLANK>;<BLANK>;<BLANK>
-<ho-nokhuk-ai-maimuan> "<U0E2E><U0E43>";<BLANK>;<BLANK>;<BLANK>
-<ho-nokhuk-ai-maimalai> "<U0E2E><U0E44>";<BLANK>;<BLANK>;<BLANK>
-
-<U0E4D> <U0E4D>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER NIKHAHIT
-
-% order of Thai vowels
-<U0E30> <U0E30>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA A
-<U0E31> <U0E31>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER MAI HAN-AKAT
-<U0E32> <U0E32>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA AA
-<U0E45> <U0E32>;<BLANK>;<BLANK>;<EXTRA> % THAI CHARACTER LAKKHANGYAO
-<U0E33> <U0E33>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA AM
-<U0E34> <U0E34>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA I
-<U0E35> <U0E35>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA II
-<U0E36> <U0E36>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA UE
-<U0E37> <U0E37>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA UEE
-<U0E38> <U0E38>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA U
-<U0E39> <U0E39>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA UU
-<U0E40> <U0E40>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA E
-<U0E41> <U0E41>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA AE
-<U0E42> <U0E42>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA O
-<U0E43> <U0E43>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA AI MAIMUAN
-<U0E44> <U0E44>;<BLANK>;<BLANK>;<BLANK> % THAI CHARACTER SARA AI MAIMALAI
-
-order_end
+% &๛<ๆ # should be "variable"
+%
+% &๎<<์
+% &[before 1]ะ<ํ
+% &า<<<ๅ
+% &าํ<<<ํา<<<ำ
+% &ๅํ<<<ํๅ
+% &ไ<ฺ
+% # consider: order pali virama as secondary different from yammacan (another old virama)
+% # &๎
+% # <<ฺ
+% #
+
+collating-element <U0E32_0E4D> from "<U0E32><U0E4D>"
+% This is already defined in iso14651_t1:
+% collating-element <U0E4D_0E32> from "<U0E4D><U0E32>" % decomposition of THAI CHARACTER SARA AM
+
+collating-element <U0E45_0E4D> from "<U0E45><U0E4D>" % LAKKHANGYAO + NIKHAHIT
+collating-element <U0E4D_0E45> from "<U0E4D><U0E45>" % NIKHAHIT + LAKKHANGYAO
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Finished defining collating-elements and collating-symbols
+%
+% One dummy reorder-after statement here to avoid a syntax error
+% because the first rule reordering stuff starts without a reorder-after:
+collating-symbol <dummy>
+reorder-after <S002E> % FULL STOP
+<dummy>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% &[before 1]๚<ฯ # should be "variable"
+% ๚ U+0E5A should keep "IGNORE" as the primary weight (as defined in iso14651_t1_common).
+% Therefore, I cannot sort ฯ U+0E2F before ๚ U+0E5A as a primary difference.
+% Sorting it before as a secondary difference works though. To sort the existing test data
+% in the correct order, this seems good enough. The previous collation in
+% this th_TH locale, which did not use 'copy "iso14651_t1"' had these characters
+% as a tertinary difference:
+% <U0E2F> IGNORE;IGNORE;<U0E2F>;IGNORE % THAI CHARACTER PAIYANNOI
+% <U0E5A> IGNORE;IGNORE;<U0E5A>;IGNORE % THAI CHARACTER ANGKHANKHU
+<U0E2F> IGNORE;"<U0E5A><VRNT1>";IGNORE;<U0E2F> % ฯ THAI CHARACTER PAIYANNOI
+<U0E5A> IGNORE;"<U0E5A><VRNT2>";IGNORE;<U0E5A> % ๚ THAI CHARACTER ANGKHANKHU
+% &๛<ๆ # should be "variable"
+% ๛ U+0E5B should keep "IGNORE" as the primary weight (as defined in iso14651_t1_common).
+% Therefore I cannot sort ๆ U+0E46 after ๛ U+0E5B as a primary difference.
+% Sorting it after as a secondary differnce works though and it seems good enough
+% to sort the existing test data in the correct order. The previous collation in
+% this th_TH locale, which did not use 'copy "iso14651_t1"' had these characters
+% as a tertinary difference:
+% <U0E46> IGNORE;IGNORE;<U0E46>;IGNORE % THAI CHARACTER MAIYAMOK
+% <U0E5B> IGNORE;IGNORE;<U0E5B>;IGNORE % THAI CHARACTER KHOMUT
+<U0E5B> IGNORE;"<U0E5B><VRNT1>";IGNORE;<U0E5B> % ๛ THAI CHARACTER KHOMUT
+<U0E46> IGNORE;"<U0E5B><VRNT2>";IGNORE;<U0E46> % ๆ THAI CHARACTER MAIYAMOK
+% &๎<<์
+<U0E4E> IGNORE;<D0E4E>;IGNORE;<U0E4E> % ๎ THAI CHARACTER YAMAKKAN
+<U0E4C> IGNORE;<D0E4C>;IGNORE;<U0E4C> % ์ THAI CHARACTER THANTHAKHAT
+% &[before 1]ะ<ํ
+<U0E4D> "<S0E30><VRNT1>";<BASE>;<MIN>;<U0E4D> % ํ THAI CHARACTER NIKHAHIT
+<U0E30> "<S0E30><VRNT2>";<BASE>;<MIN>;<U0E30> % ะ THAI CHARACTER SARA A
+% &า<<<ๅ
+<U0E32> <S0E32>;<BASE>;<MIN>;<U0E32> % า THAI CHARACTER SARA AA
+<U0E45> <S0E32>;<BASE>;<COMPAT>;<U0E45> % ๅ THAI CHARACTER LAKKHANGYAO
+% &าํ<<<ํา<<<ำ
+<U0E32_0E4D> <S0E33>;<BASE>;<MIN>;<U0E33> % าํ decomposition of THAI CHARACTER SARA AM
+<U0E4D_0E32> <S0E33>;<BASE>;<CAP>;<U0E33> % ํา decomposition of THAI CHARACTER SARA AM
+<U0E33> <S0E33>;<BASE>;<MAX>;<U0E33> % ำ THAI CHARACTER SARA AM
+% &ๅํ<<<ํๅ
+<U0E45_0E4D> <S0E32>;<BASE>;<CAP>;<U0E45> % LAKKHANGYAO + NIKHAHIT
+<U0E4D_0E45> <S0E32>;<BASE>;<MAX>;<U0E45> % NIKHAHIT + LAKKHANGYAO
+% &ไ<ฺ
+reorder-after <S0E44>
+<S0E3A>
+
+reorder-end
END LC_COLLATE
diff --git a/localedata/th_TH.UTF-8.in b/localedata/th_TH.UTF-8.in
new file mode 100644
index 0000000..06263dd
--- /dev/null
+++ b/localedata/th_TH.UTF-8.in
@@ -0,0 +1,163 @@
+*
+.
+๎
+์
+ฯ
+๚
+๛
+ๆ
+0
+๐
+0000
+๐๐๐๐
+10
+๑๐
+9
+๙
+9999
+๙๙๙๙
+a
+A
+๎A
+์a
+ฯä
+๚a
+๛ä
+ๆa
+b
+B
+กก
+กรรม
+กรรม์
+กราบ
+กะเกณฑ์
+กัก
+ก้าว
+กำ
+กิน
+กี่
+กึ๋น
+กุน
+กูด
+เก้ง
+เกล้า
+เกลียว
+เก้า
+เกาะ
+เกี่ยว
+เกี๊ยะ
+เกือก
+แกง
+แกะ
+โกน
+โกร๋น
+ใกล้
+ไก่
+ไกล
+ข้น
+ขนาบ
+ขาง
+ข่าง
+ข้าง
+ข้างๆ
+ข้างกระดาน
+ข้างขึ้น
+ข้างควาย
+ข้างๆ คูๆ
+ข้างเงิน
+ข้างแรม
+ข้างออก
+เข็ด
+เขน
+เข็น
+เข่น
+แข็ง
+แข่ง
+แข้ง
+แข้งขวา
+แข็งขัน
+แข่งขัน
+แขน
+แขวะ
+ฃวด
+ครรภ-
+ครรภ์
+ฅอ
+งาม
+จุมพล
+จุํพล
+ฉาก
+ชาย
+ซาบ
+ญาณ
+ฎีกา
+ฐาน
+ฑาหะ
+เฒ่า
+เณร
+ดนตรี
+ตลาด
+ถนน
+ทูลเกล้า
+ทูลเกล้าฯ
+ทูลเกล้าทูลกระหม่อม
+ธนาคาร
+น้า
+น้ำ
+นี้
+บุญญา
+บุญหลง
+ปา
+ป่า
+ป้า
+ป๊า
+ป๋า
+ปาน
+ป่าน
+ป้าน
+แป้ง
+ผัด
+ฝา
+ฯพณฯ
+พณิชย์
+ฟาง
+ภาษี
+ม้า
+ย่อง
+รอง
+ฤทธิ์
+ฤษี
+ฤๅษี
+ลลิตา
+ฦๅชา
+วก
+ศาล
+ษมา
+สกุล
+หริภุญชัย
+หฤทัย
+หลง
+แหง่
+แห่ง
+แหนม
+แหนหวง
+แหบ
+แหม
+อาน
+ฮา
+ไฮโล
+ํ
+ํä
+ะ
+ะa
+า
+ๅ
+ๅํ
+ํๅ
+ๅa
+าä
+าํ
+ํา
+ำ
+ไ
+ฺ