1 | /* |
2 | * Copyright (C) 2007-2009 Petri Damstén <damu@iki.fi> |
3 | * |
4 | * This program is free software; you can redistribute it and/or modify |
5 | * it under the terms of the GNU Library General Public License as |
6 | * published by the Free Software Foundation; either version 2, or |
7 | * (at your option) any later version. |
8 | * |
9 | * This program is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | * GNU General Public License for more details |
13 | * |
14 | * You should have received a copy of the GNU Library General Public |
15 | * License along with this program; if not, write to the |
16 | * Free Software Foundation, Inc., |
17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
18 | */ |
19 | |
20 | #include "length.h" |
21 | #include "converter.h" |
22 | #include <klocale.h> |
23 | |
24 | using namespace KUnitConversion; |
25 | |
26 | Length::Length() : UnitCategory(LengthCategory) |
27 | { |
28 | setName(i18n("Length" )); |
29 | setSymbolStringFormat(ki18nc("%1 value, %2 unit symbol (length" , "%1 %2" )); |
30 | |
31 | U(Yottameter, 1e+24, |
32 | i18nc("length unit symbol" , "Ym" ), |
33 | i18nc("unit description in lists" , "yottameters" ), |
34 | i18nc("unit synonyms for matching user input" , "yottameter;yottameters;Ym" ), |
35 | ki18nc("amount in units (real)" , "%1 yottameters" ), |
36 | ki18ncp("amount in units (integer)" , "%1 yottameter" , "%1 yottameters" ) |
37 | ); |
38 | U(Zettameter, 1e+21, |
39 | i18nc("length unit symbol" , "Zm" ), |
40 | i18nc("unit description in lists" , "zettameters" ), |
41 | i18nc("unit synonyms for matching user input" , "zettameter;zettameters;Zm" ), |
42 | ki18nc("amount in units (real)" , "%1 zettameters" ), |
43 | ki18ncp("amount in units (integer)" , "%1 zettameter" , "%1 zettameters" ) |
44 | ); |
45 | U(Exameter, 1e+18, |
46 | i18nc("length unit symbol" , "Em" ), |
47 | i18nc("unit description in lists" , "exameters" ), |
48 | i18nc("unit synonyms for matching user input" , "exameter;exameters;Em" ), |
49 | ki18nc("amount in units (real)" , "%1 exameters" ), |
50 | ki18ncp("amount in units (integer)" , "%1 exameter" , "%1 exameters" ) |
51 | ); |
52 | U(Petameter, 1e+15, |
53 | i18nc("length unit symbol" , "Pm" ), |
54 | i18nc("unit description in lists" , "petameters" ), |
55 | i18nc("unit synonyms for matching user input" , "petameter;petameters;Pm" ), |
56 | ki18nc("amount in units (real)" , "%1 petameters" ), |
57 | ki18ncp("amount in units (integer)" , "%1 petameter" , "%1 petameters" ) |
58 | ); |
59 | U(Terameter, 1e+12, |
60 | i18nc("length unit symbol" , "Tm" ), |
61 | i18nc("unit description in lists" , "terameters" ), |
62 | i18nc("unit synonyms for matching user input" , "terameter;terameters;Tm" ), |
63 | ki18nc("amount in units (real)" , "%1 terameters" ), |
64 | ki18ncp("amount in units (integer)" , "%1 terameter" , "%1 terameters" ) |
65 | ); |
66 | U(Gigameter, 1e+09, |
67 | i18nc("length unit symbol" , "Gm" ), |
68 | i18nc("unit description in lists" , "gigameters" ), |
69 | i18nc("unit synonyms for matching user input" , "gigameter;gigameters;Gm" ), |
70 | ki18nc("amount in units (real)" , "%1 gigameters" ), |
71 | ki18ncp("amount in units (integer)" , "%1 gigameter" , "%1 gigameters" ) |
72 | ); |
73 | U(Megameter, 1e+06, |
74 | i18nc("length unit symbol" , "Mm" ), |
75 | i18nc("unit description in lists" , "megameters" ), |
76 | i18nc("unit synonyms for matching user input" , "megameter;megameters;Mm" ), |
77 | ki18nc("amount in units (real)" , "%1 megameters" ), |
78 | ki18ncp("amount in units (integer)" , "%1 megameter" , "%1 megameters" ) |
79 | ); |
80 | U(Kilometer, 1000, |
81 | i18nc("length unit symbol" , "km" ), |
82 | i18nc("unit description in lists" , "kilometers" ), |
83 | i18nc("unit synonyms for matching user input" , "kilometer;kilometers;km" ), |
84 | ki18nc("amount in units (real)" , "%1 kilometers" ), |
85 | ki18ncp("amount in units (integer)" , "%1 kilometer" , "%1 kilometers" ) |
86 | ); |
87 | U(Hectometer, 100, |
88 | i18nc("length unit symbol" , "hm" ), |
89 | i18nc("unit description in lists" , "hectometers" ), |
90 | i18nc("unit synonyms for matching user input" , "hectometer;hectometers;hm" ), |
91 | ki18nc("amount in units (real)" , "%1 hectometers" ), |
92 | ki18ncp("amount in units (integer)" , "%1 hectometer" , "%1 hectometers" ) |
93 | ); |
94 | U(Decameter, 10, |
95 | i18nc("length unit symbol" , "dam" ), |
96 | i18nc("unit description in lists" , "decameters" ), |
97 | i18nc("unit synonyms for matching user input" , "decameter;decameters;dam" ), |
98 | ki18nc("amount in units (real)" , "%1 decameters" ), |
99 | ki18ncp("amount in units (integer)" , "%1 decameter" , "%1 decameters" ) |
100 | ); |
101 | setDefaultUnit(UP(Meter, 1, |
102 | i18nc("length unit symbol" , "m" ), |
103 | i18nc("unit description in lists" , "meters" ), |
104 | i18nc("unit synonyms for matching user input" , "meter;meters;m" ), |
105 | ki18nc("amount in units (real)" , "%1 meters" ), |
106 | ki18ncp("amount in units (integer)" , "%1 meter" , "%1 meters" ) |
107 | )); |
108 | U(Decimeter, 0.1, |
109 | i18nc("length unit symbol" , "dm" ), |
110 | i18nc("unit description in lists" , "decimeters" ), |
111 | i18nc("unit synonyms for matching user input" , "decimeter;decimeters;dm" ), |
112 | ki18nc("amount in units (real)" , "%1 decimeters" ), |
113 | ki18ncp("amount in units (integer)" , "%1 decimeter" , "%1 decimeters" ) |
114 | ); |
115 | U(Centimeter, 0.01, |
116 | i18nc("length unit symbol" , "cm" ), |
117 | i18nc("unit description in lists" , "centimeters" ), |
118 | i18nc("unit synonyms for matching user input" , "centimeter;centimeters;cm" ), |
119 | ki18nc("amount in units (real)" , "%1 centimeters" ), |
120 | ki18ncp("amount in units (integer)" , "%1 centimeter" , "%1 centimeters" ) |
121 | ); |
122 | U(Millimeter, 0.001, |
123 | i18nc("length unit symbol" , "mm" ), |
124 | i18nc("unit description in lists" , "millimeters" ), |
125 | i18nc("unit synonyms for matching user input" , "millimeter;millimeters;mm" ), |
126 | ki18nc("amount in units (real)" , "%1 millimeters" ), |
127 | ki18ncp("amount in units (integer)" , "%1 millimeter" , "%1 millimeters" ) |
128 | ); |
129 | U(Micrometer, 1e-06, |
130 | i18nc("length unit symbol" , "µm" ), |
131 | i18nc("unit description in lists" , "micrometers" ), |
132 | i18nc("unit synonyms for matching user input" , "micrometer;micrometers;µm;um" ), |
133 | ki18nc("amount in units (real)" , "%1 micrometers" ), |
134 | ki18ncp("amount in units (integer)" , "%1 micrometer" , "%1 micrometers" ) |
135 | ); |
136 | U(Nanometer, 1e-09, |
137 | i18nc("length unit symbol" , "nm" ), |
138 | i18nc("unit description in lists" , "nanometers" ), |
139 | i18nc("unit synonyms for matching user input" , "nanometer;nanometers;nm" ), |
140 | ki18nc("amount in units (real)" , "%1 nanometers" ), |
141 | ki18ncp("amount in units (integer)" , "%1 nanometer" , "%1 nanometers" ) |
142 | ); |
143 | U(Angstrom, 1e-10, |
144 | i18nc("length unit symbol" , "Å" ), |
145 | i18nc("unit description in lists" , "Ångström" ), |
146 | i18nc("unit synonyms for matching user input" , "Ångström;Ångstrom;Angström;Angstrom;Ångströms;Ångstroms;Angströms;Angstroms;Å" ), |
147 | ki18nc("amount in units (real)" , "%1 Ångströms" ), |
148 | ki18ncp("amount in units (integer)" , "%1 Ångström" , "%1 Ångströms" ) |
149 | ); |
150 | U(Picometer, 1e-12, |
151 | i18nc("length unit symbol" , "pm" ), |
152 | i18nc("unit description in lists" , "picometers" ), |
153 | i18nc("unit synonyms for matching user input" , "picometer;picometers;pm" ), |
154 | ki18nc("amount in units (real)" , "%1 picometers" ), |
155 | ki18ncp("amount in units (integer)" , "%1 picometer" , "%1 picometers" ) |
156 | ); |
157 | U(Femtometer, 1e-15, |
158 | i18nc("length unit symbol" , "fm" ), |
159 | i18nc("unit description in lists" , "femtometers" ), |
160 | i18nc("unit synonyms for matching user input" , "femtometer;femtometers;fm" ), |
161 | ki18nc("amount in units (real)" , "%1 femtometers" ), |
162 | ki18ncp("amount in units (integer)" , "%1 femtometer" , "%1 femtometers" ) |
163 | ); |
164 | U(Attometer, 1e-18, |
165 | i18nc("length unit symbol" , "am" ), |
166 | i18nc("unit description in lists" , "attometers" ), |
167 | i18nc("unit synonyms for matching user input" , "attometer;attometers;am" ), |
168 | ki18nc("amount in units (real)" , "%1 attometers" ), |
169 | ki18ncp("amount in units (integer)" , "%1 attometer" , "%1 attometers" ) |
170 | ); |
171 | U(Zeptometer, 1e-21, |
172 | i18nc("length unit symbol" , "zm" ), |
173 | i18nc("unit description in lists" , "zeptometers" ), |
174 | i18nc("unit synonyms for matching user input" , "zeptometer;zeptometers;zm" ), |
175 | ki18nc("amount in units (real)" , "%1 zeptometers" ), |
176 | ki18ncp("amount in units (integer)" , "%1 zeptometer" , "%1 zeptometers" ) |
177 | ); |
178 | U(Yoctometer, 1e-24, |
179 | i18nc("length unit symbol" , "ym" ), |
180 | i18nc("unit description in lists" , "yoctometers" ), |
181 | i18nc("unit synonyms for matching user input" , "yoctometer;yoctometers;ym" ), |
182 | ki18nc("amount in units (real)" , "%1 yoctometers" ), |
183 | ki18ncp("amount in units (integer)" , "%1 yoctometer" , "%1 yoctometers" ) |
184 | ); |
185 | U(Inch, 0.0254, |
186 | i18nc("length unit symbol" , "in" ), |
187 | i18nc("unit description in lists" , "inches" ), |
188 | i18nc("unit synonyms for matching user input" , "inch;inches;in;\"" ), |
189 | ki18nc("amount in units (real)" , "%1 inches" ), |
190 | ki18ncp("amount in units (integer)" , "%1 inch" , "%1 inches" ) |
191 | ); |
192 | U(Thou, 0.0000254, |
193 | i18nc("length unit symbol" , "thou" ), |
194 | i18nc("unit description in lists" , "thousandths of an inch" ), |
195 | i18nc("unit synonyms for matching user input" , "thou;mil;point;thousandth of an inch;thousandths of an inch" ), |
196 | ki18nc("amount in units (real)" , "%1 thousandths of an inch" ), |
197 | ki18ncp("amount in units (integer)" , "%1 thousandth of an inch" , "%1 thousandths of an inch" ) |
198 | ); |
199 | U(Foot, 0.3048, |
200 | i18nc("length unit symbol" , "ft" ), |
201 | i18nc("unit description in lists" , "feet" ), |
202 | i18nc("unit synonyms for matching user input" , "foot;feet;ft" ), |
203 | ki18nc("amount in units (real)" , "%1 feet" ), |
204 | ki18ncp("amount in units (integer)" , "%1 foot" , "%1 feet" ) |
205 | ); |
206 | U(Yard, 0.9144, |
207 | i18nc("length unit symbol" , "yd" ), |
208 | i18nc("unit description in lists" , "yards" ), |
209 | i18nc("unit synonyms for matching user input" , "yard;yards;yd" ), |
210 | ki18nc("amount in units (real)" , "%1 yards" ), |
211 | ki18ncp("amount in units (integer)" , "%1 yard" , "%1 yards" ) |
212 | ); |
213 | U(Mile, 1609.34, |
214 | i18nc("length unit symbol" , "mi" ), |
215 | i18nc("unit description in lists" , "miles" ), |
216 | i18nc("unit synonyms for matching user input" , "mile;miles;mi" ), |
217 | ki18nc("amount in units (real)" , "%1 miles" ), |
218 | ki18ncp("amount in units (integer)" , "%1 mile" , "%1 miles" ) |
219 | ); |
220 | U(NauticalMile, 1852, |
221 | i18nc("length unit symbol" , "nmi" ), |
222 | i18nc("unit description in lists" , "nautical miles" ), |
223 | i18nc("unit synonyms for matching user input" , "nautical mile;nautical miles;nmi" ), |
224 | ki18nc("amount in units (real)" , "%1 nautical miles" ), |
225 | ki18ncp("amount in units (integer)" , "%1 nautical mile" , "%1 nautical miles" ) |
226 | ); |
227 | U(LightYear, 9.46073e+15, |
228 | i18nc("length unit symbol" , "ly" ), |
229 | i18nc("unit description in lists" , "light-years" ), |
230 | i18nc("unit synonyms for matching user input" , |
231 | "light-year;light-years;ly;lightyear;lightyears" ), |
232 | ki18nc("amount in units (real)" , "%1 light-years" ), |
233 | ki18ncp("amount in units (integer)" , "%1 light-year" , "%1 light-years" ) |
234 | ); |
235 | U(Parsec, 3.08568e+16, |
236 | i18nc("length unit symbol" , "pc" ), |
237 | i18nc("unit description in lists" , "parsecs" ), |
238 | i18nc("unit synonyms for matching user input" , "parsec;parsecs;pc" ), |
239 | ki18nc("amount in units (real)" , "%1 parsecs" ), |
240 | ki18ncp("amount in units (integer)" , "%1 parsec" , "%1 parsecs" ) |
241 | ); |
242 | U(AstronomicalUnit, 1.49598e+11, |
243 | i18nc("length unit symbol" , "au" ), |
244 | i18nc("unit description in lists" , "astronomical units" ), |
245 | i18nc("unit synonyms for matching user input" , "astronomical unit;astronomical units;au" ), |
246 | ki18nc("amount in units (real)" , "%1 astronomical units" ), |
247 | ki18ncp("amount in units (integer)" , "%1 astronomical unit" , "%1 astronomical units" ) |
248 | ); |
249 | |
250 | setMostCommonUnits(QList<int>() << |
251 | Kilometer << Meter << Centimeter << Millimeter << Mile << Yard << Foot << Inch); |
252 | } |
253 | |
254 | |