[FOray-commit] SF.net SVN: foray:[12792] trunk/foray/foray-common/src
Modular XSL-FO Implementation for Java.
Status: Alpha
Brought to you by:
victormote
|
From: <vic...@us...> - 2022-12-06 16:22:38
|
Revision: 12792
http://sourceforge.net/p/foray/code/12792
Author: victormote
Date: 2022-12-06 16:22:35 +0000 (Tue, 06 Dec 2022)
Log Message:
-----------
Conform to aXSL change: Add methods to return natural baseline and hyphenation characters for each Script.
Modified Paths:
--------------
trunk/foray/foray-common/src/main/java/org/foray/common/i18n/Script4a.java
trunk/foray/foray-common/src/test/java/org/foray/common/i18n/Script4aTests.java
Modified: trunk/foray/foray-common/src/main/java/org/foray/common/i18n/Script4a.java
===================================================================
--- trunk/foray/foray-common/src/main/java/org/foray/common/i18n/Script4a.java 2022-12-06 13:46:05 UTC (rev 12791)
+++ trunk/foray/foray-common/src/main/java/org/foray/common/i18n/Script4a.java 2022-12-06 16:22:35 UTC (rev 12792)
@@ -30,6 +30,7 @@
package org.foray.common.i18n;
import org.axsl.i18n.Script;
+import org.axsl.unicode.block.General_Punctuation_Block;
import com.ibm.icu.lang.UScript;
@@ -69,6 +70,13 @@
/** The initial size of the data structures. */
private static final int INITIAL_CAPACITY = 150;
+ /**
+ * The default hyphenation character, Unicode codepoint 0x2010.
+ * @see "XSL Recommendation 1.1, Section 1.2.1."
+ * @see "XSL Recommendation 1.1, Section 7.10.5."
+ */
+ private static final String DEFAULT_HYPHENATION_CHAR = Character.toString(General_Punctuation_Block.HYPHEN);
+
/** The alpha code map. */
private static Map<String, Script4a> mapAlpha = new HashMap<String, Script4a>(INITIAL_CAPACITY);
@@ -78,249 +86,361 @@
/* Checkstyle: Allow Magic Numbers that are hard-coded data. */
static {
Script4a.register(new Script4a("Arab", (short) 160, "Arabic", "arabe",
- (byte) UScript.ARABIC, UnicodeScript.ARABIC));
+ (byte) UScript.ARABIC, UnicodeScript.ARABIC,
+ Script.NaturalBaseline.ALPHABETIC, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Armn", (short) 230, "Armenian", "arménien",
- (byte) UScript.ARMENIAN, UnicodeScript.ARMENIAN));
+ (byte) UScript.ARMENIAN, UnicodeScript.ARMENIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Bali", (short) 360, "Balinese", "balinais",
- (byte) UScript.BALINESE, UnicodeScript.BALINESE));
+ (byte) UScript.BALINESE, UnicodeScript.BALINESE,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Batk", (short) 365, "Batak", "batak",
- (byte) UScript.BATAK, UnicodeScript.BATAK));
+ (byte) UScript.BATAK, UnicodeScript.BATAK,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Beng", (short) 325, "Bengali", "bengalî",
- (byte) UScript.BENGALI, UnicodeScript.BENGALI));
+ (byte) UScript.BENGALI, UnicodeScript.BENGALI,
+ Script.NaturalBaseline.HANGING, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Blis", (short) 550, "Blissymbols", "symboles Bliss",
- (byte) UScript.BLISSYMBOLS, null));
+ (byte) UScript.BLISSYMBOLS, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Bopo", (short) 285, "Bopomofo", "bopomofo",
- (byte) UScript.BOPOMOFO, UnicodeScript.BOPOMOFO));
+ (byte) UScript.BOPOMOFO, UnicodeScript.BOPOMOFO,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Brah", (short) 300, "Brahmi", "brâhmî",
- (byte) UScript.BRAHMI, UnicodeScript.BRAHMI));
+ (byte) UScript.BRAHMI, UnicodeScript.BRAHMI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Brai", (short) 570, "Braille", "braille",
- (byte) UScript.BRAILLE, UnicodeScript.BRAILLE));
+ (byte) UScript.BRAILLE, UnicodeScript.BRAILLE,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Bugi", (short) 367, "Buginese", "bouguis",
- (byte) UScript.BUGINESE, UnicodeScript.BUGINESE));
+ (byte) UScript.BUGINESE, UnicodeScript.BUGINESE,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Buhd", (short) 372, "Buhid", "bouhide",
- (byte) UScript.BUHID, UnicodeScript.BUHID));
- Script4a.register(new Script4a(
- "Cans", (short) 440, "Unified Canadian Aboriginal Syllabics",
+ (byte) UScript.BUHID, UnicodeScript.BUHID,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Cans", (short) 440, "Unified Canadian Aboriginal Syllabics",
"syllabaire autochtone canadien unifié",
- (byte) UScript.CANADIAN_ABORIGINAL, UnicodeScript.CANADIAN_ABORIGINAL));
+ (byte) UScript.CANADIAN_ABORIGINAL, UnicodeScript.CANADIAN_ABORIGINAL,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Cari", (short) 201, "Carian", "carien",
- (byte) UScript.CARIAN, UnicodeScript.CARIAN));
+ (byte) UScript.CARIAN, UnicodeScript.CARIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Cham", (short) 358, "Cham", "cham (cam, tcham)",
- (byte) UScript.CHAM, UnicodeScript.CHAM));
+ (byte) UScript.CHAM, UnicodeScript.CHAM,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Cher", (short) 445, "Cherokee", "tchérokî",
- (byte) UScript.CHEROKEE, UnicodeScript.CHEROKEE));
+ (byte) UScript.CHEROKEE, UnicodeScript.CHEROKEE,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Cirt", (short) 291, "Cirth", "cirth",
- (byte) UScript.CIRTH, null));
+ (byte) UScript.CIRTH, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Copt", (short) 204, "Coptic", "copte",
- (byte) UScript.COPTIC, UnicodeScript.COPTIC));
+ (byte) UScript.COPTIC, UnicodeScript.COPTIC,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Cprt", (short) 403, "Cypriot", "syllabaire chypriote",
- (byte) UScript.CYPRIOT, UnicodeScript.CYPRIOT));
+ (byte) UScript.CYPRIOT, UnicodeScript.CYPRIOT,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Cyrl", (short) 220, "Cyrillic", "cyrillique",
- (byte) UScript.CYRILLIC, Character.UnicodeScript.CYRILLIC));
- Script4a.register(new Script4a(
- "Cyrs", (short) 221, "Cyrillic (Old Church Slavonic variant)", "cyrillique (variante slavonne)",
- (byte) UScript.OLD_CHURCH_SLAVONIC_CYRILLIC, null));
+ (byte) UScript.CYRILLIC, Character.UnicodeScript.CYRILLIC,
+ Script.NaturalBaseline.ALPHABETIC, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Cyrs", (short) 221, "Cyrillic (Old Church Slavonic variant)",
+ "cyrillique (variante slavonne)",
+ (byte) UScript.OLD_CHURCH_SLAVONIC_CYRILLIC, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Deva", (short) 315, "Devanagari (Nagari)", "dévanâgarî",
- (byte) UScript.DEVANAGARI, UnicodeScript.DEVANAGARI));
+ (byte) UScript.DEVANAGARI, UnicodeScript.DEVANAGARI,
+ Script.NaturalBaseline.HANGING, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Dsrt", (short) 250, "Deseret (Mormon)", "déseret (mormon)",
- (byte) UScript.DESERET, UnicodeScript.DESERET));
+ (byte) UScript.DESERET, UnicodeScript.DESERET,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Egyd", (short) 070, "Egyptian demotic", "démotique égyptien",
- (byte) UScript.DEMOTIC_EGYPTIAN, null));
+ (byte) UScript.DEMOTIC_EGYPTIAN, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Egyh", (short) 060, "Egyptian hieratic", "hiératique égyptien",
- (byte) UScript.HIERATIC_EGYPTIAN, null));
+ (byte) UScript.HIERATIC_EGYPTIAN, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Egyp", (short) 050, "Egyptian hieroglyphs", "hiéroglyphes égyptiens",
- (byte) UScript.EGYPTIAN_HIEROGLYPHS, UnicodeScript.EGYPTIAN_HIEROGLYPHS));
+ (byte) UScript.EGYPTIAN_HIEROGLYPHS,
+ UnicodeScript.EGYPTIAN_HIEROGLYPHS,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Ethi", (short) 430, "Ethiopic (Geʻez)", "éthiopien (geʻez, guèze)",
- (byte) UScript.ETHIOPIC, UnicodeScript.ETHIOPIC));
+ (byte) UScript.ETHIOPIC, UnicodeScript.ETHIOPIC,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Geok", (short) 241, "Khutsuri (Asomtavruli and Nuskhuri)",
- "khoutsouri (assomtavrouli et nouskhouri)", (byte) UScript.KHUTSURI, null));
+ "khoutsouri (assomtavrouli et nouskhouri)",
+ (byte) UScript.KHUTSURI, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Geor", (short) 240, "Georgian (Mkhedruli)", "géorgien (mkhédrouli)",
- (byte) UScript.GEORGIAN, UnicodeScript.GEORGIAN));
+ (byte) UScript.GEORGIAN, UnicodeScript.GEORGIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Glag", (short) 225, "Glagolitic", "glagolitique",
- (byte) UScript.GLAGOLITIC, UnicodeScript.GLAGOLITIC));
+ (byte) UScript.GLAGOLITIC, UnicodeScript.GLAGOLITIC,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Goth", (short) 206, "Gothic", "gotique",
- (byte) UScript.GOTHIC, UnicodeScript.GOTHIC));
+ (byte) UScript.GOTHIC, UnicodeScript.GOTHIC,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Grek", (short) 200, "Greek", "grec",
- (byte) UScript.GREEK, UnicodeScript.GREEK));
+ (byte) UScript.GREEK, UnicodeScript.GREEK,
+ Script.NaturalBaseline.ALPHABETIC, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Gujr", (short) 320, "Gujarati", "goudjarâtî (gujrâtî)",
- (byte) UScript.GUJARATI, UnicodeScript.GUJARATI));
+ (byte) UScript.GUJARATI, UnicodeScript.GUJARATI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Guru", (short) 310, "Gurmukhi", "gourmoukhî",
- (byte) UScript.GURMUKHI, UnicodeScript.GURMUKHI));
+ (byte) UScript.GURMUKHI, UnicodeScript.GURMUKHI,
+ Script.NaturalBaseline.HANGING, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Hang", (short) 286, "Hangul (Hangul, Hangeul)", "hangûl (hangul, hangeul)",
- (byte) UScript.HANGUL, UnicodeScript.HANGUL));
+ (byte) UScript.HANGUL, UnicodeScript.HANGUL,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Hani", (short) 500, "Han (Hanzi, Kanji, Hanja)", "idéogrammes han",
- (byte) UScript.HAN, UnicodeScript.HAN));
+ (byte) UScript.HAN, UnicodeScript.HAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Hano", (short) 371, "Hanunoo (Hanunóo)", "hanounóo",
- (byte) UScript.HANUNOO, UnicodeScript.HANUNOO));
- Script4a.register(new Script4a(
- "Hans", (short) 501, "Han (Simplified variant)", "idéogrammes han (variante simplifiée)",
- (byte) UScript.SIMPLIFIED_HAN, null));
- Script4a.register(new Script4a(
- "Hant", (short) 502, "Han (Traditional variant)", "idéogrammes han (variante traditionnelle)",
- (byte) UScript.TRADITIONAL_HAN, null));
+ (byte) UScript.HANUNOO, UnicodeScript.HANUNOO,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Hans", (short) 501, "Han (Simplified variant)",
+ "idéogrammes han (variante simplifiée)",
+ (byte) UScript.SIMPLIFIED_HAN, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Hant", (short) 502, "Han (Traditional variant)",
+ "idéogrammes han (variante traditionnelle)",
+ (byte) UScript.TRADITIONAL_HAN, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Hebr", (short) 125, "Hebrew", "hébreu",
- (byte) UScript.HEBREW, UnicodeScript.HEBREW));
+ (byte) UScript.HEBREW, UnicodeScript.HEBREW,
+ Script.NaturalBaseline.ALPHABETIC, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Hira", (short) 410, "Hiragana", "hiragana",
- (byte) UScript.HIRAGANA, UnicodeScript.HIRAGANA));
+ (byte) UScript.HIRAGANA, UnicodeScript.HIRAGANA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Hmng", (short) 450, "Pahawh Hmong", "pahawh hmong",
- (byte) UScript.PAHAWH_HMONG, null));
+ (byte) UScript.PAHAWH_HMONG, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Hrkt", (short) 412, "(alias for Hiragana + Katakana)",
"(alias pour hiragana + katakana)",
- (byte) UScript.KATAKANA_OR_HIRAGANA, null));
+ (byte) UScript.KATAKANA_OR_HIRAGANA, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Hung", (short) 176, "Old Hungarian", "ancien hongrois",
- (byte) UScript.OLD_HUNGARIAN, null));
+ (byte) UScript.OLD_HUNGARIAN, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Inds", (short) 610, "Indus (Harappan)", "indus",
- (byte) UScript.HARAPPAN_INDUS, null));
- Script4a.register(new Script4a(
- "Ital", (short) 210, "Old Italic (Etruscan, Oscan, etc.)", "ancien italique (étrusque, osque, etc.)",
- (byte) UScript.OLD_ITALIC, UnicodeScript.OLD_ITALIC));
+ (byte) UScript.HARAPPAN_INDUS, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Ital", (short) 210, "Old Italic (Etruscan, Oscan, etc.)",
+ "ancien italique (étrusque, osque, etc.)",
+ (byte) UScript.OLD_ITALIC, UnicodeScript.OLD_ITALIC,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Java", (short) 361, "Javanese", "javanais",
- (byte) UScript.JAVANESE, UnicodeScript.JAVANESE));
+ (byte) UScript.JAVANESE, UnicodeScript.JAVANESE,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Jpan", (short) 413, "Japanese (alias for Han + Hiragana + Katakana)",
"japonais (alias pour han + hiragana + katakana)",
- (byte) UScript.JAPANESE, null));
+ (byte) UScript.JAPANESE, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Kali", (short) 357, "Kayah Li", "kayah li",
- (byte) UScript.KAYAH_LI, UnicodeScript.KAYAH_LI));
+ (byte) UScript.KAYAH_LI, UnicodeScript.KAYAH_LI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Kana", (short) 411, "Katakana", "katakana",
- (byte) UScript.KATAKANA, UnicodeScript.KATAKANA));
+ (byte) UScript.KATAKANA, UnicodeScript.KATAKANA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Khar", (short) 305, "Kharoshthi", "kharochthî",
- (byte) UScript.KHAROSHTHI, UnicodeScript.KHAROSHTHI));
+ (byte) UScript.KHAROSHTHI, UnicodeScript.KHAROSHTHI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Khmr", (short) 355, "Khmer", "khmer",
- (byte) UScript.KHMER, UnicodeScript.KHMER));
+ (byte) UScript.KHMER, UnicodeScript.KHMER,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Knda", (short) 345, "Kannada", "kannara (canara)",
- (byte) UScript.KANNADA, UnicodeScript.KANNADA));
+ (byte) UScript.KANNADA, UnicodeScript.KANNADA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Lana", (short) 351, "Lanna", "lanna",
- (byte) UScript.LANNA, null));
+ (byte) UScript.LANNA, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Laoo", (short) 356, "Lao", "laotien",
- (byte) UScript.LAO, UnicodeScript.LAO));
+ (byte) UScript.LAO, UnicodeScript.LAO,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Latf", (short) 217, "Latin (Fraktur variant)", "latin (variante brisée)",
- (byte) UScript.LATIN_FRAKTUR, null));
+ (byte) UScript.LATIN_FRAKTUR, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Latg", (short) 216, "Latin (Gaelic variant)", "latin (variante gaélique)",
- (byte) UScript.LATIN_GAELIC, null));
+ (byte) UScript.LATIN_GAELIC, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Latn", (short) 215, "Latin", "latin",
- (byte) UScript.LATIN, Character.UnicodeScript.LATIN));
+ (byte) UScript.LATIN, Character.UnicodeScript.LATIN,
+ Script.NaturalBaseline.ALPHABETIC, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Lepc", (short) 335, "Lepcha (Róng)", "lepcha (róng)",
- (byte) UScript.LEPCHA, UnicodeScript.LEPCHA));
+ (byte) UScript.LEPCHA, UnicodeScript.LEPCHA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Limb", (short) 336, "Limbu", "limbou",
- (byte) UScript.LIMBU, UnicodeScript.LIMBU));
+ (byte) UScript.LIMBU, UnicodeScript.LIMBU,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Lina", (short) 400, "Linear A", "linéaire A",
- (byte) UScript.LINEAR_A, null));
+ (byte) UScript.LINEAR_A, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Linb", (short) 401, "Linear B", "linéaire B",
- (byte) UScript.LINEAR_B, UnicodeScript.LINEAR_B));
+ (byte) UScript.LINEAR_B, UnicodeScript.LINEAR_B,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Lyci", (short) 202, "Lycian", "lycien",
- (byte) UScript.LYCIAN, UnicodeScript.LYCIAN));
+ (byte) UScript.LYCIAN, UnicodeScript.LYCIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Lydi", (short) 116, "Lydian", "lydien",
- (byte) UScript.LYDIAN, UnicodeScript.LYDIAN));
+ (byte) UScript.LYDIAN, UnicodeScript.LYDIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Mand", (short) 140, "Mandaean", "mandéen",
- (byte) UScript.MANDAEAN, null));
+ (byte) UScript.MANDAEAN, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Maya", (short) 90, "Mayan hieroglyphs", "hiéroglyphes mayas",
- (byte) UScript.MAYAN_HIEROGLYPHS, null));
+ (byte) UScript.MAYAN_HIEROGLYPHS, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Mero", (short) 100, "Meroitic", "méroïtique",
- (byte) UScript.MEROITIC, null));
+ (byte) UScript.MEROITIC, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Mlym", (short) 347, "Malayalam", "malayâlam",
- (byte) UScript.MALAYALAM, UnicodeScript.MALAYALAM));
+ (byte) UScript.MALAYALAM, UnicodeScript.MALAYALAM,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Mong", (short) 145, "Mongolian", "mongol",
- (byte) UScript.MONGOLIAN, UnicodeScript.MONGOLIAN));
+ (byte) UScript.MONGOLIAN, UnicodeScript.MONGOLIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Moon", (short) 218, "Moon (Moon code, Moon script, Moon type)", "écriture Moon",
- (byte) UScript.MOON, null));
+ (byte) UScript.MOON, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Mtei", (short) 337, "Meitei Mayek (Meithei, Meetei)", "meitei mayek",
- (byte) UScript.MEITEI_MAYEK, UnicodeScript.MEETEI_MAYEK));
+ (byte) UScript.MEITEI_MAYEK, UnicodeScript.MEETEI_MAYEK,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Mymr", (short) 350, "Myanmar (Burmese)", "birman",
- (byte) UScript.MYANMAR, UnicodeScript.MYANMAR));
+ (byte) UScript.MYANMAR, UnicodeScript.MYANMAR,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Nkoo", (short) 165, "N’Ko", "n’ko",
- (byte) UScript.NKO, UnicodeScript.NKO));
+ (byte) UScript.NKO, UnicodeScript.NKO,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Ogam", (short) 212, "Ogham", "ogam",
- (byte) UScript.OGHAM, UnicodeScript.OGHAM));
+ (byte) UScript.OGHAM, UnicodeScript.OGHAM,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Olck", (short) 261, "Ol Chiki (Ol Cemet’, Ol, Santali)", "ol tchiki",
- (byte) UScript.OL_CHIKI, UnicodeScript.OL_CHIKI));
+ (byte) UScript.OL_CHIKI, UnicodeScript.OL_CHIKI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Orkh", (short) 175, "Orkhon", "orkhon",
- (byte) UScript.ORKHON, null));
+ (byte) UScript.ORKHON, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Orya", (short) 327, "Oriya", "oriyâ",
- (byte) UScript.ORIYA, UnicodeScript.ORIYA));
+ (byte) UScript.ORIYA, UnicodeScript.ORIYA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Osma", (short) 260, "Osmanya", "osmanais",
- (byte) UScript.OSMANYA, UnicodeScript.OSMANYA));
+ (byte) UScript.OSMANYA, UnicodeScript.OSMANYA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Perm", (short) 227, "Old Permic", "ancien permien",
- (byte) UScript.OLD_PERMIC, null));
+ (byte) UScript.OLD_PERMIC, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Phag", (short) 331, "Phags-pa", "’phags pa",
- (byte) UScript.PHAGS_PA, UnicodeScript.PHAGS_PA));
+ (byte) UScript.PHAGS_PA, UnicodeScript.PHAGS_PA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Phnx", (short) 115, "Phoenician", "phénicien",
- (byte) UScript.PHOENICIAN, UnicodeScript.PHOENICIAN));
+ (byte) UScript.PHOENICIAN, UnicodeScript.PHOENICIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Plrd", (short) 282, "Pollard Phonetic", "phonétique de Pollard",
- (byte) UScript.PHONETIC_POLLARD, null));
+ (byte) UScript.PHONETIC_POLLARD, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Rjng", (short) 363, "Rejang, Redjang, Kaganga", "redjang",
- (byte) UScript.REJANG, UnicodeScript.REJANG));
+ (byte) UScript.REJANG, UnicodeScript.REJANG,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Roro", (short) 620, "Rongorongo", "rongorongo",
- (byte) UScript.RONGORONGO, null));
+ (byte) UScript.RONGORONGO, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Runr", (short) 211, "Runic", "runique",
- (byte) UScript.RUNIC, UnicodeScript.RUNIC));
+ (byte) UScript.RUNIC, UnicodeScript.RUNIC,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Sara", (short) 292, "Sarati", "sarati",
- (byte) UScript.SARATI, null));
+ (byte) UScript.SARATI, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Saur", (short) 344, "Saurashtra", "saurachtra",
- (byte) UScript.SAURASHTRA, UnicodeScript.SAURASHTRA));
+ (byte) UScript.SAURASHTRA, UnicodeScript.SAURASHTRA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Sgnw", (short) 95, "SignWriting", "SignÉcriture, SignWriting",
- (byte) UScript.SIGN_WRITING, null));
+ (byte) UScript.SIGN_WRITING, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Shaw", (short) 281, "Shavian (Shaw)", "shavien (Shaw)",
- (byte) UScript.SHAVIAN, UnicodeScript.SHAVIAN));
+ (byte) UScript.SHAVIAN, UnicodeScript.SHAVIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Sinh", (short) 348, "Sinhala", "singhalais",
- (byte) UScript.SINHALA, UnicodeScript.SINHALA));
+ (byte) UScript.SINHALA, UnicodeScript.SINHALA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Sund", (short) 362, "Sundanese", "sundanais",
- (byte) UScript.SUNDANESE, UnicodeScript.SUNDANESE));
+ (byte) UScript.SUNDANESE, UnicodeScript.SUNDANESE,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Sylo", (short) 316, "Syloti Nagri", "sylotî nâgrî",
- (byte) UScript.SYLOTI_NAGRI, UnicodeScript.SYLOTI_NAGRI));
+ (byte) UScript.SYLOTI_NAGRI, UnicodeScript.SYLOTI_NAGRI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Syrc", (short) 135, "Syriac", "syriaque",
- (byte) UScript.SYRIAC, UnicodeScript.SYRIAC));
- Script4a.register(new Script4a(
- "Syre", (short) 138, "Syriac (Estrangelo variant)", "syriaque (variante estranghélo)",
- (byte) UScript.ESTRANGELO_SYRIAC, null));
- Script4a.register(new Script4a(
- "Syrj", (short) 137, "Syriac (Western variant)", "syriaque (variante occidentale)",
- (byte) UScript.WESTERN_SYRIAC, null));
- Script4a.register(new Script4a(
- "Syrn", (short) 136, "Syriac (Eastern variant)", "syriaque (variante orientale)",
- (byte) UScript.EASTERN_SYRIAC, null));
+ (byte) UScript.SYRIAC, UnicodeScript.SYRIAC,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Syre", (short) 138, "Syriac (Estrangelo variant)",
+ "syriaque (variante estranghélo)",
+ (byte) UScript.ESTRANGELO_SYRIAC, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Syrj", (short) 137, "Syriac (Western variant)",
+ "syriaque (variante occidentale)",
+ (byte) UScript.WESTERN_SYRIAC, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Syrn", (short) 136, "Syriac (Eastern variant)", "syriaque (variante orientale)",
+ (byte) UScript.EASTERN_SYRIAC, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Tagb", (short) 373, "Tagbanwa", "tagbanoua",
- (byte) UScript.TAGBANWA, UnicodeScript.TAGBANWA));
+ (byte) UScript.TAGBANWA, UnicodeScript.TAGBANWA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Tale", (short) 353, "Tai Le", "taï-le",
- (byte) UScript.TAI_LE, UnicodeScript.TAI_LE));
+ (byte) UScript.TAI_LE, UnicodeScript.TAI_LE, Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Talu", (short) 354, "New Tai Lue", "nouveau taï-lue",
- (byte) UScript.NEW_TAI_LUE, UnicodeScript.NEW_TAI_LUE));
+ (byte) UScript.NEW_TAI_LUE, UnicodeScript.NEW_TAI_LUE,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Taml", (short) 346, "Tamil", "tamoul",
- (byte) UScript.TAMIL, UnicodeScript.TAMIL));
+ (byte) UScript.TAMIL, UnicodeScript.TAMIL,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Telu", (short) 340, "Telugu", "télougou",
- (byte) UScript.TELUGU, UnicodeScript.TELUGU));
+ (byte) UScript.TELUGU, UnicodeScript.TELUGU,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Teng", (short) 290, "Tengwar", "tengwar",
- (byte) UScript.TENGWAR, null));
+ (byte) UScript.TENGWAR, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Tfng", (short) 120, "Tifinagh (Berber)", "tifinagh (berbère)",
- (byte) UScript.TIFINAGH, UnicodeScript.TIFINAGH));
+ (byte) UScript.TIFINAGH, UnicodeScript.TIFINAGH,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Tglg", (short) 370, "Tagalog", "tagal",
- (byte) UScript.TAGALOG, UnicodeScript.TAGALOG));
+ (byte) UScript.TAGALOG, UnicodeScript.TAGALOG,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Thaa", (short) 170, "Thaana", "thâna",
- (byte) UScript.THAANA, UnicodeScript.THAANA));
+ (byte) UScript.THAANA, UnicodeScript.THAANA,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Thai", (short) 352, "Thai", "thaï",
- (byte) UScript.THAI, UnicodeScript.THAI));
+ (byte) UScript.THAI, UnicodeScript.THAI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Tibt", (short) 330, "Tibetan", "tibétain",
- (byte) UScript.TIBETAN, UnicodeScript.TIBETAN));
+ (byte) UScript.TIBETAN, UnicodeScript.TIBETAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Ugar", (short) 040, "Ugaritic", "ougaritique",
- (byte) UScript.UGARITIC, UnicodeScript.UGARITIC));
+ (byte) UScript.UGARITIC, UnicodeScript.UGARITIC,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Zyyy", (short) 998, "Code for undetermined script",
- "codet pour écriture indéterminée", ICU4J_NOT_SUPPORTED, null));
+ "codet pour écriture indéterminée", ICU4J_NOT_SUPPORTED, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Vaii", (short) 470, "Vai", "vaï",
- (byte) UScript.VAI, UnicodeScript.VAI));
+ (byte) UScript.VAI, UnicodeScript.VAI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Visp", (short) 280, "Visible Speech", "parole visible",
- (byte) UScript.VISIBLE_SPEECH, null));
+ (byte) UScript.VISIBLE_SPEECH, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Xpeo", (short) 030, "Old Persian", "cunéiforme persépolitain",
- (byte) UScript.OLD_PERSIAN, UnicodeScript.OLD_PERSIAN));
- Script4a.register(new Script4a(
- "Xsux", (short) 020, "Cuneiform, Sumero-Akkadian", "cunéiforme suméro-akkadien",
- (byte) UScript.CUNEIFORM, UnicodeScript.CUNEIFORM));
+ (byte) UScript.OLD_PERSIAN, UnicodeScript.OLD_PERSIAN,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Xsux", (short) 020, "Cuneiform, Sumero-Akkadian", "cunéiforme suméro-akkadien",
+ (byte) UScript.CUNEIFORM, UnicodeScript.CUNEIFORM,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
Script4a.register(new Script4a("Yiii", (short) 460, "Yi", "yi",
- (byte) UScript.YI, UnicodeScript.YI));
- Script4a.register(new Script4a(
- "Zxxx", (short) 997, "Code for unwritten languages", "codet pour les langues non écrites",
- (byte) UScript.UNWRITTEN_LANGUAGES, null));
- Script4a.register(new Script4a(
- "Zzzz", (short) 999, "Code for uncoded script", "codet pour écriture non codée",
- ICU4J_NOT_SUPPORTED, null));
+ (byte) UScript.YI, UnicodeScript.YI,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Zxxx", (short) 997, "Code for unwritten languages",
+ "codet pour les langues non écrites",
+ (byte) UScript.UNWRITTEN_LANGUAGES, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
+ Script4a.register(new Script4a("Zzzz", (short) 999, "Code for uncoded script", "codet pour écriture non codée",
+ ICU4J_NOT_SUPPORTED, null,
+ Script.NaturalBaseline.UNKNOWN, DEFAULT_HYPHENATION_CHAR));
UNDETERMINED = Script4a.findFromAlpha("Zyyy");
LATIN = Script4a.findFromAlpha("Latn");
@@ -347,6 +467,12 @@
/** The Unicode script corresponding to this ISO-15924 script. */
private UnicodeScript unicodeScript;
+ /** The natural baseline for this script. */
+ private Script.NaturalBaseline naturalBaseline;
+
+ /** The hyphenation char(s) for this script. */
+ private String hyphenationChar;
+
/**
* Constructor.
* Client code should not ordinarily use this constructor, but should use {@link #findFromAlpha(String)},
@@ -360,9 +486,12 @@
* @param frenchName The ISO-15924 French name of this script.
* @param icu4jCode The ICU4J code for this script.
* @param unicodeScript The Unicode script corresponding to this ISO-15924 script.
+ * @param naturalBaseline The natural baseline used by this script.
+ * @param hyphenationChar The hyphenation char(s) used by this script.
*/
public Script4a(final String alpha, final short numeric, final String englishName, final String frenchName,
- final byte icu4jCode, final UnicodeScript unicodeScript) {
+ final byte icu4jCode, final UnicodeScript unicodeScript, final Script.NaturalBaseline naturalBaseline,
+ final String hyphenationChar) {
if (! matchesPattern(alpha)) {
final String template = "Alpha expected pattern: " + PATTERN.toString() + ", actual: %s";
throw new IllegalArgumentException(String.format(template, alpha));
@@ -373,6 +502,8 @@
this.frenchName = frenchName;
this.icu4jCode = icu4jCode;
this.unicodeScript = unicodeScript;
+ this.naturalBaseline = naturalBaseline;
+ this.hyphenationChar = hyphenationChar;
}
/**
@@ -534,4 +665,18 @@
return matcher.matches();
}
+ /** Please note that no effort has been made to ensure that this method returns the correct value for each
+ * script. */
+ @Override
+ public NaturalBaseline getNaturalBaseline() {
+ return this.naturalBaseline;
+ }
+
+ /** Please note that no effort has been made to ensure that this method returns the correct value for each
+ * script. */
+ @Override
+ public CharSequence getHyphenationChar() {
+ return this.hyphenationChar;
+ }
+
}
Modified: trunk/foray/foray-common/src/test/java/org/foray/common/i18n/Script4aTests.java
===================================================================
--- trunk/foray/foray-common/src/test/java/org/foray/common/i18n/Script4aTests.java 2022-12-06 13:46:05 UTC (rev 12791)
+++ trunk/foray/foray-common/src/test/java/org/foray/common/i18n/Script4aTests.java 2022-12-06 16:22:35 UTC (rev 12792)
@@ -28,6 +28,8 @@
package org.foray.common.i18n;
+import org.axsl.i18n.Script;
+
import org.junit.Assert;
import org.junit.Test;
@@ -50,7 +52,8 @@
@Test
public void invalidPatternTest() {
try {
- new Script4a("VULCA", (short) -999, "VulcanScript", "VulcánScript", (byte) -1, null);
+ new Script4a("VULCA", (short) -999, "VulcanScript", "VulcánScript", (byte) -1, null,
+ Script.NaturalBaseline.UNKNOWN, "-");
Assert.fail("Expected " + IllegalArgumentException.class.getName());
} catch (final IllegalArgumentException e) {
/* This is the expected case. Do nothing. */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|