在java中表示西班牙语地址的最佳方式

时间:2010-08-02 17:04:11

标签: language-agnostic internationalization street-address

我在下面用以下代码表示西班牙的地址。让我知道是否有更好的方法可以做到这一点,或者是否已经有一个处理i18n地址的开源库。

/**
 * From <a href="http://www.addressdoctor.com/en/countries_data/sampleaddress.asp?code=ESP%2BSpain}">Address doctor</a>
 * <p>
 * Format
 * </p>
 * 
 * <pre>
 * Line 1:  RECIPIENT
 * Line 2:  [URBANISATION]
 * Line 3:  STREET_TYPE STREET_NAME, HOUSE_NUMBER [FLOOR] [APARTMENT]
 * Line 4:  POSTAL_CODE LOCALITY
 * Line 5:  SPAIN
 * </pre>
 * 
 * Example
 * 
 * <pre>
 * Isidre Varo
 * Avenida de Canillejas a Vicalvaro 82 piso 4
 * 28022 MADRID
 * SPAIN
 * </pre>
 * 
 * @author Aravind R Yarram
 * 
 */
public interface SpainAddress
{
    /**
     * E.g road types would be Calle (Street)
     * <p>
     * TODO may be an enumeration
     * </p>
     */
    String getStreetType();

    String getStreetName();

    String getHouseNumber();

    String getFloorNumber();

    /**
     * <p>
     * TODO need validation
     * </p>
     */
    String getPostalCode();

    /**
     * Poblacion
     */
    String getCity();

    /**
     * Also known as province
     */
    String getLocality();
}

1 个答案:

答案 0 :(得分:3)

在马德里生活并且能说流利的西班牙语,我可以提供一些意见。

我不会将街道类型和名称分开,因为街道类型通常是名称的一部分,或者可能缺失(例如Gran Via)。任何解析算法都会出错或者需要一个巨大的异常表(并且它仍然会出错)。

在地方之后为省提供一个字段。这具有欺骗性,因为对于大城市而言,省份经常被省略,特别是在城市名称和省名相同的情况下。这是一个地方和省份不同的例子:

Calle Alcala, 45
28192 El Berrueco
Madrid
Spain