(define subst
(lambda (new old slist)
(if (null? slist)
'()
(if (symbol? (car slist))
(if (eqv? (car slist) old)
(cons new (subst new old (cdr slist)))
(cons (car slist) (subst new old (cdr slist))))
(cons (subst new old (car slist)) (subst new old (cdr slist)))))))
5 days ago
t(:es, “Hello World”)
=> “Hola mundo”
t(:en, “Hola mundo”) => “Hello world”
t(:en, “Algo sin traducir”) => “Algo sin traducir”
Tabla en base de datos:
translations => { _en_ => text, es => text, fr => text… }
Se usa como llave el texto en uno de los idiomas para no duplicar la entrada.
1. Persistencia en base de datos, suerte archivos.
2. Asquerosamente cacheable (suerte overhead de cargar/cerrar archivos).
3. Simple (aceptemoslo, modificar un .po no es fácil para un no programador).
4. Es muy fácil crear un editor de traducciones online. No conozco ningún editor online de .po’s *.
* Tomar la entrada de un usuario desde un campo de texto, abrir un archivo .po, insertarlo de la manera que Gettext espera escapando los campos y compilar todo de nuevo es algo que no sirve cuando se está trabajando con muchos usuarios (a menos de que las traducciones no funcionen en tiempo real).
Actualización: Se me olvidaba, la base de datos debe estar configurada para usar UTF8.
1 month agoComo no ha pasado un minuto y ya recibí el primer mensaje IM al respecto, clarifico:
Es un puto chiste y se soluciona con :
export LC_ALL=es_ES.UTF-8 export LANG=es_ES.UTF-8
Ya pueden seguir su vida.
PD: Que cosa más lenta.
1 month ago$ hg clone http://hg.germane-software.com/rexml Traceback (most recent call last): File "/usr/local/bin/hg", line 18, inmercurial.util.set_binary(fp) File "/Library/Python/2.5/site-packages/mercurial/demandimport.py", line 74, in __getattribute__ self._load() File "/Library/Python/2.5/site-packages/mercurial/demandimport.py", line 46, in _load mod = _origimport(head, globals, locals) File "/Library/Python/2.5/site-packages/mercurial/util.py", line 33, in _encoding = locale.getlocale()[1] File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/locale.py", line 460, in getlocale return _parse_localename(localename) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/locale.py", line 373, in _parse_localename raise ValueError, 'unknown locale: %s' % localename ValueError: unknown locale: UTF-8
Ya mismo cambio git por hg oiga…
Error: undefined method `untranslate_all?’ for #Class:0x24aed34 in Rails with Gettext.
Fix: Add this:
require 'gettext/rails'
to your environment.rb
var products = from p in db.Products
where p.Category.CategoryName == "Beverages"
select p;
products = Products.find_by_category_name("Beverages")
Los queries que abstraen condiciones de un nivel inferior (en este caso SQL) no son una idea nueva. Los dos ejemplos anteriores hacen lo mismo y solo difieren en sintáxis.
1 month ago