From 24479da7b1e101b9f6f6cce282f5d6ed4a408014 Mon Sep 17 00:00:00 2001 From: Calvin Pan Date: Tue, 14 Dec 2021 18:50:31 +0800 Subject: [PATCH] Add hyphenation pattern for af, cs, el, ka, mk, nl, sk, sq Bug: 181262335 Test: atest android.graphics.text.cts.HyphenationTest Change-Id: I8c8d79d3bf4cc511b9ccea0f4d15492d79633627 --- core/jni/android_text_Hyphenator.cpp | 8 ++++++++ tools/fonts/fontchain_linter.py | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/core/jni/android_text_Hyphenator.cpp b/core/jni/android_text_Hyphenator.cpp index 0eb8c6a3ecf34..011e0514b82fb 100644 --- a/core/jni/android_text_Hyphenator.cpp +++ b/core/jni/android_text_Hyphenator.cpp @@ -83,17 +83,20 @@ static void init() { constexpr int INDIC_MIN_PREFIX = 2; constexpr int INDIC_MIN_SUFFIX = 2; + addHyphenator("af", 1, 1); // Afrikaans addHyphenator("am", 1, 1); // Amharic addHyphenator("as", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Assamese addHyphenator("be", 2, 2); // Belarusian addHyphenator("bg", 2, 2); // Bulgarian addHyphenator("bn", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Bengali + addHyphenator("cs", 2, 2); // Czech addHyphenator("cu", 1, 2); // Church Slavonic addHyphenator("cy", 2, 3); // Welsh addHyphenator("da", 2, 2); // Danish addHyphenator("de-1901", 2, 2); // German 1901 orthography addHyphenator("de-1996", 2, 2); // German 1996 orthography addHyphenator("de-CH-1901", 2, 2); // Swiss High German 1901 orthography + addHyphenator("el", 1, 1); // Greek addHyphenator("en-GB", 2, 3); // British English addHyphenator("en-US", 2, 3); // American English addHyphenator("es", 2, 2); // Spanish @@ -110,18 +113,23 @@ static void init() { // Going with a more conservative value of (2, 2) for now. addHyphenator("hy", 2, 2); // Armenian addHyphenator("it", 2, 2); // Italian + addHyphenator("ka", 1, 2); // Georgian addHyphenator("kn", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Kannada addHyphenator("la", 2, 2); // Latin addHyphenator("lt", 2, 2); // Lithuanian + addHyphenator("lv", 2, 2); // Latvian addHyphenator("ml", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Malayalam addHyphenator("mn-Cyrl", 2, 2); // Mongolian in Cyrillic script addHyphenator("mr", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Marathi addHyphenator("nb", 2, 2); // Norwegian Bokmål + addHyphenator("nl", 2, 2); // Dutch addHyphenator("nn", 2, 2); // Norwegian Nynorsk addHyphenator("or", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Oriya addHyphenator("pa", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Punjabi addHyphenator("pt", 2, 3); // Portuguese + addHyphenator("sk", 2, 2); // Slovak addHyphenator("sl", 2, 2); // Slovenian + addHyphenator("sq", 2, 2); // Albanian addHyphenator("ta", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Tamil addHyphenator("te", INDIC_MIN_PREFIX, INDIC_MIN_SUFFIX); // Telugu addHyphenator("tk", 2, 2); // Turkmen diff --git a/tools/fonts/fontchain_linter.py b/tools/fonts/fontchain_linter.py index 68e213b2c00f8..fe2b0186c57fe 100755 --- a/tools/fonts/fontchain_linter.py +++ b/tools/fonts/fontchain_linter.py @@ -13,15 +13,18 @@ from fontTools import ttLib EMOJI_VS = 0xFE0F LANG_TO_SCRIPT = { + 'af': 'Latn', 'as': 'Beng', 'am': 'Latn', 'be': 'Cyrl', 'bg': 'Cyrl', 'bn': 'Beng', + 'cs': 'Latn', 'cu': 'Cyrl', 'cy': 'Latn', 'da': 'Latn', 'de': 'Latn', + 'el': 'Latn', 'en': 'Latn', 'es': 'Latn', 'et': 'Latn', @@ -36,19 +39,24 @@ LANG_TO_SCRIPT = { 'hy': 'Armn', 'it': 'Latn', 'ja': 'Jpan', + 'ka': 'Latn', 'kn': 'Knda', 'ko': 'Kore', 'la': 'Latn', 'lt': 'Latn', + 'lv': 'Latn', 'ml': 'Mlym', 'mn': 'Cyrl', 'mr': 'Deva', 'nb': 'Latn', + 'nl': 'Latn', 'nn': 'Latn', 'or': 'Orya', 'pa': 'Guru', 'pt': 'Latn', + 'sk': 'Latn', 'sl': 'Latn', + 'sq': 'Latn', 'ta': 'Taml', 'te': 'Telu', 'tk': 'Latn',