# Problemas com Chartset [SOLVED]

## HeXiLeD

A uns dias atras fui ajudado por o JAKK ( ptnet ) a fazer umas modificacoes no sistema para puder ler e escrever com acentuacao na consola. (ajuda foi fantastica e resolveu me  o problema)

Estava sem interface grafico e essa modificacao  teve de ser feita.

Anteriormente eu tinha o sistema todo em ingles e dificuldade em ler ou escrever portugues com a devida acentuacao.

Neste momento  tenho as coisas .. em parte boas na consola .. mas desgracadas no geral.

Basicamente o que eu preciso e o seguinte:

Ter o sistema todo em ingles de base mas que suporte portugues no minimo para ler.

Escrever e opcional mas seria bom.

Gostaria de ter este suporte todo tanto na consola como quando uso interface grafico sem ter de andar a mudar as coisas constantemente

Quanto as linguas que me convem ser suportadas essas sao:

Ingles' portugues, frances, espanhol e italiano .. . e alemao se der sem grandes problemas.

Apos as tais modificacoes do charset  e 4 dias depois quando liguei o interface grafico; dou por mim a abrir aplicacoes em portugues. o que e inaceitavel.

Os factos sao simples. nao vivo em .pt e nem uso teclado .pt

Gostaria se possivel que alguem me orienta-se da melhor for para poder ter isto como pretendo. Estive a ver na wiki e o que encontrei nao estava actualizado e nem foi satisfatorio.

aqui vai alguma informacao relevante sobre as especificacoes do meu sistema:

kernel:

```
- Base native language support                                                                                

(iso8859-1) Default NLS Option                                                                                  

<*>   Codepage 437 (United States, Canada)                                                                      

<*>   Codepage 860 (Portuguese)                                                                                 

<*>   ASCII (United States)                                                                                     

<*>   NLS ISO 8859-1  (Latin 1; Western European Languages)                                     

<*>   NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)

<*>   NLS UTF-8       
```

make.conf

```
LINGUAS="en_Us pt_PT en pt
```

"

/etc/rc.conf

```
# UNICODE specifies whether you want to have UNICODE support in the console.

# If you set to yes, please make sure to set a UNICODE aware CONSOLEFONT and

# KEYMAP in the /etc/conf.d/consolefont and /etc/conf.d/keymaps config files.

UNICODE="no"

```

/etc/locale.gen

```
en_US ISO-8859-15

en_US.UTF-8 UTF-8

en_CA ISO-8859-15

en_Ca.UTF-8 UTF-8

pt_PT.UTF-8 UTF-8

pt_PT ISO-8859-15

pt_PT@euro ISO-8859-15

```

# locale

```
LANG=pt_PT@euro

LC_CTYPE="pt_PT@euro"

LC_NUMERIC="pt_PT@euro"

LC_TIME="pt_PT@euro"

LC_COLLATE="pt_PT@euro"

LC_MONETARY="pt_PT@euro"

LC_MESSAGES=en_US

LC_PAPER="pt_PT@euro"

LC_NAME="pt_PT@euro"

LC_ADDRESS="pt_PT@euro"

LC_TELEPHONE="pt_PT@euro"

LC_MEASUREMENT="pt_PT@euro"

LC_IDENTIFICATION="pt_PT@euro"

LC_ALL=
```

# cat  /etc/env.d/02locale

```
LANG=pt_PT@euro

LC_MESSAGES=en_US
```

/etc/locales.build nao existe

estou para fazer rebuild ao OS todo e gostaria de o fazer apenas apos esta alteracao.

Agradeco a atencao e ajuda  :Smile: 

----------

## mfdzerohour

Boa noite,

    Olá tudo bem? Eu estava com problemas parecidos com o seu, no meu caso o que fiz foi somente colocar no make.conf

LINGUAS="pt_BR" 

Tirando todas as outras e o que não me fez falta em hora nenhuma

e acrescentar no final do arquivo /etc/profile as seguintes linhas.

export LC_ALL=pt_BR

export LANG=pt_BR 

Se quiser dar uma olhada no fórum onde consta a dica entre em https://forums.gentoo.org/viewtopic-t-628550.html

Até mais e espero ter ajudado,

----------

## baldeante

Boas,

Veja o meu reply neste tópico https://forums.gentoo.org/viewtopic-t-557996-highlight-.html

Eu tenho todo o sistema em inglês com o teclado em português, a única coisa que utilizo em português e o OpenOffice .....

Tenho no meu /etc/make.conf :

```

LINGUAS="en pt"

```

Suponho que o idioma predefinido é o primeiro no entanto pode definir no login do X o idioma predefinido para cada utilizador se não me engano ...

O teclado no X e definido no ficheiro /etc/X11/xorg.conf

Por exemplo para o teclado em português :

```

Section "InputDevice"

   Identifier   "Generic Keyboard"

   Driver      "kbd"

   Option      "CoreKeyboard"

   Option      "XkbRules"   "xorg"

   Option      "XkbModel"   "pc105"

   Option      "XkbLayout"   "pt"

   Option      "XkbOptions"   "lv3:ralt_switch"

EndSection

```

O teclado na consola e definido no ficheiro /etc/conf.d/keymaps

Por exemplo para o teclado em português euro : 

```

KEYMAP="pt-latin1 euro2"

```

Suponho que só tenha de alterar os códigos do teclado para o idioma que utiliza no seu teclado e verificar o ficheiro /etc/env.d/02locale

Suponho que não haja problemas com o inglês do link que refiro .... se houver diga ...

----------

## hcintra

HeXiLed, 

alguns checks:

Você executou "locale-gen"? Se o fez o comando "locale -a" deve mostrar as variáveis "locale names + charsets" que você inseriu em /etc/locale.gen (junto com POSIX e C).

Como ficou a configuração de teclado do seu /etc/X11/xorg.conf? Segue abaixo o meu como exemplo. Uso um teclado americano sem fio, Logitech Cordless Desktop LX700, é um modelo layout "us" como entendi ser o seu caso, ao contrário do que é recomendado nas duas mensagens acima. Deixei as configurações de teclado no Control Center KDE em branco.

```

Section "InputDevice"

   Identifier   "Keyboard0"

   Driver      "kbd"

   Option      "XkbModel"   "ltcd"

   Option      "XkbLayout"   "us"

   Option      "XkbVariant"   "alt-intl"

EndSection

```

Em relação ao arquivo /etc/env.d/02locale tudo funcionou para mim (sofri bastante...) depois utilizei a recomendação do Localization Guide sem tirar nem por:

```

LC_ALL="pt_BR"

LANG="pt_BR"

```

(imagino que você possa substituir por pt_PT sem problemas)

Quanto aos menus exibidos pelos aplicativos estou com tudo em inglês. Acho que são três ações necessárias:

(1) dentro do Control Center do KDE, na opção /Regional & Acessibility>Country/Region & Language>Locale exclua o português e inclua o inglês.;

(2) a variável LINGUAS no /etc/make.conf a opção do inglês precisa vir primeiro, pois o Firefox e talvez outros que não percebi usam o primeiro argumento da lista como default (é aqui você devia acrescentar as outras linguas que você precisa de suporte "fr es it de", não deve haver qualquer problema, mas não esqueça de fazer um emerge -DNav world e é bom ver no seu emerge --info se o nls e unicode estão incluídos no seu profile);

(3) no Open Office (talvez outros também) está definição deve ser mudada internamente, vá para /Options>Language Settings>Languages e altere o primeiro parâmetro, language of user interface, para o inglês.

Um esclarecimento: o que controla a capacidade de exibição dos caracteres do português pelos aplicativos são as opções do NLS no kernel. As minhas configurações estão parecidas com as suas, apenas com a diferença de ter optado pela ISO8859-15 como default. Acho que você deveria fazer o mesmo, pois a ISO8859-15 é uma pequena revisão da ISO8859-1 com o acréscimo do Euro (veja na Wikipedia).

