Use more accurate Russian keywords for RexBench/FlightPlanner Unicode mode
[WebKit-https.git] / PerformanceTests / RexBench / FlightPlanner / use_unicode.js
1 /*
2  * Copyright (C) 2017 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25 "use strict";
26
27 this.useUnicode = true;
28
29 if (!String.prototype.toTitleCase) {
30     String.prototype.toTitleCase = function()
31     {
32         return this.charAt(0).toUpperCase() + this.substr(1).toLowerCase();
33     }
34 }
35
36 class UnicodeStrings
37 {
38     static get(str)
39     {
40         if (!this.instance) {
41             this.instance = this;
42
43             for (let keyStr in UnicodeStrings.table) {
44                 let keyStrLower = keyStr.toLowerCase();
45                 let valueStrLower = UnicodeStrings.table[keyStr].toLowerCase();
46                 UnicodeStrings.table[keyStrLower] = valueStrLower;
47                 
48                 let keyStrTitle = keyStr.toTitleCase();
49                 let valueStrTitle = UnicodeStrings.table[keyStr].toTitleCase();
50                 UnicodeStrings.table[keyStrTitle] = valueStrTitle;
51             }
52         }
53
54         return this.table[str];
55     }
56
57 }
58
59 UnicodeStrings.instance = null;
60 UnicodeStrings.table = {
61     "START": "\u{041d}\u{0410}\u{0427}\u{0410}\u{0422}\u{042c}", // НАЧАТЬ
62     "TIMING": "\u{0425}\u{0420}\u{041e}\u{041d}\u{041e}\u{041c}\u{0415}\u{0422}\u{0420}\u{0410}\u{0416}", // ХРОНОМЕТРАЖ
63     "TAXI": "\u{0420}\u{0423}\u{041b}\u{0415}\u{041d}\u{0418}\u{0415}", // РУЛЕНИЕ
64     "RUNUP": "\u{0414}\u{0412}\u{0418}\u{0413}\u{0410}\u{0422}\u{0415}\u{041b}\u{042c}-\u{041d}\u{0410}\u{041a}\u{0410}\u{0422}\u{0410}", // ДВИГАТЕЛЬ НАКАТА
65     "TAKEOFF": "\u{0412}\u{0417}\u{041b}\u{0415}\u{0422}", // ВЗЛЕТ
66     "CLIMB": "\u{041f}\u{041e}\u{0414}\u{041d}\u{042f}\u{0422}\u{042c}\u{0421}\u{042f}", // ПОДНЯТЬСЯ
67     "PATTERN": "\u{041a}\u{0420}\u{0423}\u{0413}", // КРУГ
68     "LEFT": "\u{041b}\u{0415}\u{0412}\u{042b}\u{0419}", // ЛЕВЫЙ
69     "RIGHT": "\u{041f}\u{0420}\u{0410}\u{0412}\u{042b}\u{0419}" // ПРАВЫЙ
70 };