static DecimalFormatSymbols* makeDecimalFormatSymbols(JNIEnv* env, jstring currencySymbol0, jchar decimalSeparator, jchar digit, jstring exponentSeparator0, jchar groupingSeparator0, jstring infinity0, jstring internationalCurrencySymbol0, jchar minusSign, jchar monetaryDecimalSeparator, jstring nan0, jchar patternSeparator, jchar percent, jchar perMill, jchar zeroDigit) { ScopedJavaUnicodeString currencySymbol(env, currencySymbol0); ScopedJavaUnicodeString exponentSeparator(env, exponentSeparator0); ScopedJavaUnicodeString infinity(env, infinity0); ScopedJavaUnicodeString internationalCurrencySymbol(env, internationalCurrencySymbol0); ScopedJavaUnicodeString nan(env, nan0); UnicodeString groupingSeparator(groupingSeparator0); DecimalFormatSymbols* result = new DecimalFormatSymbols; result->setSymbol(DecimalFormatSymbols::kCurrencySymbol, currencySymbol.unicodeString()); result->setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, UnicodeString(decimalSeparator)); result->setSymbol(DecimalFormatSymbols::kDigitSymbol, UnicodeString(digit)); result->setSymbol(DecimalFormatSymbols::kExponentialSymbol, exponentSeparator.unicodeString()); result->setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, groupingSeparator); result->setSymbol(DecimalFormatSymbols::kMonetaryGroupingSeparatorSymbol, groupingSeparator); result->setSymbol(DecimalFormatSymbols::kInfinitySymbol, infinity.unicodeString()); result->setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, internationalCurrencySymbol.unicodeString()); result->setSymbol(DecimalFormatSymbols::kMinusSignSymbol, UnicodeString(minusSign)); result->setSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol, UnicodeString(monetaryDecimalSeparator)); result->setSymbol(DecimalFormatSymbols::kNaNSymbol, nan.unicodeString()); result->setSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol, UnicodeString(patternSeparator)); result->setSymbol(DecimalFormatSymbols::kPercentSymbol, UnicodeString(percent)); result->setSymbol(DecimalFormatSymbols::kPerMillSymbol, UnicodeString(perMill)); result->setSymbol(DecimalFormatSymbols::kZeroDigitSymbol, UnicodeString(zeroDigit)); return result; }
static DecimalFormatSymbols* makeDecimalFormatSymbols(JNIEnv* env, jstring currencySymbol0, jchar decimalSeparator, jchar digit, jstring exponentSeparator0, jchar groupingSeparator0, jstring infinity0, jstring internationalCurrencySymbol0, jstring minusSign0, jchar monetaryDecimalSeparator, jstring nan0, jchar patternSeparator, jstring percent0, jchar perMill, jchar zeroDigit) { ScopedJavaUnicodeString currencySymbol(env, currencySymbol0); ScopedJavaUnicodeString exponentSeparator(env, exponentSeparator0); ScopedJavaUnicodeString infinity(env, infinity0); ScopedJavaUnicodeString internationalCurrencySymbol(env, internationalCurrencySymbol0); ScopedJavaUnicodeString nan(env, nan0); ScopedJavaUnicodeString minusSign(env, minusSign0); ScopedJavaUnicodeString percent(env, percent0); UnicodeString groupingSeparator(groupingSeparator0); DecimalFormatSymbols* result = new DecimalFormatSymbols; result->setSymbol(DecimalFormatSymbols::kCurrencySymbol, currencySymbol.unicodeString()); result->setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, UnicodeString(decimalSeparator)); result->setSymbol(DecimalFormatSymbols::kDigitSymbol, UnicodeString(digit)); result->setSymbol(DecimalFormatSymbols::kExponentialSymbol, exponentSeparator.unicodeString()); result->setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, groupingSeparator); result->setSymbol(DecimalFormatSymbols::kMonetaryGroupingSeparatorSymbol, groupingSeparator); result->setSymbol(DecimalFormatSymbols::kInfinitySymbol, infinity.unicodeString()); result->setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, internationalCurrencySymbol.unicodeString()); result->setSymbol(DecimalFormatSymbols::kMinusSignSymbol, minusSign.unicodeString()); result->setSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol, UnicodeString(monetaryDecimalSeparator)); result->setSymbol(DecimalFormatSymbols::kNaNSymbol, nan.unicodeString()); result->setSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol, UnicodeString(patternSeparator)); result->setSymbol(DecimalFormatSymbols::kPercentSymbol, percent.unicodeString()); result->setSymbol(DecimalFormatSymbols::kPerMillSymbol, UnicodeString(perMill)); // java.text.DecimalFormatSymbols just uses a zero digit, // but ICU >= 4.6 has a field for each decimal digit. result->setSymbol(DecimalFormatSymbols::kZeroDigitSymbol, UnicodeString(zeroDigit + 0)); result->setSymbol(DecimalFormatSymbols::kOneDigitSymbol, UnicodeString(zeroDigit + 1)); result->setSymbol(DecimalFormatSymbols::kTwoDigitSymbol, UnicodeString(zeroDigit + 2)); result->setSymbol(DecimalFormatSymbols::kThreeDigitSymbol, UnicodeString(zeroDigit + 3)); result->setSymbol(DecimalFormatSymbols::kFourDigitSymbol, UnicodeString(zeroDigit + 4)); result->setSymbol(DecimalFormatSymbols::kFiveDigitSymbol, UnicodeString(zeroDigit + 5)); result->setSymbol(DecimalFormatSymbols::kSixDigitSymbol, UnicodeString(zeroDigit + 6)); result->setSymbol(DecimalFormatSymbols::kSevenDigitSymbol, UnicodeString(zeroDigit + 7)); result->setSymbol(DecimalFormatSymbols::kEightDigitSymbol, UnicodeString(zeroDigit + 8)); result->setSymbol(DecimalFormatSymbols::kNineDigitSymbol, UnicodeString(zeroDigit + 9)); return result; }
QString KLocale::currencySymbol() const { return d->currencySymbol(); }