Как настроить LibreOffice для использования номеров страниц на персидском, арабском и индийском языках?

Я хочу, чтобы номера моих страниц в LibreOffice Impress были на персидском языке. Что означает ۰۱۲۳۴۵۶۷۸۹ вместо 0123456789.

17
задан 22 March 2014 в 22:19

3 ответа

Инструменты-> Параметры -> Языковые настройки -> Сложный текстовый макет
Общие параметры устанавливают его на Хинди
и вот его скриншот

0
ответ дан 22 March 2014 в 22:19

Это может быть легко сделано на двух шагах.

ШАГ 1: измените локаль

Добрался до меню и щелчка: Инструменты> Опции, затем избранные Языки при Настройках Языка.

Изображение, показывающее шаг один

Здесь измените следующее:

  1. Установка локали - изменяет это на арабский язык (или безотносительно языка, который Вы хотите).
  2. CTL - установите это на арабский язык также (только если Вы используете язык, который использует Сложное текстовое Расположение),
  3. Отметьте флажок 'For the current document only', если Вы хотите это изменение только для этого документа, это редактируется
  4. Нажмите 'OK' и сохраните настройку. В этой точке удостоверяются, что шрифт, используемый в поле номера страницы, поддерживает язык. В мое Время случая Новый римский шрифт имеет Символы арабской цифры (۰۱۲۳)

ШАГ 2: выберите тип поля

Теперь выберите текст в поле номера страницы (удостоверьтесь, что шрифт является правильным), и затем от выбора меню: Редактирование> Поля

Изображение, показывающее шаг два

В окне 'Edit Fields', которое открывается, измените Формат на Собственный компонент, Нумерующий (как показано выше). Нажмите 'OK', чтобы сохранить и закрыться.

Вы сделаны!

0
ответ дан 22 March 2014 в 22:19

Эти настройки работают во всех приложениях и документах LibreOffice, поэтому вы можете вносить изменения из любого набора приложений.

Изменение языкового стандарта

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

В строке меню Инструменты >> Параметры , затем разверните Настройки языка и нажмите Языки

enter image description here

Измените Язык на фарси. (Обратите внимание, что это не зависит от настройки для пользовательского интерфейса выше.)

Измените CTL на По умолчанию - фарси . Это также автоматически проверит Включено для сложной текстовой разметки (CTL) ниже. CTL обрабатывает языки справа налево.

Проверьте Только для текущего документа в соответствии с вашими предпочтениями.

Изменение глобального стиля цифр

Нажмите Сложный текстовый макет в левой части диалога и измените цифры на Хинди . (не показано на этом снимке экрана)

Используйте Вставить >> Номер страницы , чтобы отобразить диалоговое окно «Верхний / нижний колонтитул» для добавления номеров страниц к слайдам.

Установка чисел на Хинди в настройках языка позволяет использовать «арабские» числа без использования редактора методов ввода, такого как Ibus. В этом контексте, конечно, арабскими цифрами являются 1,2,3 ...

Можно ли использовать числа хинди в функции нумерации страниц нижнего колонтитула , не изменяя каждое число на хинди?

Краткий ответ: не через настройки графического интерфейса , Помимо настройки глобального стиля чисел, похоже, нет способа изменить функцию, которая вставляет номера страниц.

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

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

Решение этой проблемы заключается в использовании макроса 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
0
ответ дан 22 March 2014 в 22:19

Другие вопросы по тегам:

Похожие вопросы: