L'Espagne a un problème traditionnel avec les langues étrangères. Les Espagnols âgés de moins de 40 ans sont supposés connaître l'anglais à l'école, mais le fait est que le niveau d'anglais est proche de zéro presque partout.
Il existe donc essentiellement deux types d’environnements logiciels: du code censé être partagé avec des parties internationales (projets open source, bureaux espagnols de multinationales étrangères, fournisseurs qui vendent à l’étranger) et un code vendu localement. Le premier est bien sûr écrit en anglais mais le dernier est normalement écrit en espagnol, noms de variable et documentation. Les mots dans les variables perdent les accents et les tildes nécessaires pour tenir en ASCII ( dirección
-> direccion
) 7 bits et les bits en anglais peuvent être utilisés lorsqu'ils représentent un élément de langage standard ( getDireccion
) ou un concept sans traduction universellement acceptée ( abrirSocket
).
Il arrive que le mot espagnol pour année (año) devienne le mot pour anus lorsque vous supprimez le tilde. Je n'ai aucun problème avec l'écriture ano
mais la plupart des autres programmeurs l'évitent à tout prix et proposent toutes sortes d'alternatives amusantes comme anno
ou anyo
:)
Certains échantillons:
/**
* 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;
}