Por último, uma pergunta: como você resolveu os acentos no console? Qual variáveis de keymap e consolefont você está usando? Eu estou usando KEYMAP="us-acentos" e CONSOLEFONT="lat1-16" nos arquivos /etc/conf.d/keymaps e /etc/conf.d/consolefont, respectivamente. Os acentos estão sendo gerados, ou ao menos é o que imagino, pois não há visualização. Ao invés do caracter com acento, aparece um ponto de interrogação em negativo toda vez que o deadkey gera uma letra acentuado ou o cedilha.

----------

## HeXiLeD

ok...

 vou separar as duas coisas pra ser mais facil. ( consola e X )

Na consola de momento consigo fazer acentos e tudo mais mas nao o simbolo do euro )

as configuracoes sao as seguintes:

```
# /etc/conf.d/keymaps

# Use KEYMAP to specify the default console keymap.  There is a complete tree

# of keymaps in /usr/share/keymaps to choose from.

KEYMAP="us-acentos"

# Should we first load the 'windowkeys' console keymap?  Most x86 users will

# say "yes" here.  Note that non-x86 users should leave it as "no".

SET_WINDOWKEYS="yes"

# The maps to load for extended keyboards.  Most users will leave this as is.

EXTENDED_KEYMAPS="backspace keypad euro"

# Tell dumpkeys(1) to interpret character action codes to be

# from the specified character set.

# This only matters if you set UNICODE="yes" in /etc/rc.conf.

# For a list of valid sets, run `dumpkeys --help`

DUMPKEYS_CHARSET=""
```

```
# /etc/conf.d/consolefont

# CONSOLEFONT specifies the default font that you'd like Linux to use on the

# console.  You can find a good selection of fonts in /usr/share/consolefonts;

# you shouldn't specify the trailing ".psf.gz", just the font name below.

# To use the default console font, comment out the CONSOLEFONT setting below.

# This setting is used by the /etc/init.d/consolefont script (NOTE: if you do

# not want to use it, run "rc-update del consolefont" as root).

CONSOLEFONT="default8x16"

# CONSOLETRANSLATION is the charset map file to use.  Leave commented to use

# the default one.  Have a look in /usr/share/consoletrans for a selection of

# map files you can use.

CONSOLETRANSLATION="8859-15_to_uni"
```

nesta ultima irei tentar  o teu exemplo mais tarde.

Quanto a configuracao de default NLS no kernel. irei fazer a mudanca para ISO8859-15. quem sabe isso resolve  a configuracao de CONSOLEFONT="default8x16"  sem ter de ser alterada.

Quanto as alteracoes em X devo dizer que nao uso nada mais que fluxbox, gtk* e qt. 

Estou tambem a pensar e fazer algo que implica o uso de 2 teclados na configuracao do Xorg.

Uma vez que ja uso dos monitores em separado, vermos o  resultado mais tarde.

o segundo teclado tera um layout portugues assim como a respectiva configuracao.

Agora vou analisar as respostas que me foram dadas e aqui e depois informo dos resultados.

Desde ja um obrigado pela atencao

----------

## hcintra

Meu exemplo tem erros.

Não é verdade que manteve-se tudo no Inglês. Ainda estou arrumando Prometo postar após o carnaval. Precisa ter o LC_MESSAGES e os locale names com .utf-8 dão pau.

Alegrias.

----------

## baldeante

Depois de ler o teu comentário sobre conseguires fazer acentos mas não conseguires o símbolo do euro testei no meu PC e cheguei a mesma conclusão :

/etc/conf.d/keymaps :

```

KEYMAP="pt-latin1 euro2"

SET_WINDOWKEYS="no"

EXTENDED_KEYMAPS=""

#EXTENDED_KEYMAPS="backspace keypad euro"

DUMPKEYS_CHARSET=""

```

