Kaydet (Commit) f24fa8ef authored tarafından Robert M Campbell's avatar Robert M Campbell Kaydeden (comit) Caolán McNamara

Add Lao breakiterator support for selecting and counting Lao words.

Change-Id: I6da721dc25394dfee12e3028aefbf0546d1be984
Reviewed-on: https://gerrit.libreoffice.org/6669Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst debe0835
......@@ -39,6 +39,7 @@ public:
void testWeak();
void testAsian();
void testThai();
void testLao();
#ifdef TODO
void testNorthernThai();
#endif
......@@ -58,6 +59,9 @@ public:
CPPUNIT_TEST(testWordBoundaries);
#if (U_ICU_VERSION_MAJOR_NUM > 4)
CPPUNIT_TEST(testKhmer);
#endif
#if (U_ICU_VERSION_MAJOR_NUM > 51)
CPPUNIT_TEST(testLao);
#endif
CPPUNIT_TEST(testJapanese);
CPPUNIT_TEST_SUITE_END();
......@@ -784,6 +788,27 @@ void TestBreakIterator::testAsian()
}
}
//A test to ensure that our Lao word boundary detection is useful
void TestBreakIterator::testLao()
{
lang::Locale aLocale;
aLocale.Language = OUString("lo");
aLocale.Country = OUString("LA");
//ຍິນດີຕ້ອນຮັບ
const sal_Unicode LAO[] = { 0x0e8d, 0x0eb4, 0x0e99, 0x0e94, 0x0eb5, 0x0e95, 0x0ec9, 0x0ead, 0x0e99, 0x0eae, 0x0eb1, 0x0e9a };
OUString aTest(LAO, SAL_N_ELEMENTS(LAO));
i18n::Boundary aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale,
i18n::WordType::DICTIONARY_WORD, true);
CPPUNIT_ASSERT(aBounds.startPos == 0 && aBounds.endPos == 5);
aBounds = m_xBreak->getWordBoundary(aTest, aBounds.endPos, aLocale,
i18n::WordType::DICTIONARY_WORD, true);
CPPUNIT_ASSERT(aBounds.startPos == 5 && aBounds.endPos == 9);
}
//A test to ensure that our thai word boundary detection is useful
void TestBreakIterator::testThai()
{
......
......@@ -121,7 +121,7 @@ void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const com::sun::star::
OUStringToOString(breakRules[breakType], RTL_TEXTENCODING_ASCII_US).getStr(), &status), status);
}
//use icu's breakiterator for Thai, Khmer, Tibetan and Dzongkha
else if (rLocale.Language != "th" && rLocale.Language != "km" && rLocale.Language != "bo" && rLocale.Language != "dz")
else if (rLocale.Language != "th" && rLocale.Language != "lo" && rLocale.Language != "km" && rLocale.Language != "bo" && rLocale.Language != "dz")
{
status = U_ZERO_ERROR;
OStringBuffer aUDName(64);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment