internationalization street-address

internationalization - ¿Teléfono internacional y datos de dirección?



street-address (3)

Supongo que esta es una pregunta en varias partes. Estoy creando un sitio de membresía y quiero tener las cuentas lo más internacionales posible.

  1. ¿Cuál es la mejor manera de recopilar números de teléfono en un formulario que permite números internacionales? No me preocupa almacenarlos, solo recolección y validación. Lo que tengo ahora es un menú desplegable con una lista de países que agregará el código de país, y luego el número en sí con la validación para nosotros / can / uk en función del código de país, y luego la extensión. Estos se almacenarán como cadenas en 3 campos para cc / number / ext. ¿Alguien tiene una mejor solución sólida para esto, o tal vez visto uno en acción en cualquier lugar?

  2. Lo mismo para las direcciones. ¿Cual es el mejor camino a seguir? Dirección / Ciudad / Estado / Zip / País o solo líneas? Me gustaría poder ordenar por estos, por lo que un solo campo de texto no es una solución muy buena, aunque es la más flexible.

    Esto también es importante porque podemos estar enviando correos reales a nuestros miembros. Me recuerdan a unos pocos miembros que tuve para otros servicios que tenían direcciones en países que nunca había escuchado, que incluso la mujer en la oficina de correos no podía decir si estaban formateados correctamente.

  3. Quiero tener geodatos en el DB, al menos país / estado, para cosas como completar un menú desplegable de estado después de seleccionar un país, estandarizar el campo, etc. ¿Alguien sabe de una gran base de datos que se puede usar como la base de geodatos de una aplicación? ?


Validación del número de teléfono: no estoy seguro de si pasaría mucho tiempo con esto. Los esquemas de numeración cambian con bastante frecuencia (por ejemplo, durante el tiempo que viví en el Reino Unido, los números de teléfono de los códigos de área de Londres cambiaron al menos una vez, con otro cambio poco antes de mudarme allí) y en Alemania (o al menos ser) bastante común para aumentar la cantidad de números de teléfono disponibles en un intercambio dado tomando un número antiguo y añadiendo un dígito extra o dos al final. Por lo tanto, cualquier supuesto sobre un formato de número de teléfono determinado cambiará y usted terminará jugando al ponerse al día. Si insiste en dividir el número de teléfono en internacional / código de área / número principal, probablemente encontrará que esta es una forma muy específica de país de representar la información, por lo que necesitará una máscara de entrada para cada país y validación específica reglas. Sin mencionar que en lugares como Alemania, un código de área puede tener entre dos y cuatro dígitos, etc.

En cuanto a las direcciones postales, la sugerencia más importante que tengo es garantizar que pueda aceptar códigos postales / postales no numéricos; de lo contrario, no podrá gestionar direcciones en Canadá y el Reino Unido (y posiblemente en otros lugares). Esto es un poco como un hobby, ya que he tenido algunos problemas con sitios web en otros países que simplemente se negaron a dejar que ingresara un código postal no numérico y tuve que recurrir a enviar por fax la información de mi dirección, ya que no pudo completar el formulario de solicitud en línea. En mi libro eso es un mal karma si permites que los clientes internacionales ...

Además, asumir la existencia de ciertas partes de la dirección (estado / condado, por ejemplo) y requerirlas suele ser más un dolor de cabeza de lo que vale la pena. Estaría tentado de ofrecer el número de la casa estándar + calle (combinarlos, diferentes idiomas poner el número de la casa en diferentes lugares para separarlos no es una buena idea en mi humilde opinión a menos que sepa cómo volver a armarlos correctamente, además de que a veces lo hará terminar con un nombre de casa en lugar de un número), ciudad y código postal / postal, posiblemente con un campo opcional de condado / estado. Si desea ser realmente útil para su audiencia internacional, ofrezca un campo de entrada de texto único y de forma libre para aquellas direcciones que no se ajusten a nuestras suposiciones "estándar" sobre cómo se ve una dirección. Y por favor hazlos lo suficientemente grandes para que las personas con direcciones bastante largas no se queden sin espacio ...


Dirección: solo recuerde que no en todos lados tiene estados y códigos postales. y si tiene códigos postales, pueden estar en un formato diferente ( [0-9]{2}-[0-9]{3} aquí). ( editar: generalmente una dirección postal con 2 líneas de dirección, ciudad, estado (opcional), código postal (opcional) y el país está bien).

Lo mismo sucede con los datos geográficos: puede hacer desplegables secuenciales con estados y ciudades, pero supongo que no cubrirá todas las ciudades. ¿Por qué no mostrar un pedazo de google maps y permitir que los usuarios hagan clic allí para marcar su posición?


Existe un estándar internacional para los números de teléfono , pero deja mucho espacio para respirar. Los separadores no son obligatorios, pero están restringidos a espacio, punto y guión. Los corchetes (también llamados paréntesis) se deben colocar alrededor de los dígitos que son opcionales según el lugar desde el que se realiza el marcado. Por ejemplo, el código de área es opcional en algunas áreas. Proporcionaría un campo de texto y dejaría que el usuario ingrese su número como lo desee.

Para las direcciones, proporcione muchos campos y no restrinja demasiado. Los números de casa a veces contienen letras. Los tipos de carretera a veces se escriben en su totalidad y otras veces se abrevian. (St = Street, Ave = Avenue, etc.) Proporcionaré listas desplegables donde sea posible (estado / provincia), pero permitiré entradas de forma libre cuando no tenga una lista. Cuando el usuario ingresa su dirección, está bien validar los riesgos de seguridad, pero es posible que desee dejar la validación geográfica para más adelante. Por ejemplo, si el usuario ingresa un código postal de T8N 4E3 y selecciona Ontario como su provincia, la dirección no es válida porque el código postal dado es para Alberta. Muestre un mensaje amigable al usuario haciéndoles saber que necesitan corregir su dirección o ponerse en contacto con usted si es correcta (posible error en su código).