protected function buildNationalCurrencyFormat()
    {
        $lc = $this->getLocaleInfo();

        $format = new SwatI18NCurrencyFormat();

        $format->fractional_digits = $lc['frac_digits'];
        $format->p_cs_precedes = $lc['p_cs_precedes'];
        $format->n_cs_precedes = $lc['n_cs_precedes'];
        $format->p_separate_by_space = $lc['p_sep_by_space'];
        $format->n_separate_by_space = $lc['n_sep_by_space'];
        $format->p_sign_position = $lc['p_sign_posn'];
        $format->n_sign_position = $lc['n_sign_posn'];
        $format->decimal_separator =
            $lc['mon_decimal_point'] == ''
                ? $lc['decimal_point']
                : $lc['mon_decimal_point'];

        $format->thousands_separator = $lc['mon_thousands_sep'];
        $format->symbol = $lc['currency_symbol'];
        $format->grouping = $lc['mon_grouping'];
        $format->p_sign = $lc['positive_sign'];
        $format->n_sign = $lc['negative_sign'];

        // special-cases and workarounds
        switch ($this->preferred_locale) {
            // Hebrew-Israeli
            case 'he_IL':
            case 'he_IL.utf8':
                $format->p_sign_position = 1;
                $format->n_sign_position = 1;
                $format->p_cs_precedes = false;
                $format->n_cs_precedes = false;
                break;
        }

        $this->national_currency_format = $format;
    }