web-dev-qa-db-fra.com

Comment configurer LibreOffice pour utiliser les numéros de page en persan / arabe-indien / hindi?

Je souhaite que mes numéros de page dans LibreOffice Impress soient en persan. Ce qui signifie ۰۱۲۳۴۵۶۷۸۹ au lieu de 0123456789.

14
SeMeKh

Ces paramètres fonctionnent dans toutes les applications et tous les documents LibreOffice. Vous pouvez donc apporter des modifications à partir de n'importe quel ensemble d'applications.

Changer les paramètres régionaux

Vous pouvez définir Persian comme valeur par défaut pour tous vos documents ou pour le document actuel uniquement.

Dans la barre de menus, Outils >> Options , développez les Paramètres de langue et cliquez sur Langues

enter image description here

Changer Locale en Farsi. (Notez que ceci est indépendant du réglage de l'interface utilisateur ci-dessus.)

Remplacez CTL par par défaut - Farsi . Cela vérifiera aussi automatiquement activé pour la mise en page de texte complexe (CTL) ci-dessous. CTL gère les langues de droite à gauche.

Vérifier Pour le document actuel uniquement selon votre préférence.

Modification du style numérique global

Cliquez sur Mise en page de texte complexe dans la partie gauche de la boîte de dialogue et modifiez les chiffres en hindi . (non montré dans cette capture d'écran)

Utilisez Insérer >> Numéro de page pour afficher la boîte de dialogue En-tête/Pied de page afin d’ajouter des numéros de page à vos diapositives.

Régler les chiffres sur Hindi dans les paramètres de langue vous permet d’utiliser des chiffres "arabes" sans utiliser d’éditeur de méthode de saisie tel que Ibus. Dans ce contexte, bien sûr, les chiffres arabes sont 1,2,3 ...

Est-il possible d’utiliser des nombres en hindi dans la fonction de numéro de page du pied de page de la diapositive sans changer chaque numéro en hindi?

Réponse courte: pas à travers les paramètres de l'interface graphique. Hormis le paramètre de style de numéro global, il ne semble pas y avoir de moyen de modifier la fonction qui insère des numéros de page.

Fait intéressant, le pied de page vous permet de changer facilement la date en persan. Je pense que les numéros de page ne peuvent pas être modifiés de la même manière car ils semblent provenir de fonctions permettant de travailler avec l’imprimante.

La solution consiste à ne pas utiliser la numérotation de page du pied de page intégrée, mais à insérer votre propre forme de texte dans la même zone avec le texte défini comme vous le souhaitez. Pour un petit nombre de diapositives, ce ne serait pas trop grave. mais ne serait pas réalisable avec plus d'une poignée.

La solution à de ce problème consiste à utiliser une macro LibreOffice Basic pour insérer les numéros de page à votre place. Pour un bref aperçu des macros LibreOffice et de leur utilisation dans votre document, veuillez consulter cette réponse .

Voici le code macro:

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

Cela peut être facilement fait en deux étapes.

ÉTAPE 1: Changer les paramètres régionaux

Allez dans le menu et cliquez sur: Outils> Options, puis sélectionnez Langues sous Paramètres de langue.

Image montrant la première étape

Ici changer le suivant:

  1. Paramètre de lieu - changez-le en arabe (ou dans la langue de votre choix).
  2. CTL - configurez-le également en arabe (uniquement si vous utilisez une langue utilisant la mise en page de texte complexe)
  3. Cochez la case "Pour le document actuel uniquement" si vous souhaitez que cette modification ne concerne que ce document en cours de modification.
  4. Cliquez sur 'OK' et enregistrez le paramètre. À ce stade, assurez-vous que la police utilisée dans le champ du numéro de page prend en charge la langue. Dans mon cas, la police Time New Roman a un chiffre arabe. Caractères ()

ÉTAPE 2: Sélectionnez le type de champ

Sélectionnez ensuite le texte dans le champ du numéro de page (assurez-vous que la police est correcte), puis sélectionnez dans le menu: Edition> Champs

Image montrant la deuxième étape

Dans la fenêtre 'Éditer les champs' qui s'ouvre, modifiez le Format ​​en Numérotation native (comme indiqué ci-dessus). Cliquez sur 'OK' pour enregistrer et fermer.

Vous avez terminé!

0
Jasir Alavi

outils-> options -> paramètres de langue -> mise en page de texte complexe
options générales mis à hindi
et en voici une capture d'écran