2
|
1 |
/*
|
|
2 |
* Portions Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved.
|
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
4 |
*
|
|
5 |
* This code is free software; you can redistribute it and/or modify it
|
|
6 |
* under the terms of the GNU General Public License version 2 only, as
|
|
7 |
* published by the Free Software Foundation. Sun designates this
|
|
8 |
* particular file as subject to the "Classpath" exception as provided
|
|
9 |
* by Sun in the LICENSE file that accompanied this code.
|
|
10 |
*
|
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that
|
|
15 |
* accompanied this code).
|
|
16 |
*
|
|
17 |
* You should have received a copy of the GNU General Public License version
|
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
20 |
*
|
|
21 |
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
|
22 |
* CA 95054 USA or visit www.sun.com if you need additional information or
|
|
23 |
* have any questions.
|
|
24 |
*/
|
|
25 |
|
|
26 |
/*
|
|
27 |
*/
|
|
28 |
|
|
29 |
/*
|
|
30 |
* IBM Confidential
|
|
31 |
* OCO Source Materials
|
|
32 |
*
|
|
33 |
* IBM Java(tm)2 SDK, Standard Edition, v 1.2
|
|
34 |
*
|
|
35 |
* (C) Copyright IBM Corp. 1999
|
|
36 |
*
|
|
37 |
* The source code for this program is not published or otherwise divested of
|
|
38 |
* its trade secrets, irrespective of what has been deposited with the U.S.
|
|
39 |
* Copyright office.
|
|
40 |
*
|
|
41 |
*/
|
|
42 |
|
|
43 |
/*
|
|
44 |
* Since JDK 1.5.0, this file no longer goes to runtime and is used at J2SE
|
|
45 |
* build phase in order to create [Word|Line]BreakIteratorData_th files which
|
|
46 |
* are used on runtime instead.
|
|
47 |
*/
|
|
48 |
|
|
49 |
package sun.text.resources;
|
|
50 |
|
|
51 |
import java.util.ListResourceBundle;
|
|
52 |
import java.util.MissingResourceException;
|
|
53 |
import java.net.URL;
|
|
54 |
|
|
55 |
public class BreakIteratorRules_th extends ListResourceBundle {
|
|
56 |
protected final Object[][] getContents() {
|
|
57 |
return new Object[][] {
|
|
58 |
{ "WordBreakRules",
|
|
59 |
// this rule breaks the iterator with mixed Thai and English
|
|
60 |
"<dictionary>=[\u0e01-\u0e2e\u0e30-\u0e3a\u0e40-\u0e44\u0e47-\u0e4e];"
|
|
61 |
|
|
62 |
+ "<ignore>=[:Mn::Me::Cf:^<dictionary>];"
|
|
63 |
+ "<paiyannoi>=[\u0e2f];"
|
|
64 |
+ "<maiyamok>=[\u0e46];"
|
|
65 |
+ "<danda>=[\u0964\u0965];"
|
|
66 |
+ "<kanji>=[\u3005\u4e00-\u9fa5\uf900-\ufa2d];"
|
|
67 |
+ "<kata>=[\u30a1-\u30fa];"
|
|
68 |
+ "<hira>=[\u3041-\u3094];"
|
|
69 |
+ "<cjk-diacrit>=[\u3099-\u309c];"
|
|
70 |
+ "<let>=[:L::Mc:^[<kanji><kata><hira><cjk-diacrit><dictionary>]];"
|
|
71 |
+ "<dgt>=[:N:];"
|
|
72 |
+ "<mid-word>=[:Pd:\u00ad\u2027\\\"\\\'\\.];"
|
|
73 |
+ "<mid-num>=[\\\"\\\'\\,\u066b\\.];"
|
|
74 |
+ "<pre-num>=[:Sc:\\#\\.^\u00a2];"
|
|
75 |
+ "<post-num>=[\\%\\&\u00a2\u066a\u2030\u2031];"
|
|
76 |
+ "<ls>=[\n\u000c\u2028\u2029];"
|
|
77 |
+ "<ws>=[:Zs:\t];"
|
|
78 |
+ "<word>=((<let><let>*(<mid-word><let><let>*)*){<danda>});"
|
|
79 |
+ "<number>=(<dgt><dgt>*(<mid-num><dgt><dgt>*)*);"
|
|
80 |
+ "<thai-etc>=<paiyannoi>\u0e25<paiyannoi>;"
|
|
81 |
+ ".;"
|
|
82 |
+ "{<word>}(<number><word>)*{<number>{<post-num>}};"
|
|
83 |
+ "<pre-num>(<number><word>)*{<number>{<post-num>}};"
|
|
84 |
+ "<dictionary><dictionary>*{{<paiyannoi>}<maiyamok>};"
|
|
85 |
+ "<dictionary><dictionary>*<paiyannoi>/([^[\u0e25<ignore>]]"
|
|
86 |
+ "|\u0e25[^[<paiyannoi><ignore>]]);"
|
|
87 |
+ "<thai-etc>;"
|
|
88 |
+ "<ws>*{\r}{<ls>};"
|
|
89 |
+ "[<kata><cjk-diacrit>]*;"
|
|
90 |
+ "[<hira><cjk-diacrit>]*;"
|
|
91 |
+ "<kanji>*;"
|
|
92 |
},
|
|
93 |
|
|
94 |
{ "LineBreakRules",
|
|
95 |
"<dictionary>=[\u0e01-\u0e2e\u0e30-\u0e3a\u0e40-\u0e44\u0e47-\u0e4e];" // this rule breaks the iterator with mixed Thai and English
|
|
96 |
+ "<ignore>=[:Mn::Me::Cf:^[<dictionary>]];"
|
|
97 |
+ "<danda>=[\u0964\u0965];"
|
|
98 |
+ "<break>=[\u0003\t\n\f\u2028\u2029];"
|
|
99 |
+ "<nbsp>=[\u00a0\u0f0c\u2007\u2011\u202f\ufeff];"
|
|
100 |
+ "<space>=[:Zs::Cc:^[<nbsp><break>\r]];"
|
|
101 |
+ "<dash>=[:Pd:\u00ad^<nbsp>];"
|
|
102 |
+ "<paiyannoi>=[\u0e2f];"
|
|
103 |
+ "<maiyamok>=[\u0e46];"
|
|
104 |
+ "<thai-etc>=(<paiyannoi>\u0e25<paiyannoi>);"
|
|
105 |
+ "<pre-word>=[:Sc::Ps::Pi:^\u00a2\\\"];"
|
|
106 |
+ "<post-word>=[:Pe::Pf:\\!\\%\\.\\,\\:\\;\\?\\\"\u00a2\u00b0\u066a\u2030-\u2034\u2103"
|
|
107 |
+ "\u2105\u2109\u3001\u3002\u3005\u3041\u3043\u3045\u3047\u3049\u3063"
|
|
108 |
+ "\u3083\u3085\u3087\u308e\u3099-\u309e\u30a1\u30a3\u30a5\u30a7\u30a9"
|
|
109 |
+ "\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u30fc-\u30fe\uff01\uff0e"
|
|
110 |
+ "\uff1f<maiyamok>];"
|
|
111 |
+ "<kanji>=[\u4e00-\u9fa5\uf900-\ufa2d\u3041-\u3094\u30a1-\u30fa^[<post-word><ignore>]];"
|
|
112 |
+ "<digit>=[:Nd::No:];"
|
|
113 |
+ "<mid-num>=[\\.\\,];"
|
|
114 |
+ "<char>=[^[<break><space><dash><kanji><nbsp><ignore><pre-word><post-word>"
|
|
115 |
+ "<mid-num>\r<danda><dictionary><paiyannoi><maiyamok>]];"
|
|
116 |
+ "<number>=([<pre-word><dash>]*<digit><digit>*(<mid-num><digit><digit>*)*);"
|
|
117 |
+ "<word-core>=(<char>*|<kanji>|<number>|<dictionary><dictionary>*|<thai-etc>);"
|
|
118 |
+ "<word-suffix>=((<dash><dash>*|<post-word>*)<space>*);"
|
|
119 |
+ "<word>=(<pre-word>*<word-core><word-suffix>);"
|
|
120 |
+ "<word>(<nbsp><nbsp>*<word>)*{({\r}{<break>}|<paiyannoi>\r{break}|<paiyannoi><break>)};"
|
|
121 |
+ "<word>(<nbsp><nbsp>*<word>)*<paiyannoi>/([^[\u0e25<ignore>]]|"
|
|
122 |
+ "\u0e25[^[<paiyannoi><ignore>]]);"
|
|
123 |
}
|
|
124 |
};
|
|
125 |
}
|
|
126 |
}
|