A Espanha tem um problema tradicional com línguas estrangeiras. Os espanhóis com menos de 40 anos devem aprender inglês da escola, mas o fato é que o nível de inglês é próximo de zero em quase todos os lugares.
Portanto, existem basicamente dois tipos de ambientes de software: código que deve ser compartilhado com partes internacionais (projetos de código aberto, escritórios espanhóis de multinacionais estrangeiras, fornecedores que vendem no exterior) e código vendido localmente. O primeiro é, obviamente, escrito em inglês, mas o segundo é normalmente escrito em espanhol, nomes de variáveis e documentação. Palavras em variáveis perdem sotaques e tons conforme necessário para caber em ASCII de 7 bits ( dirección
-> direccion
) e bits em inglês podem ser usados quando representam um recurso de idioma padrão ( getDireccion
) ou um conceito sem uma tradução universalmente aceita ( abrirSocket
).
Acontece que a palavra em espanhol para ano (año) se torna a palavra para ânus quando você remove o til. Eu não tenho nenhum problema com a escrita, ano
mas a maioria dos outros programadores evita isso a qualquer custo e produz todo tipo de alternativas engraçadas como anno
ou anyo
:)
Algumas amostras:
/**
* Devuelve una cadena aleatoria de la longitud indicada elegidos entre la lista proporcionada;
* contempla caracteres multi-byte
*/
function mb_cadena_aleatoria($longitud=16, $caracteres='0123456789abcdefghijklmnopqrstuvwxyz'){ // v2010-06-03
$cadena = '';
$max = mb_strlen($caracteres)-1;
for($i=0; $i<$longitud; $i++){
$cadena .= mb_substr($caracteres, mt_rand(0, $max), 1);
}
return $cadena;
}
/*
* Da formato a un número para su visualización
*
* numero (Number o String) - Número que se mostrará
* decimales (Number, opcional) - Nº de decimales (por defecto, auto)
* separador_decimal (String, opcional) - Separador decimal (por defecto, coma)
* separador_miles (String, opcional) - Separador de miles (por defecto, ninguno)
*/
function formato_numero(numero, decimales, separador_decimal, separador_miles){ // v2007-08-06
numero=parseFloat(numero);
if(isNaN(numero)){
return "";
}
if(decimales!==undefined){
// Redondeamos
numero=numero.toFixed(decimales);
}
// Convertimos el punto en separador_decimal
numero=numero.toString().replace(".", separador_decimal!==undefined ? separador_decimal : ",");
if(separador_miles){
// Añadimos los separadores de miles
var miles=new RegExp("(-?[0-9]+)([0-9]{3})");
while(miles.test(numero)) {
numero=numero.replace(miles, "$1" + separador_miles + "$2");
}
}
return numero;
}