Як налаштувати LibreOffice на використання персидських / арабсько-індійських / хінді сторінок?


17

Я хочу, щоб мої сторінки були в LibreOffice Impress, щоб вони були перською. Що означає ۰۱۲۳۴۵۶۷۸۹ замість 0123456789.


Ви налаштували персидську як мову за замовчуванням для цієї програми? Чи можете ви додати знімок екрана?
Лусіо

Відповіді:


22

Ці налаштування працюють у всіх програмах та документах LibreOffice, тому ви можете вносити зміни в будь-який із наборів програм.

Зміна місцевості

Ви можете встановити персидську як за замовчуванням для всіх ваших документів або лише для поточного документа.

На панелі меню Інструменти >> Параметри , потім розгорніть Налаштування мови та натисніть Мови

введіть тут опис зображення

Змініть локальну мову на фарсі. (Зверніть увагу, що це не залежить від налаштувань для інтерфейсу користувача вище.)

Змініть CTL на Типовий - Farsi . Це також автоматично встановить прапорець Увімкнено на складний макет тексту (CTL) нижче. CTL обробляє мови справа наліво.

Перевірте наявний документ лише у відповідності з вашою перевагою.

Зміна глобального стилю цифр

Клацніть на Складний макет тексту в лівій частині діалогового вікна та змініть цифри на хінді . (не показано на цьому скріншоті)

Використовуйте Вставити >> Номер сторінки, щоб показати діалогове вікно заголовка / колонтитула, щоб додати номери сторінок до слайдів.

Якщо встановити цифри хінді в Налаштуваннях мови, ви можете використовувати "арабські" номери без використання редактора методів введення, наприклад Ibus. У цьому контексті, звичайно, арабські цифри 1,2,3 ...

Чи можливо використовувати номери хінді у функції номера сторінки нижнього колонтитула без зміни кожного номера на хінді?

Коротка відповідь: не через налаштування GUI. Окрім глобальних параметрів стилю чисел, схоже, не існує способу змінити функцію, яка вставляє номери сторінок.

Цікаво, що колонтитул дозволяє легко змінити дату на персидську. Я вважаю, що номери сторінок не можуть бути змінені аналогічним чином, оскільки, здається, номери сторінок виведені з функцій для роботи з принтером.

Рішення полягає в тому, щоб взагалі не використовувати вбудовану нумерацію сторінок нижнього колонтитулу, а замість цього вставити власну форму тексту в ту саму область з текстом, встановленим так, як вам потрібно. Для невеликої кількості слайдів це було б не надто погано; але це було б нездійсненно з кількома жменями.

Рішення цієї проблеми - використовувати макрос LibreOffice Basic, щоб вставити номери сторінок для вас. Короткий огляд макросів LibreOffice та способів їх використання у вашому документі див. Цю відповідь .

Ось макро код:

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

Я хочу, щоб документ виглядав так само і на інших комп’ютерах! Таким чином, це не так.
SeMeKh

Також я просто хочу, щоб "номери сторінок" були на персидській мові. Не "всі використовувані числа".
SeMeKh

@SeMeKh Будь ласка, дивіться оновлену відповідь
відзначає


0

Це легко зробити в два етапи.

КРОК 1: Зміна місцеположення

Перейдіть до меню та натисніть: Інструменти> Параметри , а потім виберіть Мови у розділі Налаштування мови.

Зображення, показане першим кроком

Тут змініть наступне:

  1. Налаштування місцевості - змініть це на арабську (або будь-якою мовою).
  2. CTL - встановіть це також арабською мовою (лише якщо ви використовуєте мову, яка використовує складний макет тексту)
  3. Поставте прапорець "Тільки для поточного документа", якщо ви хочете, щоб ця зміна була лише для цього документа, який редагується
  4. Натисніть «ОК» і збережіть налаштування. У цей момент переконайтеся, що шрифт, використаний у полі номера сторінки, підтримує мову. У моєму випадку шрифт Time New Roman має арабське число символів (۰۱۲۳)

КРОК 2: Виберіть Тип поля

Тепер виберіть текст у полі номера сторінки (переконайтесь, що шрифт правильний), а потім у меню виберіть: Правка> Поля

Зображення, показане на другому кроці

У вікні "Редагувати поля", що відкриється, змініть Формат на Нативну нумерацію (як показано вище). Натисніть "ОК", щоб зберегти та закрити.

Ви закінчили!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.