Consigo todos os acento menos o euro na interface gráfica no entanto no OpenOffice o símbolo do euro aparece como só utilizo lá mesmo nunca tinha dado conta .... 

/etc/conf.d/consolefont :

```

#CONSOLEFONT="default8x16"

CONSOLEFONT="lat9w-16"

#CONSOLETRANSLATION="8859-1_to_uni"

```

Aqui tenho o mesmo problema o símbolo do euro não aparece mas todos os outros caracteres aparecem ...  nunca precisei do símbolo do euro na consola e acho que nunca vou precisar ....

No meu caso eu uso o fluxbox não sei se tem alguma coisa a ver com o assunto, sei que o o Gnome e o Kde tem bons utilitários para acertar o teclado e que afectam todo o X se utilizas um destes dois devias tentar pode ser que ajude ....

----------

## HeXiLeD

Sobre as fontes na consola  ja tenho tudo resolvido.

```
# cat  /usr/share/consolefonts/README.lat9
```

# /etc/conf.d/consolefont

```
# CONSOLEFONT specifies the default font that you'd like Linux to use on the

# console.  You can find a good selection of fonts in /usr/share/consolefonts;

# you shouldn't specify the trailing ".psf.gz", just the font name below.

# To use the default console font, comment out the CONSOLEFONT setting below.

# This setting is used by the /etc/init.d/consolefont script (NOTE: if you do

# not want to use it, run "rc-update del consolefont" as root).

CONSOLEFONT="lat9w-16"

# CONSOLETRANSLATION is the charset map file to use.  Leave commented to use

# the default one.  Have a look in /usr/share/consoletrans for a selection of

# map files you can use.

CONSOLETRANSLATION="8859-15_to_uni"

```

em relacao a CONSOLETRANSLATION="8859-15_to_uni" :

```
# cat /usr/share/consoletrans/8859-15_to_uni.trans | grep EURO  
```

# /etc/conf.d/keymaps

```
# Use KEYMAP to specify the default console keymap.  There is a complete tree

# of keymaps in /usr/share/keymaps to choose from.

 

KEYMAP="us-acentos"

 

 

# Should we first load the 'windowkeys' console keymap?  Most x86 users will

# say "yes" here.  Note that non-x86 users should leave it as "no".

 

SET_WINDOWKEYS="yes"

 

 

# The maps to load for extended keyboards.  Most users will leave this as is.

 

EXTENDED_KEYMAPS="backspace keypad euro"

 

 

# Tell dumpkeys(1) to interpret character action codes to be 

# from the specified character set.

# This only matters if you set UNICODE="yes" in /etc/rc.conf.

# For a list of valid sets, run `dumpkeys --help`

 

DUMPKEYS_CHARSET="iso-8859-15"

```

Esta configuracao permite me fazer tudo na consola inclusive o simbolo do euro.

Quanto a configuracao de default NLS no kernel. fiz a mudanca para ISO8859-15 antes de ter mudado estas ultimas configuracoes em cima postadas e nao resolveu nada. De momento esta configuracao do kernel mantem-se.

Considero a primeira parte do problema resolvida com as fontes e o teclado ingles (qwerty) mas permitindo uso em portugues na consola.(todos os acentos e simbolos da lingua portguesa)

No que diz respeito em ambiente grafico; informo que sou um user do fluxbox sem dependencias kde/gnome/xfc4 etc.

Assim que faca algum progresso com o interface grafico eu publicarei os resultados.

Ate la aguardo sempre sugestoes.

----------

## baldeante

Boas,

Esqueci-me de mencionar que o problema que acima mencionei com as configurações mencionadas era referente a aplicações no X e consola dentro do X.

Com as configurações mencionadas a consola pura (tty1) tem todos os caracteres portugueses + euro sem problemas ....

Experimentei "jogar" com as configurações dos ficheiros :

/etc/conf.d/consolefont alterando o valor de CONSOLETRANSLATION 

e

/etc/conf.d/keymaps alterando o valor de DUMPKEYS_CHARSET

