Tây Ban Nha có một vấn đề truyền thống với ngoại ngữ. Người Tây Ban Nha dưới 40 tuổi được cho là biết tiếng Anh từ trường học nhưng thực tế rõ ràng là trình độ tiếng Anh gần bằng không ở hầu hết mọi nơi.
Về cơ bản, có hai loại môi trường phần mềm: mã được cho là được chia sẻ với các bên quốc tế (dự án nguồn mở, văn phòng đa quốc gia nước ngoài của Tây Ban Nha, nhà cung cấp bán ra nước ngoài) và mã được bán tại địa phương. Cái trước dĩ nhiên được viết bằng tiếng Anh nhưng cái sau thường được viết bằng tiếng Tây Ban Nha, cả tên biến và tài liệu. Các từ trong biến mất dấu và dấu theo yêu cầu để khớp với ASCII 7 bit ( dirección
-> direccion
) và các bit tiếng Anh có thể được sử dụng khi chúng đại diện cho một tính năng ngôn ngữ tiêu chuẩn ( getDireccion
) hoặc một khái niệm mà không có bản dịch được chấp nhận phổ biến ( abrirSocket
).
Nó xảy ra rằng từ tiếng Tây Ban Nha cho năm (año) trở thành từ cho hậu môn khi bạn loại bỏ dấu ngã. Tôi không có bất kỳ vấn đề nào với việc viết ano
nhưng hầu hết các lập trình viên khác đều tránh nó bằng bất cứ giá nào và tạo ra tất cả các loại thay thế hài hước như anno
hoặc anyo
:)
Một số mẫu:
/**
* 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;
}