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