Pular para o conteúdo principal

Problemas com locale em pt_BR no Archlinux

Após três meses de utilização do Ubuntu, decidi voltar para o ArchLinux e me deparei com um problema besta, mas que demorei a descobrir a causa.

Ao instalar o sistema, escolhemos no arquivo locale.gen os charsets desejados para o sistema e depois criamos o arquivo locale.conf, com as indicando o idioma do sistema, unidade monetária, data, etc...

Prefiro utilizar minhas distros em inglês mas claro que desejo que todo o resto esteja configurado para o nosso país. Pois bem, Coloquei no arquivo as seguintes configurações:

LANG=en_US.utf8
LC_TIME=pt_BR.utf8
LC_ALL=pt_BR.UTF8
LC_NUMERIC=pt_BR.utf8
LC_MONETARY=pt_BR.utf8
LC_MEASUREMENT=pt_BR.utf8

O problema é que ele me mostrava as datas todas em inglês e o Gnome ficou sem entender qual LC_TIME e LC_CTYPE eu havia selecionado. Quando eu executava:

$ locale

Eu obtinha exatamente o que eu havia colocado no meu conf e com três linhas de erro, dizendo que não foi possível encontrar o arquivo ou diretório. Depois de pesquisar muito e não encontrar nada, me lembrei de que eu não havia setado no locale.gen os en_US.utf8/en_us.iso8859-1. Solucionado! Eu não posso deixar somente os pt_BR.****, se no conf eu utilizo outros também.

Espero que esse post ajude alguém a não passar tanto tempo procurando uma solução tão simples, como fiz.

setlocale: LC_CTYPE: cannot change locale (en_US.UTF8): No such file or directory

Postagens mais visitadas deste blog

Arrays no PostgreSQL

Aquele mesmo projeto que estou trabalhando me exigiu aprender como adicionar um array em tabelas do PostgreSQL. É algo bem simples de se utilizar. Vamos começar criando uma tabela que recebe os arrays:
CREATE TABLE entrada (
  id SERIAL PRIMARY_KEY,
  nf integer,
  data_reg timestamp without time zone DEFAULTnow(),
  data_inst timestamp without time zone,
  descricao text,
  materiais text[][],
  funcionario varchar(50)
)

Criei uma tabela chamada entrada, que serve para registrar materiais vindos para a instituição. As rows possuirão: id (PRIMARY_KEY),nf (número de nota fiscal),data_reg (data em que a query será registrada),data_inst (data que entrou na instituição),descricao (qualquer observação que precisem colocar)funcionario (id do funcionário que realizou a operação)materiais (É nesse momento que inserimos os arrays...Nesse caso, criei um campo (materiais), que é um array de arrays.  Coloco o tipo de campo, no caso text e o que define-o como array "[]", coloquei os colchetes dua…

Recuperação de stash perdida

Bom pessoal, passei um sufoco bem grande esses dias, onde no frigir dos ovos, eu realizei modificações importantíssimas no meu código, fiz (stash), alterei algumas coisas e no fim, (stash clear). Por que? Falta de atenção, stress, loucura, demência, sei lá.
O fato é que percebi o acontecido somente no próximo dia útil (segunda-feira).
Daí, eu tive que por o cérebro para funcionar, lembrar o erro que havia cometido e escolher formas para chegar aos dois kilos de código alterados na sexta feira...

Uma vez que tudo no git possui um SHA-1 e os índices não são apagados automaticamente (git-gc), o que eu limpei do stash deveria estar em algum lugar do banco de dados do meu repositório GIT local.

Mãos a obra na pesquisa e encontramos um camadara muito útil na documentação do (fsck):
--no-reflog: Do not consider commits that are referenced only by an entry in a reflog to be reachable. This option is meant only to search for commits that used to be in a ref, but now aren’t, but are still in tha…

View em PostgreSQL

Estou fazendo um programa de almoxarifado e decidi me aventurar no Postgres. Por coincidência acabei estudando bancos de dados em geral. Aprendi uma maneira muito simples de aumentar a velocidade do programa e reaproveitar código. Ao utilizar uma view, os dados já ficam pré-recarregados no servidor, então ao retirar os dados, você não está fazendo uma consulta completa no DB, pois ela já foi efetuada. Mão na massa...
Tenho as seguintes tabelas:

CREATE TABLE material (
  id SERIAL PRIMARY KEY,  -- auto_increment da ID
  nome varchar(200),      -- Nome
  modelo varchar(100),    -- Modelo
  tipo int,               -- Tipo (Pego em tabela tipo)
  marca int,              -- Marca (Pego em tabela marca)
);


CREATE TABLE tipo (
  id SERIAL PRIMARY KEY,  -- auto_increment da ID
  tipo varchar(100),      -- Tipo de produto
);
CREATE TABLE marca (
  id SERIAL PRIMARY KEY,  -- auto_increment da ID
  marca varchar(100),     -- Marca do produto
);
Vamos somente adicionar alguns valores para que tenha…