1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License
15  */
16 
17 package com.android.inputmethod.leanback;
18 
19 import java.util.Locale;
20 
21 public class LeanbackLocales {
22 
23     /*
24      * -Locales are organized into groups based on keyboard layout (e.g. qwerty, qwertz, azerty)
25      * -In each group, the most specific layouts (those that specify language AND country)
26      *  are listed first
27      * -The list of locales are named as such: <keyboard layout>_<country|language>_zone
28      *   (Note: the naming of the list is made as generic as possible, for example if there is only
29      *    one list for a given keyboard layout then the country, language and zone is omitted)
30      *   (Note: country is preferred over language because it is more specific, if no country is
31      *    specified, use language)
32      *   (Note: zone refers to US vs EU, which specifies which type of currency to use
33      *    dollar, euro, or pound)
34      */
35 
36     /**************************** QWERTY ****************************/
37     // QWERTY (EN GB)
38     public static final Locale BRITISH_ENGLISH = new Locale("en", "GB");
39     public static final Locale[] QWERTY_GB = new Locale[] {BRITISH_ENGLISH};
40 
41     // QWERTY (EN IN)
42     public static final Locale INDIAN_ENGLISH = new Locale("en", "IN");
43     public static final Locale[] QWERTY_IN = new Locale[] {INDIAN_ENGLISH};
44 
45     // QWERTY (ES EU)
46     public static final Locale SPAIN_SPANISH = new Locale("es", "ES");
47     public static final Locale GALIC_SPANISH = new Locale("gl", "ES");
48     public static final Locale BASQUE_SPANISH = new Locale("eu", "ES");
49     public static final Locale[] QWERTY_ES_EU = new Locale[] {
50         SPAIN_SPANISH, GALIC_SPANISH, BASQUE_SPANISH};
51 
52     // QWERTY (ES US)
53     public static final Locale OTHER_SPANISH = new Locale("es", "");
54     public static final Locale[] QWERTY_ES_US = new Locale[] {OTHER_SPANISH};
55 
56     // QWERTY (AZ)
57     public static final Locale AZERBAIJANI = new Locale("az", "");
58     public static final Locale[] QWERTY_AZ = new Locale[] {AZERBAIJANI};
59 
60     // QWERTY (CA)
61     public static final Locale CATALAN = new Locale("ca", "");
62     public static final Locale[] QWERTY_CA = new Locale[] {CATALAN};
63 
64     // QWERTY (DA)
65     public static final Locale DANISH = new Locale("da", "");
66     public static final Locale[] QWERTY_DA = new Locale[] {DANISH};
67 
68     // QWERTY (ET)
69     public static final Locale ESTONIAN = new Locale("et", "");
70     public static final Locale[] QWERTY_ET = new Locale[] {ESTONIAN};
71 
72     // QWERTY (FI)
73     public static final Locale FINNISH = new Locale("fi", "");
74     public static final Locale[] QWERTY_FI = new Locale[] {FINNISH};
75 
76     // QWERTY (NB)
77     public static final Locale NORWEGIAN = new Locale("nb", "");
78     public static final Locale[] QWERTY_NB = new Locale[] {NORWEGIAN};
79 
80     // QWERTY (SV)
81     public static final Locale SWEDISH = new Locale("sv", "");
82     public static final Locale[] QWERTY_SV = new Locale[] {SWEDISH};
83 
84     // QWERTY (US)
85     public static final Locale ENGLISH = Locale.ENGLISH;
86     public static final Locale CANADIAN_FRENCH = Locale.CANADA_FRENCH;
87     public static final Locale[] QWERTY_US = new Locale[] {ENGLISH, CANADIAN_FRENCH};
88 
89 
90     /**************************** QWERTZ ****************************/
91 
92     // QWERTZ (CH)
93     public static final Locale SWISS_GERMAN = new Locale("de", "CH");
94     public static final Locale SWISS_ITALIAN = new Locale("it", "CH");
95     public static final Locale[] QWERTZ_CH = new Locale[] { SWISS_GERMAN, SWISS_ITALIAN};
96 
97     // QWERTZ
98     public static final Locale GERMAN = new Locale("de", "");
99     public static final Locale CROATIAN = new Locale("hr", "");
100     public static final Locale CZECH = new Locale("cs", "");
101     public static final Locale SWISS_FRENCH = new Locale("fr", "CH");
102     public static final Locale HUNGARIAN = new Locale("hu", "");
103     public static final Locale SERBIAN = new Locale("sr", "");
104     public static final Locale SLOVENIAN = new Locale("sl", "");
105     public static final Locale ALBANIANIAN = new Locale("sq", "");
106     public static final Locale[] QWERTZ = new Locale[] { GERMAN, CROATIAN, CZECH, SWISS_FRENCH,
107         SWISS_ITALIAN, HUNGARIAN,SERBIAN, SLOVENIAN, ALBANIANIAN};
108 
109 
110     /**************************** AZERTY ****************************/
111 
112     // AZERTY
113     public static final Locale FRENCH = Locale.FRENCH;
114     public static final Locale BELGIAN_DUTCH = new Locale("nl", "BE");
115     public static final Locale[] AZERTY = new Locale[] {FRENCH, BELGIAN_DUTCH};
116 
117 }
118