1 /*
   2  * Copyright (c) 1996, 2013, 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 sun.util.resources.ParallelListResourceBundle;
  83 
  84 public class FormatData extends ParallelListResourceBundle {
  85     /**
  86      * Overrides ListResourceBundle
  87      */
  88     @Override
  89     protected final Object[][] getContents() {
  90         // Julian calendar era strings
  91         final String[] julianEras = {
  92             "BC",
  93             "AD"
  94         };
  95 
  96         // Thai Buddhist calendar era strings
  97         final String[] buddhistEras = {
  98             "BC",     // BC
  99             "B.E."    // Buddhist Era
 100         };
 101 
 102         // Japanese imperial calendar era abbreviations
 103         final String[] japaneseEraAbbrs = {
 104             "",
 105             "M",
 106             "T",
 107             "S",
 108             "H",
 109         };
 110 
 111         // Japanese imperial calendar era strings
 112         final String[] japaneseEras = {
 113             "",
 114             "Meiji",
 115             "Taisho",
 116             "Showa",
 117             "Heisei",
 118         };
 119 
 120         return new Object[][] {
 121             { "MonthNames",
 122                 new String[] {
 123                     "January", // january
 124                     "February", // february
 125                     "March", // march
 126                     "April", // april
 127                     "May", // may
 128                     "June", // june
 129                     "July", // july
 130                     "August", // august
 131                     "September", // september
 132                     "October", // october
 133                     "November", // november
 134                     "December", // december
 135                     "" // month 13 if applicable
 136                 }
 137             },
 138             { "MonthAbbreviations",
 139                 new String[] {
 140                     "Jan", // abb january
 141                     "Feb", // abb february
 142                     "Mar", // abb march
 143                     "Apr", // abb april
 144                     "May", // abb may
 145                     "Jun", // abb june
 146                     "Jul", // abb july
 147                     "Aug", // abb august
 148                     "Sep", // abb september
 149                     "Oct", // abb october
 150                     "Nov", // abb november
 151                     "Dec", // abb december
 152                     "" // abb month 13 if applicable
 153                 }
 154             },
 155             { "MonthNarrows",
 156                 new String[] {
 157                     "J",
 158                     "F",
 159                     "M",
 160                     "A",
 161                     "M",
 162                     "J",
 163                     "J",
 164                     "A",
 165                     "S",
 166                     "O",
 167                     "N",
 168                     "D",
 169                     "",
 170                 }
 171             },
 172             { "DayNames",
 173                 new String[] {
 174                     "Sunday", // Sunday
 175                     "Monday", // Monday
 176                     "Tuesday", // Tuesday
 177                     "Wednesday", // Wednesday
 178                     "Thursday", // Thursday
 179                     "Friday", // Friday
 180                     "Saturday" // Saturday
 181                 }
 182             },
 183             { "DayAbbreviations",
 184                 new String[] {
 185                     "Sun", // abb Sunday
 186                     "Mon", // abb Monday
 187                     "Tue", // abb Tuesday
 188                     "Wed", // abb Wednesday
 189                     "Thu", // abb Thursday
 190                     "Fri", // abb Friday
 191                     "Sat" // abb Saturday
 192                 }
 193             },
 194             { "DayNarrows",
 195                 new String[] {
 196                     "S",
 197                     "M",
 198                     "T",
 199                     "W",
 200                     "T",
 201                     "F",
 202                     "S",
 203                 }
 204             },
 205             { "AmPmMarkers",
 206                 new String[] {
 207                     "AM", // am marker
 208                     "PM" // pm marker
 209                 }
 210             },
 211             { "narrow.AmPmMarkers",
 212                 new String[] {
 213                     "a", // am marker
 214                     "p"  // pm marker
 215                 }
 216             },
 217             { "Eras",
 218                 julianEras },
 219             { "short.Eras",
 220                 julianEras },
 221             { "narrow.Eras",
 222                 new String[] {
 223                     "B",
 224                     "A",
 225                 }
 226             },
 227             { "buddhist.Eras",
 228               buddhistEras
 229             },
 230             { "buddhist.short.Eras",
 231               buddhistEras
 232             },
 233             { "buddhist.narrow.Eras",
 234               buddhistEras
 235             },
 236             { "japanese.Eras",
 237                 japaneseEras },
 238             { "japanese.short.Eras",
 239                 japaneseEraAbbrs
 240             },
 241             { "japanese.narrow.Eras",
 242                 japaneseEraAbbrs
 243             },
 244             { "japanese.FirstYear",
 245                 new String[] { // Japanese imperial calendar year name
 246                     // empty in English
 247                 }
 248             },
 249             { "NumberPatterns",
 250                 new String[] {
 251                     "#,##0.###;-#,##0.###", // decimal pattern
 252                     "\u00a4 #,##0.00;-\u00a4 #,##0.00", // currency pattern
 253                     "#,##0%" // percent pattern
 254                 }
 255             },
 256             { "DefaultNumberingSystem", "" },
 257             { "NumberElements",
 258                 new String[] {
 259                     ".", // decimal separator
 260                     ",", // group (thousands) separator
 261                     ";", // list separator
 262                     "%", // percent sign
 263                     "0", // native 0 digit
 264                     "#", // pattern digit
 265                     "-", // minus sign
 266                     "E", // exponential
 267                     "\u2030", // per mille
 268                     "\u221e", // infinity
 269                     "\ufffd" // NaN
 270                 }
 271             },
 272             { "arab.NumberElements",
 273                 new String[] {
 274                     "\u066b",
 275                     "\u066c",
 276                     "\u061b",
 277                     "\u066a",
 278                     "\u0660",
 279                     "#",
 280                     "-",
 281                     "\u0627\u0633",
 282                     "\u0609",
 283                     "\u221e",
 284                     "NaN",
 285                 }
 286             },
 287             { "arabext.NumberElements",
 288                 new String[] {
 289                     "\u066b",
 290                     "\u066c",
 291                     "\u061b",
 292                     "\u066a",
 293                     "\u06f0",
 294                     "#",
 295                     "-",
 296                     "\u00d7\u06f1\u06f0^",
 297                     "\u0609",
 298                     "\u221e",
 299                     "NaN",
 300                 }
 301             },
 302             { "bali.NumberElements",
 303                 new String[] {
 304                     ".",
 305                     ",",
 306                     ";",
 307                     "%",
 308                     "\u1b50",
 309                     "#",
 310                     "-",
 311                     "E",
 312                     "\u2030",
 313                     "\u221e",
 314                     "NaN",
 315                 }
 316             },
 317             { "beng.NumberElements",
 318                 new String[] {
 319                     ".",
 320                     ",",
 321                     ";",
 322                     "%",
 323                     "\u09e6",
 324                     "#",
 325                     "-",
 326                     "E",
 327                     "\u2030",
 328                     "\u221e",
 329                     "NaN",
 330                 }
 331             },
 332             { "cham.NumberElements",
 333                 new String[] {
 334                     ".",
 335                     ",",
 336                     ";",
 337                     "%",
 338                     "\uaa50",
 339                     "#",
 340                     "-",
 341                     "E",
 342                     "\u2030",
 343                     "\u221e",
 344                     "NaN",
 345                 }
 346             },
 347             { "deva.NumberElements",
 348                 new String[] {
 349                     ".",
 350                     ",",
 351                     ";",
 352                     "%",
 353                     "\u0966",
 354                     "#",
 355                     "-",
 356                     "E",
 357                     "\u2030",
 358                     "\u221e",
 359                     "NaN",
 360                 }
 361             },
 362             { "fullwide.NumberElements",
 363                 new String[] {
 364                     ".",
 365                     ",",
 366                     ";",
 367                     "%",
 368                     "\uff10",
 369                     "#",
 370                     "-",
 371                     "E",
 372                     "\u2030",
 373                     "\u221e",
 374                     "NaN",
 375                 }
 376             },
 377             { "gujr.NumberElements",
 378                 new String[] {
 379                     ".",
 380                     ",",
 381                     ";",
 382                     "%",
 383                     "\u0ae6",
 384                     "#",
 385                     "-",
 386                     "E",
 387                     "\u2030",
 388                     "\u221e",
 389                     "NaN",
 390                 }
 391             },
 392             { "guru.NumberElements",
 393                 new String[] {
 394                     ".",
 395                     ",",
 396                     ";",
 397                     "%",
 398                     "\u0a66",
 399                     "#",
 400                     "-",
 401                     "E",
 402                     "\u2030",
 403                     "\u221e",
 404                     "NaN",
 405                 }
 406             },
 407             { "java.NumberElements",
 408                 new String[] {
 409                     ".",
 410                     ",",
 411                     ";",
 412                     "%",
 413                     "\ua9d0",
 414                     "#",
 415                     "-",
 416                     "E",
 417                     "\u2030",
 418                     "\u221e",
 419                     "NaN",
 420                 }
 421             },
 422             { "kali.NumberElements",
 423                 new String[] {
 424                     ".",
 425                     ",",
 426                     ";",
 427                     "%",
 428                     "\ua900",
 429                     "#",
 430                     "-",
 431                     "E",
 432                     "\u2030",
 433                     "\u221e",
 434                     "NaN",
 435                 }
 436             },
 437             { "khmr.NumberElements",
 438                 new String[] {
 439                     ".",
 440                     ",",
 441                     ";",
 442                     "%",
 443                     "\u17e0",
 444                     "#",
 445                     "-",
 446                     "E",
 447                     "\u2030",
 448                     "\u221e",
 449                     "NaN",
 450                 }
 451             },
 452             { "knda.NumberElements",
 453                 new String[] {
 454                     ".",
 455                     ",",
 456                     ";",
 457                     "%",
 458                     "\u0ce6",
 459                     "#",
 460                     "-",
 461                     "E",
 462                     "\u2030",
 463                     "\u221e",
 464                     "NaN",
 465                 }
 466             },
 467             { "laoo.NumberElements",
 468                 new String[] {
 469                     ".",
 470                     ",",
 471                     ";",
 472                     "%",
 473                     "\u0ed0",
 474                     "#",
 475                     "-",
 476                     "E",
 477                     "\u2030",
 478                     "\u221e",
 479                     "NaN",
 480                 }
 481             },
 482             { "lana.NumberElements",
 483                 new String[] {
 484                     ".",
 485                     ",",
 486                     ";",
 487                     "%",
 488                     "\u1a80",
 489                     "#",
 490                     "-",
 491                     "E",
 492                     "\u2030",
 493                     "\u221e",
 494                     "NaN",
 495                 }
 496             },
 497             { "lanatham.NumberElements",
 498                 new String[] {
 499                     ".",
 500                     ",",
 501                     ";",
 502                     "%",
 503                     "\u1a90",
 504                     "#",
 505                     "-",
 506                     "E",
 507                     "\u2030",
 508                     "\u221e",
 509                     "NaN",
 510                 }
 511             },
 512             { "latn.NumberElements",
 513                 new String[] {
 514                     ".", // decimal separator
 515                     ",", // group (thousands) separator
 516                     ";", // list separator
 517                     "%", // percent sign
 518                     "0", // native 0 digit
 519                     "#", // pattern digit
 520                     "-", // minus sign
 521                     "E", // exponential
 522                     "\u2030", // per mille
 523                     "\u221e", // infinity
 524                     "\ufffd" // NaN
 525                 }
 526             },
 527             { "lepc.NumberElements",
 528                 new String[] {
 529                     ".",
 530                     ",",
 531                     ";",
 532                     "%",
 533                     "\u1c40",
 534                     "#",
 535                     "-",
 536                     "E",
 537                     "\u2030",
 538                     "\u221e",
 539                     "NaN",
 540                 }
 541             },
 542             { "limb.NumberElements",
 543                 new String[] {
 544                     ".",
 545                     ",",
 546                     ";",
 547                     "%",
 548                     "\u1946",
 549                     "#",
 550                     "-",
 551                     "E",
 552                     "\u2030",
 553                     "\u221e",
 554                     "NaN",
 555                 }
 556             },
 557             { "mlym.NumberElements",
 558                 new String[] {
 559                     ".",
 560                     ",",
 561                     ";",
 562                     "%",
 563                     "\u0d66",
 564                     "#",
 565                     "-",
 566                     "E",
 567                     "\u2030",
 568                     "\u221e",
 569                     "NaN",
 570                 }
 571             },
 572             { "mong.NumberElements",
 573                 new String[] {
 574                     ".",
 575                     ",",
 576                     ";",
 577                     "%",
 578                     "\u1810",
 579                     "#",
 580                     "-",
 581                     "E",
 582                     "\u2030",
 583                     "\u221e",
 584                     "NaN",
 585                 }
 586             },
 587             { "mtei.NumberElements",
 588                 new String[] {
 589                     ".",
 590                     ",",
 591                     ";",
 592                     "%",
 593                     "\uabf0",
 594                     "#",
 595                     "-",
 596                     "E",
 597                     "\u2030",
 598                     "\u221e",
 599                     "NaN",
 600                 }
 601             },
 602             { "mymr.NumberElements",
 603                 new String[] {
 604                     ".",
 605                     ",",
 606                     ";",
 607                     "%",
 608                     "\u1040",
 609                     "#",
 610                     "-",
 611                     "E",
 612                     "\u2030",
 613                     "\u221e",
 614                     "NaN",
 615                 }
 616             },
 617             { "mymrshan.NumberElements",
 618                 new String[] {
 619                     ".",
 620                     ",",
 621                     ";",
 622                     "%",
 623                     "\u1090",
 624                     "#",
 625                     "-",
 626                     "E",
 627                     "\u2030",
 628                     "\u221e",
 629                     "NaN",
 630                 }
 631             },
 632             { "nkoo.NumberElements",
 633                 new String[] {
 634                     ".",
 635                     ",",
 636                     ";",
 637                     "%",
 638                     "\u07c0",
 639                     "#",
 640                     "-",
 641                     "E",
 642                     "\u2030",
 643                     "\u221e",
 644                     "NaN",
 645                 }
 646             },
 647             { "olck.NumberElements",
 648                 new String[] {
 649                     ".",
 650                     ",",
 651                     ";",
 652                     "%",
 653                     "\u1c50",
 654                     "#",
 655                     "-",
 656                     "E",
 657                     "\u2030",
 658                     "\u221e",
 659                     "NaN",
 660                 }
 661             },
 662             { "orya.NumberElements",
 663                 new String[] {
 664                     ".",
 665                     ",",
 666                     ";",
 667                     "%",
 668                     "\u0b66",
 669                     "#",
 670                     "-",
 671                     "E",
 672                     "\u2030",
 673                     "\u221e",
 674                     "NaN",
 675                 }
 676             },
 677             { "saur.NumberElements",
 678                 new String[] {
 679                     ".",
 680                     ",",
 681                     ";",
 682                     "%",
 683                     "\ua8d0",
 684                     "#",
 685                     "-",
 686                     "E",
 687                     "\u2030",
 688                     "\u221e",
 689                     "NaN",
 690                 }
 691             },
 692             { "sund.NumberElements",
 693                 new String[] {
 694                     ".",
 695                     ",",
 696                     ";",
 697                     "%",
 698                     "\u1bb0",
 699                     "#",
 700                     "-",
 701                     "E",
 702                     "\u2030",
 703                     "\u221e",
 704                     "NaN",
 705                 }
 706             },
 707             { "talu.NumberElements",
 708                 new String[] {
 709                     ".",
 710                     ",",
 711                     ";",
 712                     "%",
 713                     "\u19d0",
 714                     "#",
 715                     "-",
 716                     "E",
 717                     "\u2030",
 718                     "\u221e",
 719                     "NaN",
 720                 }
 721             },
 722             { "tamldec.NumberElements",
 723                 new String[] {
 724                     ".",
 725                     ",",
 726                     ";",
 727                     "%",
 728                     "\u0be6",
 729                     "#",
 730                     "-",
 731                     "E",
 732                     "\u2030",
 733                     "\u221e",
 734                     "NaN",
 735                 }
 736             },
 737             { "telu.NumberElements",
 738                 new String[] {
 739                     ".",
 740                     ",",
 741                     ";",
 742                     "%",
 743                     "\u0c66",
 744                     "#",
 745                     "-",
 746                     "E",
 747                     "\u2030",
 748                     "\u221e",
 749                     "NaN",
 750                 }
 751             },
 752             { "thai.NumberElements",
 753                 new String[] {
 754                     ".", // decimal separator
 755                     ",", // group (thousands) separator
 756                     ";", // list separator
 757                     "%", // percent sign
 758                     "\u0E50", // native 0 digit
 759                     "#", // pattern digit
 760                     "-", // minus sign
 761                     "E", // exponential
 762                     "\u2030", // per mille
 763                     "\u221e", // infinity
 764                     "\ufffd" // NaN
 765                 }
 766             },
 767             { "tibt.NumberElements",
 768                 new String[] {
 769                     ".",
 770                     ",",
 771                     ";",
 772                     "%",
 773                     "\u0f20",
 774                     "#",
 775                     "-",
 776                     "E",
 777                     "\u2030",
 778                     "\u221e",
 779                     "NaN",
 780                 }
 781             },
 782             { "vaii.NumberElements",
 783                 new String[] {
 784                     ".",
 785                     ",",
 786                     ";",
 787                     "%",
 788                     "\ua620",
 789                     "#",
 790                     "-",
 791                     "E",
 792                     "\u2030",
 793                     "\u221e",
 794                     "NaN",
 795                 }
 796             },
 797             { "TimePatterns",
 798                 new String[] {
 799                     "h:mm:ss a z",        // full time pattern
 800                     "h:mm:ss a z",        // long time pattern
 801                     "h:mm:ss a",          // medium time pattern
 802                     "h:mm a",             // short time pattern
 803                 }
 804             },
 805             { "DatePatterns",
 806                 new String[] {
 807                     "EEEE, MMMM d, yyyy", // full date pattern
 808                     "MMMM d, yyyy",       // long date pattern
 809                     "MMM d, yyyy",        // medium date pattern
 810                     "M/d/yy",             // short date pattern
 811                 }
 812             },
 813             { "DateTimePatterns",
 814                 new String[] {
 815                     "{1} {0}"             // date-time pattern
 816                 }
 817             },
 818             { "buddhist.TimePatterns",
 819                 new String[] {
 820                     "H:mm:ss z",          // full time pattern
 821                     "H:mm:ss z",          // long time pattern
 822                     "H:mm:ss",            // medium time pattern
 823                     "H:mm",               // short time pattern
 824                 }
 825             },
 826             { "buddhist.DatePatterns",
 827                 new String[] {
 828                     "EEEE d MMMM G yyyy", // full date pattern
 829                     "d MMMM yyyy",        // long date pattern
 830                     "d MMM yyyy",         // medium date pattern
 831                     "d/M/yyyy",           // short date pattern
 832                 }
 833             },
 834             { "buddhist.DateTimePatterns",
 835                 new String[] {
 836                     "{1}, {0}"            // date-time pattern
 837                 }
 838             },
 839             { "japanese.TimePatterns",
 840                 new String[] {
 841                     "h:mm:ss a z",             // full time pattern
 842                     "h:mm:ss a z",             // long time pattern
 843                     "h:mm:ss a",               // medium time pattern
 844                     "h:mm a",                  // short time pattern
 845                 }
 846             },
 847             { "japanese.DatePatterns",
 848                 new String[] {
 849                     "GGGG yyyy MMMM d (EEEE)", // full date pattern
 850                     "GGGG yyyy MMMM d",        // long date pattern
 851                     "GGGG yyyy MMM d",         // medium date pattern
 852                     "Gy.MM.dd",                // short date pattern
 853                 }
 854             },
 855             { "japanese.DateTimePatterns",
 856                 new String[] {
 857                     "{1} {0}"                  // date-time pattern
 858                 }
 859             },
 860             { "DateTimePatternChars", "GyMdkHmsSEDFwWahKzZ" },
 861         };
 862     }
 863 }