As emocionantes aventuras de um sysadmin linux na procura pelo uptime perfeito!

Turbogears Validators, Widgets and i18n (or how I got it to work)

Posted: novembro 6th, 2006 | Author: coredump | Filed under: Linux e Open Source, Programação | Tags: ,

<Originally posted on the turbogears mail list>

So, for the last days or so I was strugling to get validators, widgets and my proto-app internationalized and ready to translate all the stuff.
Turbogears i18n stuff is already advanced, but when using widgets and validation the application can end a little weird… Mainly with non-translated error messages :) Kinda like engrish, portuglish and other mutations.

I used those as reference, and the latest avaiable TurboGears from the site:

http://svn.formencode.org/FormEncode/branches/gettext-enabled/
http://trac.turbogears.org/turbogears/ticket/1136

1) Get the .diff file from the turbogears trac. Apply the patch using the normal way. On Windows I used the ported GNU patch (remember to convert the file to the native DOS format, the unix end of line stuff makes patch very angry).
Go to the TurboGears folder (same level as the turbogears one, noticed the capitalization?) and:

# patch -p0 < tg_i18n_fe.diff

It should apply without errors.

2) Get the formencode with gettext support:

svn co http://svn.formencode.org/FormEncode/branches/gettext-enabled/ temp

but do not do the python setup.py install routine. Just get into the directory and copy the full formencode dir to your site-packages/FormEncode you have (again, pay attention to the capitalization on the dir names).
The setuptool appears to be woopsie and I lost some hours because of that. Gettext support will hopefully be integrated on the next release.

3) Put your custom validators on a separated file. I really did not had the time to investigate why, but the discussion on the trac ticket says it’s the best to do, so I did :)

4) Wrap your strings with the little shrimps _(). I did that even with my error messages on the custom validators.

5) Use the normal TG tools to add i18n, collect strings, etc… In the end, on your new locales/%(lang)s/LC_MESSAGES/ dir you should have FormEncode.mo, TurboGears.mo and messages.pot (and .mo after you compile). If one of those files are missing, pay attention to the i18n add command output, it’ll give you the location where the file should have been, maybe you have to contribute with a translation for your language, but no sweat, most of the work has been done on the FormEncode.mo file. And remember, contributing is GOOD. Shrimps too.

6) Well. It should be working by now. I’m pretty sure that it was all I did. I know, it envolves patching TG and using a development FormEncode, but the results are pretty.

Thanks to Gregor Horvath that made the patch, pointed me to the trac post, helped with the formencode problems and has been an all around Nice Guy®.

Technorati Tags: turbogears, formencode

No Comments »

Cavando! Release de protótipo

Posted: maio 13th, 2006 | Author: coredump | Filed under: Linux e Open Source, Programação | Tags: , ,

E então.

Nas últimas semanas estive tendo cravings de programação novamente, então sentei para aprender a mexer direito no fantástico Turbogears (TG), um megaframework para desenvolvimento rápido de aplicações web. Pois bem, o TG é na verdade uma junção de boas idéias, organizadas para facilitar: CherryPy para servir a aplicação, SQLObject para a abstração de banco de dados, Kid como sistema de template e para os mais sábios MochiKit que é uma biblioteca de funções JavaScript que teoricamente fazem ficar mais simples as tarefas de um bom site Assíncrono (AJAX, AJAJ). Obviamente, todas estas ferramentas são escritas em Python, então se você pensa em fazer aplicações web, sugiro que dê uma olhada no TG.

Deste craving de programação nasceu o Cavando! Notícias. Inicialmente, era para ser algo parecido com o digg.com, mas no final ficou parecido mas com algumas alterações no funcionamento que são decisões minhas depois de pesquisas nos sites atuais de pesquisas. Além de ter sido um aprendizado (e continuar sendo, visto que eu continuo mexendo no programa) é também uma experiência de um site deste tipo em português. Não é o primeiro, mas espero que seja bem frequentado.

Assim, interessados em testar, criem uma conta e comecem a postar e votar em notícias. Para quem não conhece, é simples: as notícias enviadas ficam em uma fila de espera, onde outros usuários podem votar nas mesmas. Se a notícia tem votos suficientes ela vai para a primeira página do site. Assim, quem acaba fazendo a gerência do conteúdo do site é a própria comunidade.

O Cavando! vai ser liberado como programa standalone dentro em pouco. No momento ele está disponível no meu site de desenvolvimento, mas ainda não preparei nada para um release público, os cabeçalhos de licença não estão no lugar, etc.. Além disso a versão atual (protótipo) não possui uma interface de administração e a maioria das operações de configuração são feitas diretamente no banco de dados.

Agradecimentos aos amigos Gustavo Noronha, pelas inúmeras vezes que ele me socorre em Python e Yves Junqueira por ter me enchido o saco durante semanas para que eu voltasse a programar alguma coisa. Além disso, um agradecimento especial ao Fernando Norte, velho amigo de Belo Horizonte que fez o design/CSS do site, invejo sua capacidade de fazer as coisas ficarem bonitas!

Technorati Tags: , , , ,

1 Comment »

A cerveja, os copos e o TurboGears

Posted: março 6th, 2006 | Author: coredump | Filed under: General | Tags: , , , ,

Pois então. Não é que em alguma parte do meu ser ainda existe um programador? De repente, descobri o TurboGears num canto da máquina do kov, e me apaixonei pela porcaria do treco.
Um framework divertido, bunitinho, organizado e que faz tudo o que você precisa de uma forma muito, muito simples. Estou com um projetinho nele, dependendo só da Pri me dar uma página CSS, porque fazer template não é comigo.

Neste meio tempo, espero meu Jornada 728 chegar para poder instalar linux num PDA (supah troll). E tomo cerveja. Veja bem, Bohemia tem otimos copos:

Bohemia Weiss

Copo da Boehmia Weiss, copo grande, é da altura de uma garrafa de 600 ml de refrigerante. E cabem 600 ml. E a caixa ainda vem com instrução de como servir :)

Bohemia Escura

E esse está aqui na frente enquanto posto. Cabem 600ml nos dois copos, ou seja, uma garrafa de cerveja. Coloca e corre, pra tomar antes que esquente.

Pois é. Cerveja e programação. Acho que eu to voltando ao normal :)

No Comments »