1 /* 2 * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 /* 27 */ 28 29 /* 30 * (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved 31 * (C) Copyright IBM Corp. 1996 - 1999 - All Rights Reserved 32 * 33 * The original version of this source code and documentation 34 * is copyrighted and owned by Taligent, Inc., a wholly-owned 35 * subsidiary of IBM. These materials are provided under terms 36 * of a License Agreement between Taligent and Sun. This technology 37 * is protected by multiple US and International patents. 38 * 39 * This notice and attribution to Taligent may not be removed. 40 * Taligent is a registered trademark of Taligent, Inc. 41 * 42 */ 43 44 /* 45 * COPYRIGHT AND PERMISSION NOTICE 46 * 47 * Copyright (C) 1991-2012 Unicode, Inc. All rights reserved. Distributed under 48 * the Terms of Use in http://www.unicode.org/copyright.html. 49 * 50 * Permission is hereby granted, free of charge, to any person obtaining a copy 51 * of the Unicode data files and any associated documentation (the "Data 52 * Files") or Unicode software and any associated documentation (the 53 * "Software") to deal in the Data Files or Software without restriction, 54 * including without limitation the rights to use, copy, modify, merge, 55 * publish, distribute, and/or sell copies of the Data Files or Software, and 56 * to permit persons to whom the Data Files or Software are furnished to do so, 57 * provided that (a) the above copyright notice(s) and this permission notice 58 * appear with all copies of the Data Files or Software, (b) both the above 59 * copyright notice(s) and this permission notice appear in associated 60 * documentation, and (c) there is clear notice in each modified Data File or 61 * in the Software as well as in the documentation associated with the Data 62 * File(s) or Software that the data or software has been modified. 63 * 64 * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 65 * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 66 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 67 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 68 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR 69 * CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 70 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 71 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 72 * OF THE DATA FILES OR SOFTWARE. 73 * 74 * Except as contained in this notice, the name of a copyright holder shall not 75 * be used in advertising or otherwise to promote the sale, use or other 76 * dealings in these Data Files or Software without prior written authorization 77 * of the copyright holder. 78 */ 79 80 package sun.text.resources; 81 82 import java.util.List; 83 import sun.util.resources.ParallelListResourceBundle; 84 85 public class FormatData extends ParallelListResourceBundle { 86 /** 87 * Overrides ListResourceBundle 88 */ 89 @Override 90 protected final Object[][] getContents() { 91 // Julian calendar era strings 92 final String[] julianEras = { 93 "BC", 94 "AD" 95 }; 96 97 // Thai Buddhist calendar era strings 98 final String[] buddhistEras = { 99 "BC", // BC 100 "B.E." // Buddhist Era 101 }; 102 103 // Japanese imperial calendar era abbreviations 104 final String[] japaneseEraAbbrs = { 105 "", 106 "M", 107 "T", 108 "S", 109 "H", 110 "N", // NewEra 111 }; 112 113 // Japanese imperial calendar era strings 114 final String[] japaneseEras = { 115 "", 116 "Meiji", 117 "Taisho", 118 "Showa", 119 "Heisei", 120 "NewEra", // NewEra 121 }; 122 123 return new Object[][] { 124 { "MonthNames", 125 new String[] { 126 "January", // january 127 "February", // february 128 "March", // march 129 "April", // april 130 "May", // may 131 "June", // june 132 "July", // july 133 "August", // august 134 "September", // september 135 "October", // october 136 "November", // november 137 "December", // december 138 "" // month 13 if applicable 139 } 140 }, 141 { "MonthAbbreviations", 142 new String[] { 143 "Jan", // abb january 144 "Feb", // abb february 145 "Mar", // abb march 146 "Apr", // abb april 147 "May", // abb may 148 "Jun", // abb june 149 "Jul", // abb july 150 "Aug", // abb august 151 "Sep", // abb september 152 "Oct", // abb october 153 "Nov", // abb november 154 "Dec", // abb december 155 "" // abb month 13 if applicable 156 } 157 }, 158 { "MonthNarrows", 159 new String[] { 160 "1", 161 "2", 162 "3", 163 "4", 164 "5", 165 "6", 166 "7", 167 "8", 168 "9", 169 "10", 170 "11", 171 "12", 172 "", 173 } 174 }, 175 { "DayNames", 176 new String[] { 177 "Sunday", // Sunday 178 "Monday", // Monday 179 "Tuesday", // Tuesday 180 "Wednesday", // Wednesday 181 "Thursday", // Thursday 182 "Friday", // Friday 183 "Saturday" // Saturday 184 } 185 }, 186 { "DayAbbreviations", 187 new String[] { 188 "Sun", // abb Sunday 189 "Mon", // abb Monday 190 "Tue", // abb Tuesday 191 "Wed", // abb Wednesday 192 "Thu", // abb Thursday 193 "Fri", // abb Friday 194 "Sat" // abb Saturday 195 } 196 }, 197 { "DayNarrows", 198 new String[] { 199 "S", 200 "M", 201 "T", 202 "W", 203 "T", 204 "F", 205 "S", 206 } 207 }, 208 { "AmPmMarkers", 209 new String[] { 210 "AM", // am marker 211 "PM" // pm marker 212 } 213 }, 214 { "narrow.AmPmMarkers", 215 new String[] { 216 "a", // am marker 217 "p" // pm marker 218 } 219 }, 220 { "Eras", 221 julianEras }, 222 { "short.Eras", 223 julianEras }, 224 { "narrow.Eras", 225 new String[] { 226 "B", 227 "A", 228 } 229 }, 230 { "buddhist.Eras", 231 buddhistEras 232 }, 233 { "buddhist.short.Eras", 234 buddhistEras 235 }, 236 { "buddhist.narrow.Eras", 237 buddhistEras 238 }, 239 { "japanese.Eras", 240 japaneseEras }, 241 { "japanese.short.Eras", 242 japaneseEraAbbrs 243 }, 244 { "japanese.narrow.Eras", 245 japaneseEraAbbrs 246 }, 247 { "japanese.FirstYear", 248 new String[] { // Japanese imperial calendar year name 249 // empty in English 250 } 251 }, 252 { "NumberPatterns", 253 new String[] { 254 "#,##0.###;-#,##0.###", // decimal pattern 255 "\u00a4 #,##0.00;-\u00a4 #,##0.00", // currency pattern 256 "#,##0%" // percent pattern 257 } 258 }, 259 { "DefaultNumberingSystem", "" }, 260 { "NumberElements", 261 new String[] { 262 ".", // decimal separator 263 ",", // group (thousands) separator 264 ";", // list separator 265 "%", // percent sign 266 "0", // native 0 digit 267 "#", // pattern digit 268 "-", // minus sign 269 "E", // exponential 270 "\u2030", // per mille 271 "\u221e", // infinity 272 "\ufffd" // NaN 273 } 274 }, 275 { "arab.NumberElements", 276 new String[] { 277 "\u066b", 278 "\u066c", 279 "\u061b", 280 "\u066a", 281 "\u0660", 282 "#", 283 "-", 284 "\u0627\u0633", 285 "\u0609", 286 "\u221e", 287 "NaN", 288 } 289 }, 290 { "arabext.NumberElements", 291 new String[] { 292 "\u066b", 293 "\u066c", 294 "\u061b", 295 "\u066a", 296 "\u06f0", 297 "#", 298 "-", 299 "\u00d7\u06f1\u06f0^", 300 "\u0609", 301 "\u221e", 302 "NaN", 303 } 304 }, 305 { "bali.NumberElements", 306 new String[] { 307 ".", 308 ",", 309 ";", 310 "%", 311 "\u1b50", 312 "#", 313 "-", 314 "E", 315 "\u2030", 316 "\u221e", 317 "NaN", 318 } 319 }, 320 { "beng.NumberElements", 321 new String[] { 322 ".", 323 ",", 324 ";", 325 "%", 326 "\u09e6", 327 "#", 328 "-", 329 "E", 330 "\u2030", 331 "\u221e", 332 "NaN", 333 } 334 }, 335 { "cham.NumberElements", 336 new String[] { 337 ".", 338 ",", 339 ";", 340 "%", 341 "\uaa50", 342 "#", 343 "-", 344 "E", 345 "\u2030", 346 "\u221e", 347 "NaN", 348 } 349 }, 350 { "deva.NumberElements", 351 new String[] { 352 ".", 353 ",", 354 ";", 355 "%", 356 "\u0966", 357 "#", 358 "-", 359 "E", 360 "\u2030", 361 "\u221e", 362 "NaN", 363 } 364 }, 365 { "fullwide.NumberElements", 366 new String[] { 367 ".", 368 ",", 369 ";", 370 "%", 371 "\uff10", 372 "#", 373 "-", 374 "E", 375 "\u2030", 376 "\u221e", 377 "NaN", 378 } 379 }, 380 { "gujr.NumberElements", 381 new String[] { 382 ".", 383 ",", 384 ";", 385 "%", 386 "\u0ae6", 387 "#", 388 "-", 389 "E", 390 "\u2030", 391 "\u221e", 392 "NaN", 393 } 394 }, 395 { "guru.NumberElements", 396 new String[] { 397 ".", 398 ",", 399 ";", 400 "%", 401 "\u0a66", 402 "#", 403 "-", 404 "E", 405 "\u2030", 406 "\u221e", 407 "NaN", 408 } 409 }, 410 { "java.NumberElements", 411 new String[] { 412 ".", 413 ",", 414 ";", 415 "%", 416 "\ua9d0", 417 "#", 418 "-", 419 "E", 420 "\u2030", 421 "\u221e", 422 "NaN", 423 } 424 }, 425 { "kali.NumberElements", 426 new String[] { 427 ".", 428 ",", 429 ";", 430 "%", 431 "\ua900", 432 "#", 433 "-", 434 "E", 435 "\u2030", 436 "\u221e", 437 "NaN", 438 } 439 }, 440 { "khmr.NumberElements", 441 new String[] { 442 ".", 443 ",", 444 ";", 445 "%", 446 "\u17e0", 447 "#", 448 "-", 449 "E", 450 "\u2030", 451 "\u221e", 452 "NaN", 453 } 454 }, 455 { "knda.NumberElements", 456 new String[] { 457 ".", 458 ",", 459 ";", 460 "%", 461 "\u0ce6", 462 "#", 463 "-", 464 "E", 465 "\u2030", 466 "\u221e", 467 "NaN", 468 } 469 }, 470 { "laoo.NumberElements", 471 new String[] { 472 ".", 473 ",", 474 ";", 475 "%", 476 "\u0ed0", 477 "#", 478 "-", 479 "E", 480 "\u2030", 481 "\u221e", 482 "NaN", 483 } 484 }, 485 { "lana.NumberElements", 486 new String[] { 487 ".", 488 ",", 489 ";", 490 "%", 491 "\u1a80", 492 "#", 493 "-", 494 "E", 495 "\u2030", 496 "\u221e", 497 "NaN", 498 } 499 }, 500 { "lanatham.NumberElements", 501 new String[] { 502 ".", 503 ",", 504 ";", 505 "%", 506 "\u1a90", 507 "#", 508 "-", 509 "E", 510 "\u2030", 511 "\u221e", 512 "NaN", 513 } 514 }, 515 { "latn.NumberElements", 516 new String[] { 517 ".", // decimal separator 518 ",", // group (thousands) separator 519 ";", // list separator 520 "%", // percent sign 521 "0", // native 0 digit 522 "#", // pattern digit 523 "-", // minus sign 524 "E", // exponential 525 "\u2030", // per mille 526 "\u221e", // infinity 527 "\ufffd" // NaN 528 } 529 }, 530 { "lepc.NumberElements", 531 new String[] { 532 ".", 533 ",", 534 ";", 535 "%", 536 "\u1c40", 537 "#", 538 "-", 539 "E", 540 "\u2030", 541 "\u221e", 542 "NaN", 543 } 544 }, 545 { "limb.NumberElements", 546 new String[] { 547 ".", 548 ",", 549 ";", 550 "%", 551 "\u1946", 552 "#", 553 "-", 554 "E", 555 "\u2030", 556 "\u221e", 557 "NaN", 558 } 559 }, 560 { "mlym.NumberElements", 561 new String[] { 562 ".", 563 ",", 564 ";", 565 "%", 566 "\u0d66", 567 "#", 568 "-", 569 "E", 570 "\u2030", 571 "\u221e", 572 "NaN", 573 } 574 }, 575 { "mong.NumberElements", 576 new String[] { 577 ".", 578 ",", 579 ";", 580 "%", 581 "\u1810", 582 "#", 583 "-", 584 "E", 585 "\u2030", 586 "\u221e", 587 "NaN", 588 } 589 }, 590 { "mtei.NumberElements", 591 new String[] { 592 ".", 593 ",", 594 ";", 595 "%", 596 "\uabf0", 597 "#", 598 "-", 599 "E", 600 "\u2030", 601 "\u221e", 602 "NaN", 603 } 604 }, 605 { "mymr.NumberElements", 606 new String[] { 607 ".", 608 ",", 609 ";", 610 "%", 611 "\u1040", 612 "#", 613 "-", 614 "E", 615 "\u2030", 616 "\u221e", 617 "NaN", 618 } 619 }, 620 { "mymrshan.NumberElements", 621 new String[] { 622 ".", 623 ",", 624 ";", 625 "%", 626 "\u1090", 627 "#", 628 "-", 629 "E", 630 "\u2030", 631 "\u221e", 632 "NaN", 633 } 634 }, 635 { "nkoo.NumberElements", 636 new String[] { 637 ".", 638 ",", 639 ";", 640 "%", 641 "\u07c0", 642 "#", 643 "-", 644 "E", 645 "\u2030", 646 "\u221e", 647 "NaN", 648 } 649 }, 650 { "olck.NumberElements", 651 new String[] { 652 ".", 653 ",", 654 ";", 655 "%", 656 "\u1c50", 657 "#", 658 "-", 659 "E", 660 "\u2030", 661 "\u221e", 662 "NaN", 663 } 664 }, 665 { "orya.NumberElements", 666 new String[] { 667 ".", 668 ",", 669 ";", 670 "%", 671 "\u0b66", 672 "#", 673 "-", 674 "E", 675 "\u2030", 676 "\u221e", 677 "NaN", 678 } 679 }, 680 { "saur.NumberElements", 681 new String[] { 682 ".", 683 ",", 684 ";", 685 "%", 686 "\ua8d0", 687 "#", 688 "-", 689 "E", 690 "\u2030", 691 "\u221e", 692 "NaN", 693 } 694 }, 695 { "sund.NumberElements", 696 new String[] { 697 ".", 698 ",", 699 ";", 700 "%", 701 "\u1bb0", 702 "#", 703 "-", 704 "E", 705 "\u2030", 706 "\u221e", 707 "NaN", 708 } 709 }, 710 { "talu.NumberElements", 711 new String[] { 712 ".", 713 ",", 714 ";", 715 "%", 716 "\u19d0", 717 "#", 718 "-", 719 "E", 720 "\u2030", 721 "\u221e", 722 "NaN", 723 } 724 }, 725 { "tamldec.NumberElements", 726 new String[] { 727 ".", 728 ",", 729 ";", 730 "%", 731 "\u0be6", 732 "#", 733 "-", 734 "E", 735 "\u2030", 736 "\u221e", 737 "NaN", 738 } 739 }, 740 { "telu.NumberElements", 741 new String[] { 742 ".", 743 ",", 744 ";", 745 "%", 746 "\u0c66", 747 "#", 748 "-", 749 "E", 750 "\u2030", 751 "\u221e", 752 "NaN", 753 } 754 }, 755 { "thai.NumberElements", 756 new String[] { 757 ".", // decimal separator 758 ",", // group (thousands) separator 759 ";", // list separator 760 "%", // percent sign 761 "\u0E50", // native 0 digit 762 "#", // pattern digit 763 "-", // minus sign 764 "E", // exponential 765 "\u2030", // per mille 766 "\u221e", // infinity 767 "\ufffd" // NaN 768 } 769 }, 770 { "tibt.NumberElements", 771 new String[] { 772 ".", 773 ",", 774 ";", 775 "%", 776 "\u0f20", 777 "#", 778 "-", 779 "E", 780 "\u2030", 781 "\u221e", 782 "NaN", 783 } 784 }, 785 { "vaii.NumberElements", 786 new String[] { 787 ".", 788 ",", 789 ";", 790 "%", 791 "\ua620", 792 "#", 793 "-", 794 "E", 795 "\u2030", 796 "\u221e", 797 "NaN", 798 } 799 }, 800 { "short.CompactNumberPatterns", 801 List.of( 802 "", 803 "", 804 "", 805 "0K", 806 "00K", 807 "000K", 808 "0M", 809 "00M", 810 "000M", 811 "0B", 812 "00B", 813 "000B", 814 "0T", 815 "00T", 816 "000T" 817 ) 818 }, 819 { "long.CompactNumberPatterns", 820 List.of ( 821 "", 822 "", 823 "", 824 "0 thousand", 825 "00 thousand", 826 "000 thousand", 827 "0 million", 828 "00 million", 829 "000 million", 830 "0 billion", 831 "00 billion", 832 "000 billion", 833 "0 trillion", 834 "00 trillion", 835 "000 trillion" 836 ) 837 }, 838 { "TimePatterns", 839 new String[] { 840 "h:mm:ss a z", // full time pattern 841 "h:mm:ss a z", // long time pattern 842 "h:mm:ss a", // medium time pattern 843 "h:mm a", // short time pattern 844 } 845 }, 846 { "DatePatterns", 847 new String[] { 848 "EEEE, MMMM d, yyyy", // full date pattern 849 "MMMM d, yyyy", // long date pattern 850 "MMM d, yyyy", // medium date pattern 851 "M/d/yy", // short date pattern 852 } 853 }, 854 { "DateTimePatterns", 855 new String[] { 856 "{1} {0}" // date-time pattern 857 } 858 }, 859 { "buddhist.TimePatterns", 860 new String[] { 861 "H:mm:ss z", // full time pattern 862 "H:mm:ss z", // long time pattern 863 "H:mm:ss", // medium time pattern 864 "H:mm", // short time pattern 865 } 866 }, 867 { "buddhist.DatePatterns", 868 new String[] { 869 "EEEE d MMMM G yyyy", // full date pattern 870 "d MMMM yyyy", // long date pattern 871 "d MMM yyyy", // medium date pattern 872 "d/M/yyyy", // short date pattern 873 } 874 }, 875 { "buddhist.DateTimePatterns", 876 new String[] { 877 "{1}, {0}" // date-time pattern 878 } 879 }, 880 { "japanese.TimePatterns", 881 new String[] { 882 "h:mm:ss a z", // full time pattern 883 "h:mm:ss a z", // long time pattern 884 "h:mm:ss a", // medium time pattern 885 "h:mm a", // short time pattern 886 } 887 }, 888 { "japanese.DatePatterns", 889 new String[] { 890 "GGGG yyyy MMMM d (EEEE)", // full date pattern 891 "GGGG yyyy MMMM d", // long date pattern 892 "GGGG yyyy MMM d", // medium date pattern 893 "Gy.MM.dd", // short date pattern 894 } 895 }, 896 { "japanese.DateTimePatterns", 897 new String[] { 898 "{1} {0}" // date-time pattern 899 } 900 }, 901 { "DateTimePatternChars", "GyMdkHmsSEDFwWahKzZ" }, 902 }; 903 } 904 }