Como configurar o LibreOffice para usar números de página em persa / árabe-indicador / hindi?


17

Quero que meus números de página no LibreOffice Impress estejam em persa. O que significa ۰۱۲۳۴۵۶۷۸۹ em vez de 0123456789.


Você configurou o persa como o idioma padrão para esse aplicativo? Você poderia adicionar uma captura de tela?
Lucio

Respostas:


22

Essas configurações funcionam em todos os aplicativos e documentos do LibreOffice, para que você possa fazer alterações em qualquer um dos conjuntos de aplicativos.

Alterando o Código do Idioma

Você pode definir persa como padrão para todos os seus documentos ou apenas para o documento atual.

Na barra de menus, Ferramentas >> Opções , expanda Configurações de idioma e clique em Idiomas.

insira a descrição da imagem aqui

Mude a localidade para farsi. (Observe que isso é independente da configuração da interface do usuário acima.)

Altere CTL para Default - Farsi . Isso também marcará automaticamente Ativado para layout de texto complexo (CTL) abaixo. O CTL lida com idiomas da direita para a esquerda.

Marque Para o documento atual apenas de acordo com sua preferência.

Alterando o estilo numérico global

Clique em Layout de texto complexo no lado esquerdo da caixa de diálogo e altere os números para hindi . (não mostrado nesta captura de tela)

Use Inserir >> Número da página para mostrar a caixa de diálogo Cabeçalho / Rodapé para adicionar números de página aos seus slides.

Definir números como hindi nas configurações de idioma permite usar números "árabes" sem usar um editor de métodos de entrada como o Ibus. Neste contexto, é claro, árabe numerais são 1,2,3 ...

É possível usar números em hindi na função de número da página do rodapé do slide sem alterar todos os números para hindi?

Resposta curta: não através das configurações da GUI. Além da configuração do estilo de número global, não parece haver nenhuma maneira de modificar a função que insere números de página.

Curiosamente, o rodapé permite alterar facilmente a data para persa. Acredito que os números das páginas não podem ser alterados de maneira semelhante, porque os números das páginas parecem ter sido extraídos de funções para funcionar com a impressora.

A solução é não usar a numeração da página do rodapé interna e inserir sua própria forma de texto na mesma área com o texto definido da maneira que você deseja. Para um pequeno número de slides, isso não seria ruim; mas não seria possível com mais de um punhado.

A solução para esse problema é usar uma macro do LibreOffice Basic para inserir os números de página para você. Para uma breve visão geral das macros do LibreOffice e como usá-las em seu documento, consulte esta resposta .

Aqui está o código da 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

Quero que o documento tenha a mesma aparência em outros computadores também! Desta forma, não.
SeMeKh 19/04

Além disso, eu só quero que os "números de página" estejam em persa. Nem "todos os números usados".
SeMeKh 19/04

@SeMeKh Por favor, veja a resposta atualizada
chaskes

0

ferramentas-> opções -> configurações de idiomas -> layout
geral de texto complexo opções gerais configurá-lo para hindi
e aqui está uma captura de tela dele


0

Isso pode ser feito facilmente em duas etapas.

PASSO 1: Alterar a localidade

Acesse o menu e clique em: Ferramentas> Opções e selecione Idiomas em Configurações de idioma.

Imagem mostrando o primeiro passo

Altere aqui o seguinte:

  1. Configuração de localidade - altere para Árabe (ou o idioma que você quiser).
  2. CTL - defina também como árabe (somente se você estiver usando um idioma que use o Layout de texto complexo)
  3. Marque a caixa de seleção 'Somente para o documento atual' se você desejar esta alteração apenas para este documento que está sendo editado
  4. Clique em 'OK' e salve a configuração. Neste ponto, verifique se a fonte usada no campo número da página suporta o idioma. No meu caso, a fonte Time New Roman tem um número árabe. Caracteres (۰۱۲۳)

PASSO 2: Selecione o tipo de campo

Agora selecione o texto no campo número da página (verifique se a fonte está correta) e, no menu, selecione: Editar> Campos

Imagem mostrando a etapa dois

Na janela 'Editar campos' exibida, altere o formato para numeração nativa (como mostrado acima). Clique em 'OK' para salvar e fechar.

Você Terminou!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.