E em nenhum dos casos afectou a consola (tty1) ou consola dentro do X mantendo-se tudo na mesma ...

----------

## HeXiLeD

Acentos e simbolos usando X com teclado em qwerty inglês

Secção do xorg

```
Section "InputDevice"

    # generated from default

    Identifier     "Keyboard0"

    Driver         "kbd"

    Option         "XkbLayout"   "us_intl"

EndSection
```

apenas isto e nada mais

us_intl

http://www.cs.umu.se/~hegner/Misc/Windowskb/windows0x.png

Penso que este tópico está quase resolvido.

Irei ver em promenor e depois possivelmente acrescentarei detalhes extra para o teclado que uso.

E um cherry cymotion master linux

http://mercury.chem.pitt.edu/~sasha/LinuxFocus/common/images2/article373/cymotion_master_linux.jpg

----------

## HeXiLeD

Neste momento estou apenas com o problema do charset na consola dentro de X.

Consigo fazer as acentuações apenas usando o aterm, mrxvt  e roxterm 

O pterm, Eterm, e xterm não deixam

alguém têm alguma possível solução pra isto?  ou ideias?

```
Eterm:  Error:  Unable to load font "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-*-iso8859-1".  Falling back on "fixed"

```

```
$ xterm

Warning: Unable to load any usable ISO8859 font

Error: Aborting: no font found
```

----------

## baldeante

 *HeXiLeD wrote:*   

> Neste momento estou apenas com o problema do charset na consola dentro de X.
> 
> Consigo fazer as acentuações apenas usando o aterm, mrxvt  e roxterm 
> 
> O pterm, Eterm, e xterm não deixam
> ...

 

Eu não percebo para que precisas de tantos interpretadores de comandos diferentes mas cada um sabe de si ....

Eu resolvi parte dos meus problemas com charset na linha de comandos ao criar um ficheiro com o nome .Xdefaults na pasta do meu utilizador com as seguintes linhas ....

```

xterm*geometry:          100x25

xterm*faceName:          monofur

xterm*faceSize:          14

xterm*internalBorder:    2

!xterm*font:              -*-clean-*-*-*-*-*-*-*-*-*-*-iso8859-15

xterm*background:        #222222

xterm*foreground:        #ddccbb

xterm*metaSendsEscape:   true

xterm*colorBD:           #ffffff

xterm*colorBDMode:       true

xterm*cursorBlink:       true

xterm*cursorColor:       #ff9900

!xterm*veryBoldColors:    16

xterm*loginShell:        true

!xterm*charClass:         33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48,35:48,58:48,63:48,61:48,44:48,38:48,59:48

xterm*jumpScroll:        true

xterm*multiScroll:       true

xterm*boldMode:          true

xterm*saveLines:         512

Aterm*scrollBar: false

Aterm*loginShell: true

Aterm*transparent: true

Aterm*tintingType: true

Aterm*tinting: #a07040

Aterm*shading: 50

!Aterm*title: Terminal

!Aterm*iconName: Terminal

!Aterm*font: -misc-fixed-medium-r-normal-*-13-*-*-*-c-*-iso8859-15

Aterm*geometry: 100x25

Aterm*foreground: gray

```

Eu acabei por comentar as linhas que faziam referencia a font mas podes jogar com a mesma ... acho que e a melhor hipótese ...

Eu só uso xterm e aterm porque a transparência da jeito em alguns casos ....

----------

## HeXiLeD

Este problema encontra-se resolvido com as seguintes defições:

/etc/rc.conf 

```

# UNICODE specifies whether you want to have UNICODE support in the console. 

# If you set to yes, please make sure to set a UNICODE aware CONSOLEFONT and 

# KEYMAP in the /etc/conf.d/consolefont and /etc/conf.d/keymaps config files. 

UNICODE="yes"
```

/etc/locale.gen

