[Unicode]   Common Locale Data Repository : Bug Tracking Home | Site Map | Search
 

Changeset 11530


Ignore:
Timestamp:
04/22/15 09:41:49 (4 years ago)
Author:
mdavis
Message:

cldrbug 5390: add compact currency forms

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/common/main/en.xml

    r11529 r11530  
    37933793                                </currencyFormat> 
    37943794                        </currencyFormatLength> 
     3795                        <currencyFormatLength type="short"> 
     3796                                <currencyFormat> 
     3797                                        <pattern type="1000" count="one">¤0K</pattern> 
     3798                                        <pattern type="1000" count="other">¤0K</pattern> 
     3799                                        <pattern type="10000" count="one">¤00K</pattern> 
     3800                                        <pattern type="10000" count="other">¤00K</pattern> 
     3801                                        <pattern type="100000" count="one">¤000K</pattern> 
     3802                                        <pattern type="100000" count="other">¤000K</pattern> 
     3803                                        <pattern type="1000000" count="one">¤0M</pattern> 
     3804                                        <pattern type="1000000" count="other">¤0M</pattern> 
     3805                                        <pattern type="10000000" count="one">¤00M</pattern> 
     3806                                        <pattern type="10000000" count="other">¤00M</pattern> 
     3807                                        <pattern type="100000000" count="one">¤000M</pattern> 
     3808                                        <pattern type="100000000" count="other">¤000M</pattern> 
     3809                                        <pattern type="1000000000" count="one">¤0B</pattern> 
     3810                                        <pattern type="1000000000" count="other">¤0B</pattern> 
     3811                                        <pattern type="10000000000" count="one">¤00B</pattern> 
     3812                                        <pattern type="10000000000" count="other">¤00B</pattern> 
     3813                                        <pattern type="100000000000" count="one">¤000B</pattern> 
     3814                                        <pattern type="100000000000" count="other">¤000B</pattern> 
     3815                                        <pattern type="1000000000000" count="one">¤0T</pattern> 
     3816                                        <pattern type="1000000000000" count="other">¤0T</pattern> 
     3817                                        <pattern type="10000000000000" count="one">¤00T</pattern> 
     3818                                        <pattern type="10000000000000" count="other">¤00T</pattern> 
     3819                                        <pattern type="100000000000000" count="one">¤000T</pattern> 
     3820                                        <pattern type="100000000000000" count="other">¤000T</pattern> 
     3821                                </currencyFormat> 
     3822                        </currencyFormatLength> 
    37953823                        <unitPattern count="one">{0} {1}</unitPattern> 
    37963824                        <unitPattern count="other">{0} {1}</unitPattern> 
  • trunk/common/main/root.xml

    r11528 r11530  
    33373337                                </currencyFormat> 
    33383338                        </currencyFormatLength> 
     3339                        <currencyFormatLength type="short"> 
     3340                                <currencyFormat> 
     3341                                        <pattern type="1000" count="other">¤ 0K</pattern> 
     3342                                        <pattern type="10000" count="other">¤ 00K</pattern> 
     3343                                        <pattern type="100000" count="other">¤ 000K</pattern> 
     3344                                        <pattern type="1000000" count="other">¤ 0M</pattern> 
     3345                                        <pattern type="10000000" count="other">¤ 00M</pattern> 
     3346                                        <pattern type="100000000" count="other">¤ 000M</pattern> 
     3347                                        <pattern type="1000000000" count="other">¤ 0G</pattern> 
     3348                                        <pattern type="10000000000" count="other">¤ 00G</pattern> 
     3349                                        <pattern type="100000000000" count="other">¤ 000G</pattern> 
     3350                                        <pattern type="1000000000000" count="other">¤ 0T</pattern> 
     3351                                        <pattern type="10000000000000" count="other">¤ 00T</pattern> 
     3352                                        <pattern type="100000000000000" count="other">¤ 000T</pattern> 
     3353                                </currencyFormat> 
     3354                        </currencyFormatLength> 
    33393355                        <unitPattern count="other">{0} {1}</unitPattern> 
    33403356                </currencyFormats> 
  • trunk/tools/java/org/unicode/cldr/icu/ldml2icu_locale.txt

    r11159 r11530  
    203203//ldml/numbers/(%GFormat)s[@numberSystem="(%W)"]/\1Length/\1[@type="standard"]/pattern[@type="standard"] ; /NumberElements/$2/patterns/$1 
    204204//ldml/numbers/currencyFormats[@numberSystem="(%W)"]/currencyFormatLength/currencyFormat[@type="accounting"]/pattern[@type="standard"] ; /NumberElements/$1/patterns/accountingFormat 
     205//ldml/numbers/currencyFormats[@numberSystem="(%W)"]/currencyFormatLength[@type="short"]/currencyFormat[@type="standard"]/pattern[@type="(%N)"][@count="(%W)"] ; /NumberElements/$1/patternsShort/currencyFormat/$2/$3 
    205206//ldml/numbers/decimalFormats[@numberSystem="(%W)"]/decimalFormatLength[@type="short"]/decimalFormat[@type="standard"]/pattern[@type="(%N)"][@count="(%W)"] ; /NumberElements/$1/patternsShort/decimalFormat/$2/$3 
    206207//ldml/numbers/decimalFormats[@numberSystem="(%W)"]/decimalFormatLength[@type="long"]/decimalFormat[@type="standard"]/pattern[@type="(%N)"][@count="(%W)"] ; /NumberElements/$1/patternsLong/decimalFormat/$2/$3 
  • trunk/tools/java/org/unicode/cldr/test/CheckNumbers.java

    r11358 r11530  
    162162 
    163163        // Make sure currency patterns contain a currency symbol 
    164         if (type == NumericType.CURRENCY) { 
     164        if (type == NumericType.CURRENCY || type == NumericType.CURRENCY_ABBREVIATED) { 
    165165            String[] currencyPatterns = value.split(";", 2); 
    166166            for (int i = 0; i < currencyPatterns.length; i++) { 
     
    223223        // give a reasonable error message. 
    224224        try { 
    225             if (type == NumericType.DECIMAL_ABBREVIATED) { 
     225            if (type == NumericType.DECIMAL_ABBREVIATED || type == NumericType.CURRENCY_ABBREVIATED) { 
    226226                // Check for consistency in short/long decimal formats. 
    227227                checkDecimalFormatConsistency(parts, path, value, result, type); 
     
    480480            pattern = df.toPattern(); 
    481481        } else { // of form 1000. Result must be 0+(.0+)? 
     482            if (type == NumericType.CURRENCY_ABBREVIATED && !inpattern.contains(".")) { 
     483                df.setMinimumFractionDigits(0); // correct the current rewrite 
     484            } 
    482485            df.setMaximumFractionDigits(df.getMinimumFractionDigits()); 
    483486            int minimumIntegerDigits = df.getMinimumIntegerDigits(); 
  • trunk/tools/java/org/unicode/cldr/test/DisplayAndInputProcessor.java

    r11093 r11530  
    5050 
    5151    public static final UnicodeSet RTL = new UnicodeSet("[[:Bidi_Class=Arabic_Letter:][:Bidi_Class=Right_To_Left:]]") 
    52         .freeze(); 
     52    .freeze(); 
    5353 
    5454    public static final UnicodeSet TO_QUOTE = (UnicodeSet) new UnicodeSet( 
     
    5757            "[:patternwhitespace:]" + 
    5858            "[:Me:][:Mn:]]" // add non-spacing marks 
    59     ).freeze(); 
     59        ).freeze(); 
    6060 
    6161    public static final Pattern NUMBER_FORMAT_XPATH = Pattern 
     
    243243                    if (DEBUG_DAIP) System.err.println("Illegal pattern: " + value); 
    244244                } 
    245                 if (numericType != NumericType.CURRENCY) { 
     245                if (numericType != NumericType.CURRENCY && numericType != NumericType.CURRENCY_ABBREVIATED) { 
    246246                    value = value.replace("'", ""); 
    247247                } 
     
    337337                if (numericType == NumericType.CURRENCY) { 
    338338                    value = value.replaceAll(" ", "\u00A0"); 
     339                    if (numericType == NumericType.CURRENCY_ABBREVIATED) { 
     340                        value = value.replaceAll("0\\.0+", "0"); 
     341                    } 
    339342                } else { 
    340343                    value = value.replaceAll("([%\u00A4]) ", "$1\u00A0") 
     
    559562            if (convertedSaltillo && 
    560563                ((i > 0 && i < charArray.length - 1 && Character.isUpperCase(charArray[i - 1]) && Character.isUpperCase(charArray[i + 1])) || 
    561                 (i > 1 && Character.isUpperCase(charArray[i - 1]) && Character.isUpperCase(charArray[i - 2])))) { 
     564                    (i > 1 && Character.isUpperCase(charArray[i - 1]) && Character.isUpperCase(charArray[i - 2])))) { 
    562565                c = '\uA78B'; // UPPER CASE SALTILLO 
    563566            } 
     
    617620    private static Map<Character, Character> NORMALIZING_MAP = 
    618621        Builder.with(new HashMap<Character, Character>()) 
    619             .put('\u0D23', '\u0D7A').put('\u0D28', '\u0D7B') 
    620             .put('\u0D30', '\u0D7C').put('\u0D32', '\u0D7D') 
    621             .put('\u0D33', '\u0D7E').put('\u0D15', '\u0D7F').get(); 
     622        .put('\u0D23', '\u0D7A').put('\u0D28', '\u0D7B') 
     623        .put('\u0D30', '\u0D7C').put('\u0D32', '\u0D7D') 
     624        .put('\u0D33', '\u0D7E').put('\u0D15', '\u0D7F').get(); 
    622625 
    623626    /** 
     
    723726        // TODO fix later to properly handle quoted ; 
    724727        DecimalFormat df = new DecimalFormat(inpattern); 
    725         if (type == NumericType.DECIMAL_ABBREVIATED) { 
     728        if (type == NumericType.DECIMAL_ABBREVIATED || type == NumericType.CURRENCY_ABBREVIATED) { 
    726729            return inpattern; // TODO fix when ICU bug is fixed 
    727730            // df.setMaximumFractionDigits(df.getMinimumFractionDigits()); 
     
    746749    public enum NumericType { 
    747750        CURRENCY(new int[] { 1, 2, 2 }, new int[] { 1, 2, 2 }), 
     751        CURRENCY_ABBREVIATED(), 
    748752        DECIMAL(new int[] { 1, 0, 3 }, new int[] { 1, 0, 6 }), 
    749753        DECIMAL_ABBREVIATED(), 
     
    777781                } else { 
    778782                    NumericType type = NumericType.valueOf(matcher.group(2).toUpperCase()); 
    779                     if (type == DECIMAL && xpath.contains("=\"1000")) { 
    780                         type = DECIMAL_ABBREVIATED; 
     783                    if (xpath.contains("=\"1000")) { 
     784                        if (type == DECIMAL) { 
     785                            type = DECIMAL_ABBREVIATED; 
     786                        } else if (type == CURRENCY) { 
     787                            type = CURRENCY_ABBREVIATED; 
     788                        } else { 
     789                            throw new IllegalArgumentException("Internal Error"); 
     790                        } 
    781791                    } 
    782792                    return type; 
  • trunk/tools/java/org/unicode/cldr/util/data/PathDescription.txt

    r11508 r11530  
    7575 
    7676^//ldml/numbers/decimalFormats/decimalFormatLength\[@type="([^"]*)"]/decimalFormat\[@type="([^"]*)"]/pattern\[@type="([^"]*)"]  ;   Special pattern used for a short version of numbers with the same number of digits as {3}. Note: before translating, be sure to read http://cldr.org/translation/number-patterns#TOC-Short-Numbers. 
     77^//ldml/numbers/currencyFormats\[@numberSystem="([^"]*)"]/currencyFormatLength\[@type="short"]/currencyFormat\[@type="standard"]/pattern\[@type="(\d+)"]\[@count="([^"]+)"] ;   Special currency pattern used to obtain the abbreviated plural forms of numbers with the same number of digits as {2}. See http://cldr.org/translation/number-patterns#TOC-Short-Numbers for details. 
    7778^//ldml/numbers/decimalFormats\[@numberSystem="([^"]*)"]/decimalFormatLength\[@type="short"]/decimalFormat\[@type="standard"]/pattern\[@type="(\d+)"]\[@count="([^"]+)"] ;   Special decimal pattern used to obtain the abbreviated plural forms of numbers with the same number of digits as {2}. See http://cldr.org/translation/number-patterns#TOC-Short-Numbers for details. 
    7879^//ldml/numbers/decimalFormats\[@numberSystem="([^"]*)"]/decimalFormatLength\[@type="long"]/decimalFormat\[@type="standard"]/pattern\[@type="(\d+)"]\[@count="([^"]+)"] ;   Special decimal pattern used to obtain the long plural forms of numbers with the same number of digits as {2}. See http://cldr.org/translation/number-patterns#TOC-Plural-Forms-of-Numbers for details. 
  • trunk/tools/java/org/unicode/cldr/util/data/PathHeader.txt

    r11524 r11530  
    9797//ldml/numbers/miscPatterns[@numberSystem="%A"]/pattern[@type=\"%A\"]                                   ; Numbers ; Number Formatting Patterns ; Miscellaneous Patterns &numberingSystem($1) ; $2 ; LTR_ALWAYS 
    9898 
     99//ldml/numbers/(currency)Formats[@numberSystem="%A"]/%EFormatLength[@type="(short)"]/%EFormat[@type="%A"]/pattern[@type="%A"][@count="%A"] ; Numbers ; Compact Decimal Formatting ; Short Currency &numberingSystem($2) ; &count2($7-digits-$4-$8) 
    99100//ldml/numbers/%EFormats[@numberSystem="%A"]/%EFormatLength[@type="(long)"]/%EFormat[@type="%A"]/pattern[@type="%A"][@count="%A"]  ; Numbers ; Compact Decimal Formatting ; Long Formats &numberingSystem($2) ; &count2($7-digits-$4-$8) 
    100101//ldml/numbers/%EFormats[@numberSystem="%A"]/%EFormatLength[@type="(short)"]/%EFormat[@type="%A"]/pattern[@type="%A"][@count="%A"] ; Numbers ; Compact Decimal Formatting ; Short Formats &numberingSystem($2) ; &count2($7-digits-$4-$8) 
Note: See TracChangeset for help on using the changeset viewer.