Jak ustawić LibreOffice na używanie numerów stron w języku perskim / arabskim / hindi?

17

Chcę, aby moje numery stron w LibreOffice Impress były w języku perskim. Co oznacza ۰۱۲۳۴۵۶۷۸۹ zamiast 0123456789.

SeMeKh
źródło
Czy skonfigurowałeś perski jako domyślny język dla tej aplikacji? Czy możesz dodać zrzut ekranu?
Lucio

Odpowiedzi:

22

Te ustawienia działają we wszystkich aplikacjach i dokumentach LibreOffice, dzięki czemu można wprowadzać zmiany w dowolnym zestawie aplikacji.

Zmiana ustawień regionalnych

Możesz ustawić Perski jako domyślny dla wszystkich swoich dokumentów lub tylko dla bieżącego dokumentu.

Z paska menu, Narzędzia >> Opcje , następnie rozwiń Ustawienia języka i kliknij Języki

wprowadź opis zdjęcia tutaj

Zmień ustawienia regionalne na Farsi. (Należy pamiętać, że jest to niezależne od powyższego ustawienia interfejsu użytkownika).

Zmień CTL na Domyślne - Farsi . Spowoduje to również automatyczne zaznaczenie opcji Włączone dla złożonego układu tekstu (CTL) poniżej. CTL obsługuje języki od prawej do lewej.

Sprawdź, czy bieżący dokument jest zgodny tylko z twoimi preferencjami.

Zmiana globalnego stylu liczbowego

Kliknij złożony układ tekstu po lewej stronie okna dialogowego i zmień cyfry na hindi . (nie pokazano na tym zrzucie ekranu)

Użyj Wstaw >> Numer strony, aby wyświetlić okno dialogowe Nagłówek / Stopka w celu dodania numerów stron do slajdów.

Ustawienie cyfry na hindi w ustawieniach języka pozwala używać liczb „arabskich” bez użycia edytora metod wprowadzania, takiego jak Ibus. Oczywiście w tym kontekście cyfry arabskie to 1,2,3 ...

Czy można używać liczb hindi w funkcji numeru strony stopki slajdu bez zmiany każdej liczby na hindi?

Krótka odpowiedź: nie przez ustawienia GUI. Oprócz ustawienia globalnego stylu liczb nie wydaje się, aby można było zmodyfikować funkcję wstawiania numerów stron.

Co ciekawe, stopka pozwala łatwo zmienić datę na perską. Uważam, że numerów stron nie można zmienić w podobny sposób, ponieważ wydaje się, że numery stron zostały narysowane z funkcji współpracujących z drukarką.

Rozwiązaniem jest w ogóle nie używać wbudowanej numeracji stron stopki i zamiast tego wstawić własny kształt tekstu w tym samym obszarze z ustawionym tekstem tak, jak chcesz. W przypadku niewielkiej liczby slajdów nie byłoby to takie złe; ale nie byłoby to wykonalne z więcej niż garstką.

Rozwiązaniem tego problemu jest użycie makra LibreOffice Basic do wstawienia numerów stron. Krótki przegląd makr LibreOffice i sposób ich użycia w dokumencie znajduje się w tej odpowiedzi .

Oto kod makra:

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
kolby
źródło
Chcę, aby dokument wyglądał tak samo na innych komputerach! W ten sposób tak nie jest.
SeMeKh
Chcę też, aby „numery stron” były w języku perskim. Nie „wszystkie użyte liczby”.
SeMeKh
@SeMeKh Proszę zobaczyć zaktualizowaną odpowiedź
chaskes 24.04.13
0

tools-> opcje -> ustawienia języków -> złożony układ tekstu
ogólne opcje ustaw na hindi
i oto zrzut ekranu

Abdalla Mohamed Aly Ibrahim
źródło
0

Można to łatwo zrobić w dwóch krokach.

KROK 1: Zmień ustawienia regionalne

Przejdź do menu i kliknij: Narzędzia> Opcje , a następnie wybierz Języki w Ustawieniach języka.

Obraz przedstawiający krok pierwszy

Tutaj zmień następujące ustawienia:

  1. Ustawienia regionalne - zmień na arabski (lub inny wybrany język).
  2. CTL - ustaw również na arabski (tylko jeśli używasz języka, który używa złożonego układu tekstu)
  3. Zaznacz pole wyboru „Tylko dla bieżącego dokumentu”, jeśli chcesz tę zmianę tylko dla edytowanego dokumentu
  4. Kliknij „OK” i zapisz ustawienie. W tym momencie upewnij się, że czcionka użyta w polu numeru strony obsługuje język. W moim przypadku czcionka Time New Roman ma cyfry arabskie Znaki (۰۱۲۳)

KROK 2: Wybierz typ pola

Teraz zaznacz tekst w polu numeru strony (upewnij się, że czcionka ma rację), a następnie z menu wybierz: Edycja> Pola

Obraz przedstawiający krok drugi

W oknie „Edytuj pola”, które się otworzy, zmień Format na Numerację natywną (jak pokazano powyżej). Kliknij „OK”, aby zapisać i zamknąć.

Jesteś skończony!

Jasir Alavi
źródło