```
en_US.UTF-8 UTF-8

en_US ISO-8859-15

en_US ISO-8859-1

pt_PT@euro ISO-8859-15

pt_PT.UTF-8 UTF-8

pt_PT ISO-8859-15

pt_PT ISO-8859-1
```

# locale

```
LANG=en_US.UTF-8

LC_CTYPE=en_US

LC_NUMERIC=en_US

LC_TIME=en_US

LC_COLLATE=en_US

LC_MONETARY=en_US

LC_MESSAGES=en_US

LC_PAPER=en_US

LC_NAME=en_US

LC_ADDRESS=en_US

LC_TELEPHONE=en_US

LC_MEASUREMENT=en_US

LC_IDENTIFICATION=en_US

LC_ALL=
```

#  cat /etc/env.d/02locale

```
LANG=en_US.UTF-8

LC_CTYPE=en_US.UTF-8

LC_NUMERIC=en_US.UTF-8

LC_TIME=en_US.UTF-8

LC_COLLATE=en_US.UTF-8

LC_MONETARY=en_US.UTF-8

LC_PAPER=en_US.UTF-8

LC_NAME=en_US.UTF-8

LC_ADDRESS=en_US.UTF-8

LC_TELEPHONE=en_US.UTF-8

LC_MEASUREMENT=en_US.UTF-8

LC_IDENTIFICATION=en_US.UTF-8

LC_MESSAGES=en_US.UTF-8
```

O teclado no X e definido no ficheiro /etc/X11/xorg.conf

```
Section "InputDevice"

    # generated from default

    Identifier     "Keyboard0"

    Driver         "kbd"

    # cherryblueb => Cherry CyMotion Master XPress

    Option         "XkbModel"    "cherryblueb"

    Option         "XkbVariant"  "intl"

    Option         "XkbLayout"   "us_intl"
```

/etc/conf.d/keymaps

```
# Use KEYMAP to specify the default console keymap.  There is a complete tree

# of keymaps in /usr/share/keymaps to choose from.

KEYMAP="us-acentos"

# Should we first load the 'windowkeys' console keymap?  Most x86 users will

# say "yes" here.  Note that non-x86 users should leave it as "no".

SET_WINDOWKEYS="yes"

# The maps to load for extended keyboards.  Most users will leave this as is.

EXTENDED_KEYMAPS="backspace keypad euro"

# Tell dumpkeys(1) to interpret character action codes to be

# from the specified character set.

# This only matters if you set UNICODE="yes" in /etc/rc.conf.

# For a list of valid sets, run `dumpkeys --help`

DUMPKEYS_CHARSET="iso-8859-15"

```

# /etc/conf.d/consolefont

```
# CONSOLEFONT specifies the default font that you'd like Linux to use on the

# console.  You can find a good selection of fonts in /usr/share/consolefonts;

# you shouldn't specify the trailing ".psf.gz", just the font name below.

# To use the default console font, comment out the CONSOLEFONT setting below.

# This setting is used by the /etc/init.d/consolefont script (NOTE: if you do

# not want to use it, run "rc-update del consolefont" as root).

CONSOLEFONT="lat9w-16"

# CONSOLETRANSLATION is the charset map file to use.  Leave commented to use

# the default one.  Have a look in /usr/share/consoletrans for a selection of

# map files you can use.

#CONSOLETRANSLATION="8859-15_to_uni"
```

No que diz respeito a conseguir  fazer acentuações em terminais executados em X; os seguintes terminais não tem problemas:

xterm, Eterm, rox-term, mrxvt.

No entanto com o aterm não funcionam e o pterm mesmo configurado correctamente em relação ao charset, simplesmente não consegue criar as acentuações.

E em relação os seguintes erros e aplicações que não se executavam devido aos mesmos:

```
Error:  Unable to load font "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-*-iso8859-1".  Falling back on "fixed"

Warning: Unable to load any usable ISO8859 font Error: Aborting: no font found
```

a solução esta aqui explicada @ https://forums.gentoo.org/viewtopic-t-739586-highlight-.html

Tópico resolvido

----------

