LibreOffice5(142)Transliterationのサービスとインターフェイスの一覧

2018-02-07

旧ブログ

t f B! P L
Calc(61)文字種を変換するマクロで使ったTransliterationのサービスとインターフェイスの一覧です。

前の関連記事:LibreOffice5(141)ツールキットのサービスとインターフェイスの一覧


Transliterationのサービスとインターフェイスの一覧

def macro():
 ctx = XSCRIPTCONTEXT.getComponentContext()  # コンポーネントコンテクストの取得。
 smgr = ctx.getServiceManager()  # サービスマネージャーの取得。 
 tcu = smgr.createInstanceWithContext("pq.Tcu", ctx)  # サービス名か実装名でインスタンス化。
 transliteration = smgr.createInstanceWithContext("com.sun.star.i18n.Transliteration", ctx)  # Transliteration 
 tcu.wtree(transliteration)

└─.i18n.Transliteration
     └─.i18n.XExtendedTransliteration
        │     char  transliterateChar2Char( [in] char cChar
        │                        ) raises ( .i18n.MultipleCharsOutputException)
        │   string  transliterateChar2String( [in] char cChar)
        │   string  transliterateString2String( [in] string aStr,
        │                                       [in]   long nStartPos,
        │                                       [in]   long nCount)
        └─.i18n.XTransliteration
                  long  compareString( [in] string aStr1,
                                       [in] string aStr2)
                  long  compareSubstring( [in] string aStr1,
                                          [in]   long nOff1,
                                          [in]   long nLen1,
                                          [in] string aStr2,
                                          [in]   long nOff2,
                                          [in]   long nLen2)
               boolean  equals( [in] string aStr1,
                                [in]   long nPos1,
                                [in]   long nCount1,
                                [out]   long rMatch1,
                                [in] string aStr2,
                                [in]   long nPos2,
                                [in]   long nCount2,
                                [out]   long rMatch2)
                string  folding( [in] string aInStr,
                                 [in]   long nStartPos,
                                 [in]   long nCount,
                                 [out] [long] rOffset)
              [string]  getAvailableModules( [in] .lang.Locale aLocale,
                                             [in]        short nType)
                string  getName()
                 short  getType()
                  void  loadModule( [in] .i18n.TransliterationModules eModType,
                                    [in]                 .lang.Locale aLocale)
                  void  loadModuleByImplName( [in]       string aImplName,
                                              [in] .lang.Locale aLocale)
                  void  loadModuleNew( [in] [.i18n.TransliterationModulesNew] aModType,
                                       [in]                      .lang.Locale aLocale)
                  void  loadModulesByImplNames( [in]     [string] aImplNameList,
                                                [in] .lang.Locale aLocale)
                string  transliterate( [in] string aInStr,
                                       [in]   long nStartPos,
                                       [in]   long nCount,
                                       [out] [long] rOffset)
              [string]  transliterateRange( [in] string aStr1,
                                            [in] string aStr2)

getAvailableModules()メソッドの戻り値


Localeをja_JPにしたときのgetAvailableModules()メソッドを取得してみました。
from com.sun.star.lang import Locale  # Struct
from com.sun.star.i18n import TransliterationType  # 定数
def macro():
 ctx = XSCRIPTCONTEXT.getComponentContext()  # コンポーネントコンテクストの取得。
 smgr = ctx.getServiceManager()  # サービスマネージャーの取得。 
 tcu = smgr.createInstanceWithContext("pq.Tcu", ctx)  # サービス名か実装名でインスタンス化。
 transliteration = smgr.createInstanceWithContext("com.sun.star.i18n.Transliteration", ctx)  # Transliteration 
 availablemodules = transliteration.getAvailableModules(Locale(Language = "ja", Country = "JP"), TransliterationType.NONE)
 if availablemodules:
  print("NONE")
  print(availablemodules)
 availablemodules = transliteration.getAvailableModules(Locale(Language = "ja", Country = "JP"), TransliterationType.ONE_TO_ONE)
 if availablemodules:
  print("ONE_TO_ONE")
  print(availablemodules)  
 availablemodules = transliteration.getAvailableModules(Locale(Language = "ja", Country = "JP"), TransliterationType.NUMERIC)
 if availablemodules:
  print("NUMERIC")
  print(availablemodules) 
 availablemodules = transliteration.getAvailableModules(Locale(Language = "ja", Country = "JP"), TransliterationType.ONE_TO_ONE_NUMERIC)
 if availablemodules:
  print("ONE_TO_ONE_NUMERIC")
  print(availablemodules)   
 availablemodules = transliteration.getAvailableModules(Locale(Language = "ja", Country = "JP"), TransliterationType.IGNORE)
 if availablemodules:
  print("IGNORE")
  print(availablemodules)   
 availablemodules = transliteration.getAvailableModules(Locale(Language = "ja", Country = "JP"), TransliterationType.CASCADE)
 if availablemodules:
  print("CASCADE")
  print(availablemodules)  
このマクロで以下の結果が取得できましたが、Calc(61)文字種を変換するマクロで使ったTextToNumLower_zh_CNはでてきませんでした。
ONE_TO_ONE
('HALFWIDTH_FULLWIDTH', 'FULLWIDTH_HALFWIDTH', 'KATAKANA_HIRAGANA', 'HIRAGANA_KATAKANA', 'FULLWIDTHKATAKANA_HALFWIDTHKATAKANA', 'HALFWIDTHKATAKANA_FULLWIDTHKATAKANA', 'FULLWIDTH_HALFWIDTH_LIKE_ASC', 'HALFWIDTH_FULLWIDTH_LIKE_JIS', 'smallToLarge_ja_JP', 'largeToSmall_ja_JP')
ONE_TO_ONE_NUMERIC
('HALFWIDTH_FULLWIDTH', 'FULLWIDTH_HALFWIDTH', 'KATAKANA_HIRAGANA', 'HIRAGANA_KATAKANA', 'FULLWIDTHKATAKANA_HALFWIDTHKATAKANA', 'HALFWIDTHKATAKANA_FULLWIDTHKATAKANA', 'FULLWIDTH_HALFWIDTH_LIKE_ASC', 'HALFWIDTH_FULLWIDTH_LIKE_JIS', 'smallToLarge_ja_JP', 'largeToSmall_ja_JP')
IGNORE
('IGNORE_WIDTH', 'ignoreTraditionalKana_ja_JP', 'ignoreTraditionalKanji_ja_JP', 'IGNORE_KANA', 'ignoreMinusSign_ja_JP', 'ignoreIterationMark_ja_JP', 'ignoreSeparator_ja_JP', 'ignoreZiZu_ja_JP', 'ignoreBaFa_ja_JP', 'ignoreTiJi_ja_JP', 'ignoreHyuByu_ja_JP', 'ignoreSeZe_ja_JP', 'ignoreIandEfollowedByYa_ja_JP', 'ignoreKiKuFollowedBySa_ja_JP', 'ignoreSize_ja_JP', 'ignoreProlongedSoundMark_ja_JP', 'ignoreMiddleDot_ja_JP', 'ignoreSpace_ja_JP')

次の関連記事:LibreOffice5(143)MenuBarとPopupMenuのサービスとインターフェイスの一覧

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