TigerZF
🌐Español

25.6. ¿Qué aspecto tiene la divisa?

Cómo se renderizará el valor de una divisa depende principalmente del locale usado. Hay varias informaciones que se establecen mediante el locale. Cada una de ellas puede sobrescribirse manualmente usando la opción adecuada.

Por ejemplo, la mayoría de los locales usan la escritura latina para representar números. Pero hay idiomas como el "árabe" que usan otros dígitos. Y cuando tiene un sitio web en árabe, también podría querer renderizar otras divisas usando la escritura árabe. Vea el siguiente ejemplo:

Ejemplo 25.5. Uso de una escritura personalizada

Supongamos que de nuevo usamos nuestra divisa "Dólar". Pero ahora queremos renderizar nuestra divisa usando la escritura árabe.

$currency = new Zend_Currency(
    array(
        'value'  => 1000,
        'script' => 'Arab',
    )
);

print $currency; // Could return '$ ١٬٠٠٠٫٠٠'

Para más información sobre las escrituras disponibles consulte el capítulo de Zend_Locale sobre sistemas de numeración.

Pero también se puede cambiar el formato de un número de divisa (valor monetario). Por defecto depende del locale usado. Incluye el separador que se usará entre los miles, qué signo se usará como punto decimal, y también la precisión usada.

$currency = new Zend_Currency(
    array(
        'value'    => 1000,
        'currency' => 'USD'
        'format'   => 'de',
    )
);

print $currency; // Could return '$ 1.000'

Hay dos formas de definir el formato que se usará. Puede indicar un locale o definir un formato manualmente.

Cuando use un locale para definir el formato, todo se hace automáticamente. El locale 'de', por ejemplo, define '.' como separador de miles y ',' como punto decimal. En inglés esto está invertido.

$currency_1 = new Zend_Currency(
    array(
        'value'    => 1000,
        'currency' => 'USD'
        'format'   => 'de',
    )
);

$currency_2 = new Zend_Currency(
    array(
        'value'    => 1000,
        'currency' => 'USD'
        'format'   => 'en',
    )
);

print $currency_1; // Could return '$ 1.000'
print $currency_2; // Could return '$ 1,000'

Cuando lo defina manualmente, debe ajustar el formato según lo descrito en este capítulo sobre localización. Vea lo siguiente:

$currency = new Zend_Currency(
    array(
        'value'    => 1000,
        'currency' => 'USD'
        'format'   => '#0',
    )
);

print $currency; // Could return '$ 1000'

En el fragmento anterior eliminamos el separador y también la precisión.