04af4e4f55
Identifiers containing underscores must start with an uppercase letter. (So that the UNO implementation can use identifiers containing underscores and starting with a lowercase letter for internal purposes, see e.g. the static_type member functions in the C++ *.hdl files. idlc checks that with the -cid option, while unoidl-write silently allows bad identifiers for now, see the TODO in unoidl/source/sourceprovider-scanner.l, which can be dropped after this change.) All of the affected identifiers were present since early OOo times, but none of them appear to be used much, at least not across LO itself, so there is hope that we can get away with these incompatible changes. (For the constant group members, we could roll this out in two steps, introducing the new members alongside the old ones and deprecating the old ones in a first step, then removing the old, deprecated ones in a second step, so that third-party code would have more time to adapt. But that would not work for the enum members and interface methods, so just do all of this in one breaking step.) udkapi happened to not contain any bad identifiers. Change-Id: If2d4c16563606f9efb48b937c76af54746377428 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121725 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
133 lines
8.6 KiB
C++
133 lines
8.6 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
#ifndef INCLUDED_I18NUTIL_TRANSLITERATION_HXX
|
|
#define INCLUDED_I18NUTIL_TRANSLITERATION_HXX
|
|
|
|
#include <com/sun/star/i18n/TransliterationModules.hpp>
|
|
#include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
|
|
#include <o3tl/typed_flags_set.hxx>
|
|
|
|
/**
|
|
* This is a superset type of the com::sun::star::i18n::TransliterationModules and TransliterationModulesExtra,
|
|
* with some extra type checking
|
|
*/
|
|
enum class TransliterationFlags {
|
|
NONE = 0,
|
|
/// Transliterate a string from upper case to lower case
|
|
UPPERCASE_LOWERCASE = int(css::i18n::TransliterationModules_UPPERCASE_LOWERCASE),
|
|
/// Transliterate a string from lower case to upper case
|
|
LOWERCASE_UPPERCASE = int(css::i18n::TransliterationModules_LOWERCASE_UPPERCASE),
|
|
/// Transliterate a string from half width character to full width character
|
|
HALFWIDTH_FULLWIDTH = int(css::i18n::TransliterationModules_HALFWIDTH_FULLWIDTH),
|
|
/// Transliterate a string from full width character to half width character
|
|
FULLWIDTH_HALFWIDTH = int(css::i18n::TransliterationModules_FULLWIDTH_HALFWIDTH),
|
|
/// Transliterate a Japanese string from Katakana to Hiragana
|
|
KATAKANA_HIRAGANA = int(css::i18n::TransliterationModules_KATAKANA_HIRAGANA),
|
|
/// Transliterate a Japanese string from Hiragana to Katakana
|
|
HIRAGANA_KATAKANA = int(css::i18n::TransliterationModules_HIRAGANA_KATAKANA),
|
|
/// Transliterate an ASCII number string to Simplified Chinese lower case number string in spellout format
|
|
NumToTextLower_zh_CN = int(css::i18n::TransliterationModules_NumToTextLower_zh_CN),
|
|
/// Transliterate an ASCII number string to Simplified Chinese upper case number string in spellout format
|
|
NumToTextUpper_zh_CN = int(css::i18n::TransliterationModules_NumToTextUpper_zh_CN),
|
|
/// Transliterate an ASCII number string to Traditional Chinese lower case number string in spellout format
|
|
NumToTextLower_zh_TW = int(css::i18n::TransliterationModules_NumToTextLower_zh_TW),
|
|
/// Transliterate an ASCII number string to Traditional Chinese upper case number string in spellout format
|
|
NumToTextUpper_zh_TW = int(css::i18n::TransliterationModules_NumToTextUpper_zh_TW),
|
|
/// Transliterate an ASCII number string to formal Korean Hangul number string in spellout format
|
|
NumToTextFormalHangul_ko = int(css::i18n::TransliterationModules_NumToTextFormalHangul_ko),
|
|
/// Transliterate an ASCII number string to formal Korean Hanja lower case number string in spellout format
|
|
NumToTextFormalLower_ko = int(css::i18n::TransliterationModules_NumToTextFormalLower_ko),
|
|
/// Transliterate an ASCII number string to formal Korean Hanja upper case number string in spellout format
|
|
NumToTextFormalUpper_ko = int(css::i18n::TransliterationModules_NumToTextFormalUpper_ko),
|
|
|
|
/** The first character of the sentence is put in upper case
|
|
*/
|
|
SENTENCE_CASE = int(css::i18n::TransliterationModulesExtra::SENTENCE_CASE),
|
|
|
|
|
|
/** The first character of the word is put in upper case.
|
|
* This one is part
|
|
*/
|
|
TITLE_CASE = int(css::i18n::TransliterationModulesExtra::TITLE_CASE),
|
|
|
|
|
|
/** All characters of the word are to change their case from small letters
|
|
* to capital letters and vice versa.
|
|
*/
|
|
TOGGLE_CASE = int(css::i18n::TransliterationModulesExtra::TOGGLE_CASE),
|
|
|
|
NON_IGNORE_MASK = int(css::i18n::TransliterationModules_NON_IGNORE_MASK),
|
|
IGNORE_MASK = 0x7fffff00,
|
|
|
|
/// Ignore case when comparing strings by transliteration service
|
|
IGNORE_CASE = int(css::i18n::TransliterationModules_IGNORE_CASE),
|
|
/// Ignore Hiragana and Katakana when comparing strings by transliteration service
|
|
IGNORE_KANA = int(css::i18n::TransliterationModules_IGNORE_KANA), // ja_JP
|
|
/// Ignore full width and half width character when comparing strings by transliteration service
|
|
IGNORE_WIDTH = int(css::i18n::TransliterationModules_IGNORE_WIDTH), // ja_JP
|
|
/// Ignore Japanese traditional Kanji character in Japanese fuzzy search
|
|
ignoreTraditionalKanji_ja_JP = int(css::i18n::TransliterationModules_IgnoreTraditionalKanji_ja_JP),
|
|
/// Ignore Japanese traditional Katakana and Hiragana character in Japanese fuzzy search
|
|
ignoreTraditionalKana_ja_JP = int(css::i18n::TransliterationModules_IgnoreTraditionalKana_ja_JP),
|
|
/// Ignore dash or minus sign in Japanese fuzzy search
|
|
ignoreMinusSign_ja_JP = int(css::i18n::TransliterationModules_IgnoreMinusSign_ja_JP),
|
|
/// Ignore Hiragana and Katakana iteration mark in Japanese fuzzy search
|
|
ignoreIterationMark_ja_JP = int(css::i18n::TransliterationModules_IgnoreIterationMark_ja_JP),
|
|
/// Ignore separator punctuations in Japanese fuzzy search
|
|
ignoreSeparator_ja_JP = int(css::i18n::TransliterationModules_IgnoreSeparator_ja_JP),
|
|
/// Ignore Katakana and Hiragana Zi/Zi and Zu/Zu in Japanese fuzzy search
|
|
ignoreZiZu_ja_JP = int(css::i18n::TransliterationModules_IgnoreZiZu_ja_JP),
|
|
/// Ignore Katakana and Hiragana Ba/Gua and Ha/Fa in Japanese fuzzy search
|
|
ignoreBaFa_ja_JP = int(css::i18n::TransliterationModules_IgnoreBaFa_ja_JP),
|
|
/// Ignore Katakana and Hiragana Tsui/Tea/Ti and Dyi/Ji in Japanese fuzzy search
|
|
ignoreTiJi_ja_JP = int(css::i18n::TransliterationModules_IgnoreTiJi_ja_JP),
|
|
/// Ignore Katakana and Hiragana Hyu/Fyu and Byu/Gyu in Japanese fuzzy search
|
|
ignoreHyuByu_ja_JP = int(css::i18n::TransliterationModules_IgnoreHyuByu_ja_JP),
|
|
/// Ignore Katakana and Hiragana Se/Sye and Ze/Je in Japanese fuzzy search
|
|
ignoreSeZe_ja_JP = int(css::i18n::TransliterationModules_IgnoreSeZe_ja_JP),
|
|
/// Ignore Katakana YA/A which follows the character in either I or E row in Japanese fuzzy search
|
|
ignoreIandEfollowedByYa_ja_JP = int(css::i18n::TransliterationModules_IgnoreIandEfollowedByYa_ja_JP),
|
|
/// Ignore Katakana KI/KU which follows the character in SA column in Japanese fuzzy search
|
|
ignoreKiKuFollowedBySa_ja_JP = int(css::i18n::TransliterationModules_IgnoreKiKuFollowedBySa_ja_JP),
|
|
/// Ignore Japanese normal and small sized character in Japanese fuzzy search
|
|
ignoreSize_ja_JP = int(css::i18n::TransliterationModules_IgnoreSize_ja_JP),
|
|
/// Ignore Japanese prolonged sound mark in Japanese fuzzy search
|
|
ignoreProlongedSoundMark_ja_JP = int(css::i18n::TransliterationModules_IgnoreProlongedSoundMark_ja_JP),
|
|
/// Ignore middle dot in Japanese fuzzy search
|
|
ignoreMiddleDot_ja_JP = int(css::i18n::TransliterationModules_IgnoreMiddleDot_ja_JP),
|
|
/// Ignore white space characters, include space, TAB, return, etc. in Japanese fuzzy search
|
|
ignoreSpace_ja_JP = int(css::i18n::TransliterationModules_IgnoreSpace_ja_JP),
|
|
/// transliterate Japanese small sized character to normal sized character
|
|
smallToLarge_ja_JP = int(css::i18n::TransliterationModules_SmallToLarge_ja_JP),
|
|
/// transliterate Japanese normal sized character to small sized character
|
|
largeToSmall_ja_JP = int(css::i18n::TransliterationModules_LargeToSmall_ja_JP),
|
|
|
|
/// Transliterate decomposing and removing diacritics, not only CTL, despite its name.
|
|
IGNORE_DIACRITICS_CTL = int(css::i18n::TransliterationModulesExtra::IGNORE_DIACRITICS_CTL),
|
|
/// Ignore Kashida mark.
|
|
IGNORE_KASHIDA_CTL = int(css::i18n::TransliterationModulesExtra::IGNORE_KASHIDA_CTL)
|
|
};
|
|
namespace o3tl {
|
|
template<> struct typed_flags<TransliterationFlags> : is_typed_flags<TransliterationFlags, 0x7fffffff> {};
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|