web-dev-qa-db-ja.com

ペルシャ語/アラビア語/ヒンディー語のページ番号を使用するようにLibreOfficeを設定する方法は?

LibreOffice Impressのページ番号をペルシャ語にしたいのですが。これは0123456789ではなくmeansを意味します。

14
SeMeKh

これらの設定はすべてのLibreOfficeアプリケーションとドキュメントで機能するため、どのアプリケーションセットからでも変更を加えることができます。

ロケールの変更

すべてのドキュメントまたは現在のドキュメントのみに対して、ペルシア語をデフォルトとして設定できます。

メニューバーから、Tools >> Optionsを展開し、Language Settingsを展開して、言語

enter image description here

Localeをペルシア語に変更します。 (これは、上記のユーザーインターフェイスの設定とは無関係です。)

CTLDefault-Farsiに変更します。これにより、以下の複雑なテキストレイアウト(CTL)の有効化も自動的にチェックされます。 CTLは、右から左の言語を処理します。

現在のドキュメントのみを確認してください。

グローバルな数字スタイルの変更

ダイアログの左側にあるComplex Text Layoutをクリックし、数字をHindiに変更します。 (このスクリーンショットには表示されていません)

スライドにページ番号を追加するには、Insert >> Page Numberを使用して、Header/Footerダイアログを表示します。

言語設定で数字をHindiに設定すると、Ibusなどの入力方式エディターを使用せずに「アラビア語」の数字を使用できます。この文脈では、もちろん、Arabic数字は1,2,3...

スライドフッターのページ番号関数でヒンディ語を使用できますかwithoutすべての数字をヒンディ語に変更しますか?

簡単な答え:GUI設定を使用しない。グローバル番号スタイル設定とは別に、ページ番号を挿入する機能を変更する方法はないようです。

興味深いことに、フッターを使用すると、dateをペルシア語に簡単に変更できます。ページ番号はプリンタで動作する関数から描画されているように見えるため、ページ番号を同様の方法で変更することはできません。

解決策は、組み込みのフッターページの番号付けをまったく使用せず、代わりに希望する方法で設定されたテキストで同じ領域に独自のテキストシェイプを挿入することです。少数のスライドの場合、これはそれほど悪くありません。しかし、一握り以上では実現不可能です。

this問題の解決策は、LibreOffice Basicマクロを使用してページ番号を挿入することです。 LibreOfficeマクロの簡単な概要とドキュメントでそれらを使用する方法については、 this answer を参照してください。

マクロコードは次のとおりです。

Sub AddPersianPageNumbers

    Dim Doc as Object
    Set Doc = ThisComponent

    'Get the collection of DrawingPages
    Dim DrwPages as Object
    Set DrwPages = Doc.getDrawPages()

    Dim DrwPg as Object
    Dim TxtShp as Object
    Dim TxtPoint as New com.Sun.star.awt.Point

    Dim i as Long
    Dim k as Long

    Dim strNum as string
    Dim strI as string
    Dim idx as long
    Dim uni as string

    'Each slide has it's own Drawpage, so go through the collection
    For i = 0 to DrwPages.getCount() - 1

        'Get the Drawing Page and create a TextShape    
        Set DrwPg = DrwPages.getByIndex(i)
        Set TxtShp = Doc.createInstance("com.Sun.star.drawing.TextShape")

        'Add it to the Drawing Page (must do first)
        DrwPg.Add(TxtShp)   

        TxtPoint.X = DrwPg.Width * 0.9
        TxtPoint.Y = DrwPg.Height * 0.9

        TxtShp.Position = TxtPoint  
        TxtShp.TextAutoGrowWidth = true
        TxtShp.TextAutoGrowHeight = true

        'Just changing the font is not enough since it will still show as Arabic
        'You can change the locale and ComplexText props for just this para
        'but I couldn't find a way to set the para to be seen as ComplexText
        'That would have been elegant, but instead just convert
        'the page number to a string converted from the Unicode code points 

        strI = Cstr(i + 1)

        for k = 1 to Len(strI)
            uni =  "&H66" & mid(strI, k, 1) 'Hindi numeral code points are ascii+660
            strNum = strNum & Chr(uni)
        next k

        TxtShp.SetString(strNum)
        strNum = ""

        TxtShp.CharFontName = "Lohit Hindi"

    Next i  


End Sub
20
chaskes

これは、2つのステップで簡単に実行できます。

ステップ1:ロケールの変更

メニューに移動してツール>オプションをクリックし、言語設定の下の言語を選択します

ステップ1を示す画像

ここで以下を変更します。

  1. ロケール設定-これをアラビア語(または任意の言語)に変更します。
  2. CTL-これもアラビア語に設定します(複合テキストレイアウトを使用する言語を使用している場合のみ)
  3. 編集中のこのドキュメントに対してのみこの変更を行う場合は、[現在のドキュメントのみ]チェックボックスをオンにします。
  4. 「OK」をクリックして設定を保存します。この時点で、ページ番号フィールドで使用されているフォントが言語をサポートしていることを確認してください。私の場合、Time New Romanフォントにはアラビア数字が含まれています(۰۱۲۳)

ステップ2:フィールドタイプの選択

次に、ページ番号フィールドでテキストを選択し(フォントが正しいことを確認します)、メニューから次を選択します。

ステップ2を示す画像

開いた[フィールドの編集]ウィンドウで、FormatNative Numberingに変更します(上記を参照)。 [OK]をクリックして保存して閉じます。

できました!

0
Jasir Alavi

ツール->オプション->言語設定->複雑なテキストレイアウト
一般的なオプションはhindiに設定します
これがスクリーンショットです