Pchp.Library.Locale.localeconv C# (CSharp) Method

localeconv() public static method

Gets information about the current thread culture.
public static localeconv ( Context ctx ) : PhpArray
ctx Pchp.Core.Context
return Pchp.Core.PhpArray
        public static PhpArray localeconv(Context ctx)
        {
            PhpArray result = new PhpArray(0, 18);
            NumberFormatInfo number;

            number = GetCulture(ctx, Category.Numeric).NumberFormat;

            result.Add("decimal_point", number.NumberDecimalSeparator);
            result.Add("thousands_sep", number.NumberGroupSeparator);
            result.Add("grouping", GetGroupingArray(number.CurrencyGroupSizes));
            result.Add("positive_sign", number.PositiveSign);
            result.Add("negative_sign", number.NegativeSign);
            result.Add("frac_digits", number.CurrencyDecimalDigits);

            number = GetCulture(ctx, Category.Monetary).NumberFormat;

            result.Add("currency_symbol", number.CurrencySymbol);
            result.Add("mon_decimal_point", number.CurrencyDecimalSeparator);
            result.Add("mon_thousands_sep", number.CurrencyGroupSeparator);
            result.Add("mon_grouping", GetGroupingArray(number.CurrencyGroupSizes));

            // currency patterns: 0 -> $n, 1 -> n$, 2 -> $ n, 3 -> n $
            result.Add("p_cs_precedes", number.CurrencyPositivePattern == 0 || number.CurrencyPositivePattern == 2);
            result.Add("p_sep_by_space", number.CurrencyPositivePattern == 2 || number.CurrencyPositivePattern == 3);
            result.Add("n_cs_precedes", number.CurrencyNegativePattern == 0 || number.CurrencyNegativePattern == 2);
            result.Add("n_sep_by_space", number.CurrencyNegativePattern == 2 || number.CurrencyNegativePattern == 3);

            result.Add("p_sign_posn", 1);
            result.Add("n_sign_posn", 1);

            return result;
        }