office-gobmx/include/i18nutil/transliteration.hxx
Stephan Bergmann 04af4e4f55 [API CHANGE] Fix all bad UNOIDL identifiers across offapi
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>
2021-10-14 19:50:30 +02:00

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: */