İspanya'nın yabancı dillerle geleneksel bir sorunu var. 40 yaşından küçük İspanyolların okuldan İngilizce bilmeleri gerekiyordu ancak açık olan gerçek, İngilizcenin neredeyse her yerde sıfıra yakın olması.
Bu nedenle temel olarak iki tür yazılım ortamı vardır: uluslararası partilerle paylaşılması gereken kod (açık kaynaklı projeler, çok uluslu şirketlerin İspanyol ofisleri, yurtdışına satan satıcılar) ve yerel olarak satılan kodlar. Eski elbette İngilizce dilinde yazılmıştır, ancak ikincisi normalde İspanyolca olarak yazılmıştır, hem değişken isimler hem de belgeler. Değişkenlerdeki kelimeler, 7 bit ASCII ( dirección
-> direccion
) ' ye uyması için gerektiği şekilde aksanı ve çizgileri kaybeder ve İngilizce bitler , standart bir dil özelliğini ( getDireccion
) veya evrensel olarak kabul edilmiş bir tercümesi olmayan bir kavramı ( ) temsil ettiğinde kullanılabilir abrirSocket
.
Bu tilde kaldırdığınızda İspanyolca kelime (año) için yıl anüs kelimesi olur. Ben yazı ile ilgili herhangi bir sorun yok ano
ama çoğu diğer programcılar ne pahasına olursa olsun bunu önlemek ve benzeri komik alternatiflerin her tür üretmek anno
veya anyo
:)
Bazı örnekler:
/**
* 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;
}