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 "volume.h"
21#include "converter.h"
22#include <klocale.h>
23
24using namespace KUnitConversion;
25
26Volume::Volume() : UnitCategory(VolumeCategory)
27{
28 setName(i18n("Volume"));
29 setSymbolStringFormat(ki18nc("%1 value, %2 unit symbol (volume)", "%1 %2"));
30
31 U(CubicYottameter, 1e+72,
32 i18nc("volume unit symbol", "Ym³"),
33 i18nc("unit description in lists", "cubic yottameters"),
34 i18nc("unit synonyms for matching user input",
35 "cubic yottameter;cubic yottameters;Ym³;Ym/-3;Ym^3;Ym3"),
36 ki18nc("amount in units (real)", "%1 cubic yottameters"),
37 ki18ncp("amount in units (integer)", "%1 cubic yottameter", "%1 cubic yottameters")
38 );
39 U(CubicZettameter, 1e+63,
40 i18nc("volume unit symbol", "Zm³"),
41 i18nc("unit description in lists", "cubic zettameters"),
42 i18nc("unit synonyms for matching user input",
43 "cubic zettameter;cubic zettameters;Zm³;Zm/-3;Zm^3;Zm3"),
44 ki18nc("amount in units (real)", "%1 cubic zettameters"),
45 ki18ncp("amount in units (integer)", "%1 cubic zettameter", "%1 cubic zettameters")
46 );
47 U(CubicExameter, 1e+54,
48 i18nc("volume unit symbol", "Em³"),
49 i18nc("unit description in lists", "cubic exameters"),
50 i18nc("unit synonyms for matching user input",
51 "cubic exameter;cubic exameters;Em³;Em/-3;Em^3;Em3"),
52 ki18nc("amount in units (real)", "%1 cubic exameters"),
53 ki18ncp("amount in units (integer)", "%1 cubic exameter", "%1 cubic exameters")
54 );
55 U(CubicPetameter, 1e+45,
56 i18nc("volume unit symbol", "Pm³"),
57 i18nc("unit description in lists", "cubic petameters"),
58 i18nc("unit synonyms for matching user input",
59 "cubic petameter;cubic petameters;Pm³;Pm/-3;Pm^3;Pm3"),
60 ki18nc("amount in units (real)", "%1 cubic petameters"),
61 ki18ncp("amount in units (integer)", "%1 cubic petameter", "%1 cubic petameters")
62 );
63 U(CubicTerameter, 1e+36,
64 i18nc("volume unit symbol", "Tm³"),
65 i18nc("unit description in lists", "cubic terameters"),
66 i18nc("unit synonyms for matching user input",
67 "cubic terameter;cubic terameters;Tm³;Tm/-3;Tm^3;Tm3"),
68 ki18nc("amount in units (real)", "%1 cubic terameters"),
69 ki18ncp("amount in units (integer)", "%1 cubic terameter", "%1 cubic terameters")
70 );
71 U(CubicGigameter, 1e+27,
72 i18nc("volume unit symbol", "Gm³"),
73 i18nc("unit description in lists", "cubic gigameters"),
74 i18nc("unit synonyms for matching user input",
75 "cubic gigameter;cubic gigameters;Gm³;Gm/-3;Gm^3;Gm3"),
76 ki18nc("amount in units (real)", "%1 cubic gigameters"),
77 ki18ncp("amount in units (integer)", "%1 cubic gigameter", "%1 cubic gigameters")
78 );
79 U(CubicMegameter, 1e+18,
80 i18nc("volume unit symbol", "Mm³"),
81 i18nc("unit description in lists", "cubic megameters"),
82 i18nc("unit synonyms for matching user input",
83 "cubic megameter;cubic megameters;Mm³;Mm/-3;Mm^3;Mm3"),
84 ki18nc("amount in units (real)", "%1 cubic megameters"),
85 ki18ncp("amount in units (integer)", "%1 cubic megameter", "%1 cubic megameters")
86 );
87 U(CubicKilometer, 1e+09,
88 i18nc("volume unit symbol", "km³"),
89 i18nc("unit description in lists", "cubic kilometers"),
90 i18nc("unit synonyms for matching user input",
91 "cubic kilometer;cubic kilometers;km³;km/-3;km^3;km3"),
92 ki18nc("amount in units (real)", "%1 cubic kilometers"),
93 ki18ncp("amount in units (integer)", "%1 cubic kilometer", "%1 cubic kilometers")
94 );
95 U(CubicHectometer, 1e+06,
96 i18nc("volume unit symbol", "hm³"),
97 i18nc("unit description in lists", "cubic hectometers"),
98 i18nc("unit synonyms for matching user input",
99 "cubic hectometer;cubic hectometers;hm³;hm/-3;hm^3;hm3"),
100 ki18nc("amount in units (real)", "%1 cubic hectometers"),
101 ki18ncp("amount in units (integer)", "%1 cubic hectometer", "%1 cubic hectometers")
102 );
103 U(CubicDecameter, 1000,
104 i18nc("volume unit symbol", "dam³"),
105 i18nc("unit description in lists", "cubic decameters"),
106 i18nc("unit synonyms for matching user input",
107 "cubic decameter;cubic decameters;dam³;dam/-3;dam^3;dam3"),
108 ki18nc("amount in units (real)", "%1 cubic decameters"),
109 ki18ncp("amount in units (integer)", "%1 cubic decameter", "%1 cubic decameters")
110 );
111 U(CubicMeter, 1,
112 i18nc("volume unit symbol", "m³"),
113 i18nc("unit description in lists", "cubic meters"),
114 i18nc("unit synonyms for matching user input",
115 "cubic meter;cubic meters;m³;m/-3;m^3;m3"),
116 ki18nc("amount in units (real)", "%1 cubic meters"),
117 ki18ncp("amount in units (integer)", "%1 cubic meter", "%1 cubic meters")
118 );
119 U(CubicDecimeter, 0.001,
120 i18nc("volume unit symbol", "dm³"),
121 i18nc("unit description in lists", "cubic decimeters"),
122 i18nc("unit synonyms for matching user input",
123 "cubic decimeter;cubic decimeters;dm³;dm/-3;dm^3;dm3"),
124 ki18nc("amount in units (real)", "%1 cubic decimeters"),
125 ki18ncp("amount in units (integer)", "%1 cubic decimeter", "%1 cubic decimeters")
126 );
127 U(CubicCentimeter, 1e-06,
128 i18nc("volume unit symbol", "cm³"),
129 i18nc("unit description in lists", "cubic centimeters"),
130 i18nc("unit synonyms for matching user input",
131 "cubic centimeter;cubic centimeters;cm³;cm/-3;cm^3;cm3"),
132 ki18nc("amount in units (real)", "%1 cubic centimeters"),
133 ki18ncp("amount in units (integer)", "%1 cubic centimeter", "%1 cubic centimeters")
134 );
135 U(CubicMillimeter, 1e-09,
136 i18nc("volume unit symbol", "mm³"),
137 i18nc("unit description in lists", "cubic millimeters"),
138 i18nc("unit synonyms for matching user input",
139 "cubic millimeter;cubic millimeters;mm³;mm/-3;mm^3;mm3"),
140 ki18nc("amount in units (real)", "%1 cubic millimeters"),
141 ki18ncp("amount in units (integer)", "%1 cubic millimeter", "%1 cubic millimeters")
142 );
143 U(CubicMicrometer, 1e-18,
144 i18nc("volume unit symbol", "µm³"),
145 i18nc("unit description in lists", "cubic micrometers"),
146 i18nc("unit synonyms for matching user input",
147 "cubic micrometer;cubic micrometers;µm³;um³;µm/-3;µm^3;µm3"),
148 ki18nc("amount in units (real)", "%1 cubic micrometers"),
149 ki18ncp("amount in units (integer)", "%1 cubic micrometer", "%1 cubic micrometers")
150 );
151 U(CubicNanometer, 1e-27,
152 i18nc("volume unit symbol", "nm³"),
153 i18nc("unit description in lists", "cubic nanometers"),
154 i18nc("unit synonyms for matching user input",
155 "cubic nanometer;cubic nanometers;nm³;nm/-3;nm^3;nm3"),
156 ki18nc("amount in units (real)", "%1 cubic nanometers"),
157 ki18ncp("amount in units (integer)", "%1 cubic nanometer", "%1 cubic nanometers")
158 );
159 U(CubicPicometer, 1e-36,
160 i18nc("volume unit symbol", "pm³"),
161 i18nc("unit description in lists", "cubic picometers"),
162 i18nc("unit synonyms for matching user input",
163 "cubic picometer;cubic picometers;pm³;pm/-3;pm^3;pm3"),
164 ki18nc("amount in units (real)", "%1 cubic picometers"),
165 ki18ncp("amount in units (integer)", "%1 cubic picometer", "%1 cubic picometers")
166 );
167 U(CubicFemtometer, 1e-45,
168 i18nc("volume unit symbol", "fm³"),
169 i18nc("unit description in lists", "cubic femtometers"),
170 i18nc("unit synonyms for matching user input",
171 "cubic femtometer;cubic femtometers;fm³;fm/-3;fm^3;fm3"),
172 ki18nc("amount in units (real)", "%1 cubic femtometers"),
173 ki18ncp("amount in units (integer)", "%1 cubic femtometer", "%1 cubic femtometers")
174 );
175 U(CubicAttometer, 1e-54,
176 i18nc("volume unit symbol", "am³"),
177 i18nc("unit description in lists", "cubic attometers"),
178 i18nc("unit synonyms for matching user input",
179 "cubic attometer;cubic attometers;am³;am/-3;am^3;am3"),
180 ki18nc("amount in units (real)", "%1 cubic attometers"),
181 ki18ncp("amount in units (integer)", "%1 cubic attometer", "%1 cubic attometers")
182 );
183 U(CubicZeptometer, 1e-63,
184 i18nc("volume unit symbol", "zm³"),
185 i18nc("unit description in lists", "cubic zeptometers"),
186 i18nc("unit synonyms for matching user input",
187 "cubic zeptometer;cubic zeptometers;zm³;zm/-3;zm^3;zm3"),
188 ki18nc("amount in units (real)", "%1 cubic zeptometers"),
189 ki18ncp("amount in units (integer)", "%1 cubic zeptometer", "%1 cubic zeptometers")
190 );
191 U(CubicYoctometer, 1e-72,
192 i18nc("volume unit symbol", "ym³"),
193 i18nc("unit description in lists", "cubic yoctometers"),
194 i18nc("unit synonyms for matching user input",
195 "cubic yoctometer;cubic yoctometers;ym³;ym/-3;ym^3;ym3"),
196 ki18nc("amount in units (real)", "%1 cubic yoctometers"),
197 ki18ncp("amount in units (integer)", "%1 cubic yoctometer", "%1 cubic yoctometers")
198 );
199 U(Yottaliter, 1e+21,
200 i18nc("volume unit symbol", "Yl"),
201 i18nc("unit description in lists", "yottaliters"),
202 i18nc("unit synonyms for matching user input", "yottaliter;yottaliters;Yl"),
203 ki18nc("amount in units (real)", "%1 yottaliters"),
204 ki18ncp("amount in units (integer)", "%1 yottaliter", "%1 yottaliters")
205 );
206 U(Zettaliter, 1e+18,
207 i18nc("volume unit symbol", "Zl"),
208 i18nc("unit description in lists", "zettaliters"),
209 i18nc("unit synonyms for matching user input", "zettaliter;zettaliters;Zl"),
210 ki18nc("amount in units (real)", "%1 zettaliters"),
211 ki18ncp("amount in units (integer)", "%1 zettaliter", "%1 zettaliters")
212 );
213 U(Exaliter, 1e+15,
214 i18nc("volume unit symbol", "El"),
215 i18nc("unit description in lists", "exaliters"),
216 i18nc("unit synonyms for matching user input", "exaliter;exaliters;El"),
217 ki18nc("amount in units (real)", "%1 exaliters"),
218 ki18ncp("amount in units (integer)", "%1 exaliter", "%1 exaliters")
219 );
220 U(Petaliter, 1e+12,
221 i18nc("volume unit symbol", "Pl"),
222 i18nc("unit description in lists", "petaliters"),
223 i18nc("unit synonyms for matching user input", "petaliter;petaliters;Pl"),
224 ki18nc("amount in units (real)", "%1 petaliters"),
225 ki18ncp("amount in units (integer)", "%1 petaliter", "%1 petaliters")
226 );
227 U(Teraliter, 1e+09,
228 i18nc("volume unit symbol", "Tl"),
229 i18nc("unit description in lists", "teraliters"),
230 i18nc("unit synonyms for matching user input", "teraliter;teraliters;Tl"),
231 ki18nc("amount in units (real)", "%1 teraliters"),
232 ki18ncp("amount in units (integer)", "%1 teraliter", "%1 teraliters")
233 );
234 U(Gigaliter, 1e+06,
235 i18nc("volume unit symbol", "Gl"),
236 i18nc("unit description in lists", "gigaliters"),
237 i18nc("unit synonyms for matching user input", "gigaliter;gigaliters;Gl"),
238 ki18nc("amount in units (real)", "%1 gigaliters"),
239 ki18ncp("amount in units (integer)", "%1 gigaliter", "%1 gigaliters")
240 );
241 U(Megaliter, 1000,
242 i18nc("volume unit symbol", "Ml"),
243 i18nc("unit description in lists", "megaliters"),
244 i18nc("unit synonyms for matching user input", "megaliter;megaliters;Ml"),
245 ki18nc("amount in units (real)", "%1 megaliters"),
246 ki18ncp("amount in units (integer)", "%1 megaliter", "%1 megaliters")
247 );
248 setDefaultUnit(UP(Kiloliter, 1,
249 i18nc("volume unit symbol", "kl"),
250 i18nc("unit description in lists", "kiloliters"),
251 i18nc("unit synonyms for matching user input", "kiloliter;kiloliters;kl"),
252 ki18nc("amount in units (real)", "%1 kiloliters"),
253 ki18ncp("amount in units (integer)", "%1 kiloliter", "%1 kiloliters")
254 ));
255 U(Hectoliter, 0.1,
256 i18nc("volume unit symbol", "hl"),
257 i18nc("unit description in lists", "hectoliters"),
258 i18nc("unit synonyms for matching user input", "hectoliter;hectoliters;hl"),
259 ki18nc("amount in units (real)", "%1 hectoliters"),
260 ki18ncp("amount in units (integer)", "%1 hectoliter", "%1 hectoliters")
261 );
262 U(Decaliter, 0.01,
263 i18nc("volume unit symbol", "dal"),
264 i18nc("unit description in lists", "decaliters"),
265 i18nc("unit synonyms for matching user input", "decaliter;decaliters;dal"),
266 ki18nc("amount in units (real)", "%1 decaliters"),
267 ki18ncp("amount in units (integer)", "%1 decaliter", "%1 decaliters")
268 );
269 U(Liter, 0.001,
270 i18nc("volume unit symbol", "l"),
271 i18nc("unit description in lists", "liters"),
272 i18nc("unit synonyms for matching user input", "liter;liters;l"),
273 ki18nc("amount in units (real)", "%1 liters"),
274 ki18ncp("amount in units (integer)", "%1 liter", "%1 liters")
275 );
276 U(Deciliter, 0.0001,
277 i18nc("volume unit symbol", "dl"),
278 i18nc("unit description in lists", "deciliters"),
279 i18nc("unit synonyms for matching user input", "deciliter;deciliters;dl"),
280 ki18nc("amount in units (real)", "%1 deciliters"),
281 ki18ncp("amount in units (integer)", "%1 deciliter", "%1 deciliters")
282 );
283 U(Centiliter, 1e-05,
284 i18nc("volume unit symbol", "cl"),
285 i18nc("unit description in lists", "centiliters"),
286 i18nc("unit synonyms for matching user input", "centiliter;centiliters;cl"),
287 ki18nc("amount in units (real)", "%1 centiliters"),
288 ki18ncp("amount in units (integer)", "%1 centiliter", "%1 centiliters")
289 );
290 U(Milliliter, 1e-06,
291 i18nc("volume unit symbol", "ml"),
292 i18nc("unit description in lists", "milliliters"),
293 i18nc("unit synonyms for matching user input", "milliliter;milliliters;ml"),
294 ki18nc("amount in units (real)", "%1 milliliters"),
295 ki18ncp("amount in units (integer)", "%1 milliliter", "%1 milliliters")
296 );
297 U(Microliter, 1e-09,
298 i18nc("volume unit symbol", "µl"),
299 i18nc("unit description in lists", "microliters"),
300 i18nc("unit synonyms for matching user input", "microliter;microliters;µl;ul"),
301 ki18nc("amount in units (real)", "%1 microliters"),
302 ki18ncp("amount in units (integer)", "%1 microliter", "%1 microliters")
303 );
304 U(Nanoliter, 1e-12,
305 i18nc("volume unit symbol", "nl"),
306 i18nc("unit description in lists", "nanoliters"),
307 i18nc("unit synonyms for matching user input", "nanoliter;nanoliters;nl"),
308 ki18nc("amount in units (real)", "%1 nanoliters"),
309 ki18ncp("amount in units (integer)", "%1 nanoliter", "%1 nanoliters")
310 );
311 U(Picoliter, 1e-15,
312 i18nc("volume unit symbol", "pl"),
313 i18nc("unit description in lists", "picoliters"),
314 i18nc("unit synonyms for matching user input", "picoliter;picoliters;pl"),
315 ki18nc("amount in units (real)", "%1 picoliters"),
316 ki18ncp("amount in units (integer)", "%1 picoliter", "%1 picoliters")
317 );
318 U(Femtoliter, 1e-18,
319 i18nc("volume unit symbol", "fl"),
320 i18nc("unit description in lists", "femtoliters"),
321 i18nc("unit synonyms for matching user input", "femtoliter;femtoliters;fl"),
322 ki18nc("amount in units (real)", "%1 femtoliters"),
323 ki18ncp("amount in units (integer)", "%1 femtoliter", "%1 femtoliters")
324 );
325 U(Attoliter, 1e-21,
326 i18nc("volume unit symbol", "al"),
327 i18nc("unit description in lists", "attoliters"),
328 i18nc("unit synonyms for matching user input", "attoliter;attoliters;al"),
329 ki18nc("amount in units (real)", "%1 attoliters"),
330 ki18ncp("amount in units (integer)", "%1 attoliter", "%1 attoliters")
331 );
332 U(Zeptoliter, 1e-24,
333 i18nc("volume unit symbol", "zl"),
334 i18nc("unit description in lists", "zeptoliters"),
335 i18nc("unit synonyms for matching user input", "zeptoliter;zeptoliters;zl"),
336 ki18nc("amount in units (real)", "%1 zeptoliters"),
337 ki18ncp("amount in units (integer)", "%1 zeptoliter", "%1 zeptoliters")
338 );
339 U(Yoctoliter, 1e-27,
340 i18nc("volume unit symbol", "yl"),
341 i18nc("unit description in lists", "yoctoliters"),
342 i18nc("unit synonyms for matching user input", "yoctoliter;yoctoliters;yl"),
343 ki18nc("amount in units (real)", "%1 yoctoliters"),
344 ki18ncp("amount in units (integer)", "%1 yoctoliter", "%1 yoctoliters")
345 );
346 U(CubicFoot, 0.0283168,
347 i18nc("volume unit symbol", "ft³"),
348 i18nc("unit description in lists", "cubic feet"),
349 i18nc("unit synonyms for matching user input",
350 "cubic foot;cubic feet;ft³;cubic ft;cu foot;cu ft;cu feet;feet³"),
351 ki18nc("amount in units (real)", "%1 cubic feet"),
352 ki18ncp("amount in units (integer)", "%1 cubic foot", "%1 cubic feet")
353 );
354 U(CubicInch, 1.63871e-05,
355 i18nc("volume unit symbol", "in³"),
356 i18nc("unit description in lists", "cubic inches"),
357 i18nc("unit synonyms for matching user input",
358 "cubic inch;cubic inches;in³;cubic inch;cubic in;cu inches;cu inch;cu in;inch³"),
359 ki18nc("amount in units (real)", "%1 cubic inches"),
360 ki18ncp("amount in units (integer)", "%1 cubic inch", "%1 cubic inches")
361 );
362 U(CubicMile, 4.16818e+09,
363 i18nc("volume unit symbol", "mi³"),
364 i18nc("unit description in lists", "cubic miles"),
365 i18nc("unit synonyms for matching user input",
366 "cubic mile;cubic miles;mi³;cubic mile;cubic mi;cu miles;cu mile;cu mi;mile³"),
367 ki18nc("amount in units (real)", "%1 cubic miles"),
368 ki18ncp("amount in units (integer)", "%1 cubic mile", "%1 cubic miles")
369 );
370 U(FluidOunce, 2.95735e-05,
371 i18nc("volume unit symbol", "fl.oz."),
372 i18nc("unit description in lists", "fluid ounces"),
373 i18nc("unit synonyms for matching user input",
374 "fluid ounce;fluid ounces;fl.oz.;oz.fl.;oz. fl.;fl. oz.;fl oz;fluid ounce"),
375 ki18nc("amount in units (real)", "%1 fluid ounces"),
376 ki18ncp("amount in units (integer)", "%1 fluid ounce", "%1 fluid ounces")
377 );
378 U(Cup, 0.000236588,
379 i18nc("volume unit symbol", "cp"),
380 i18nc("unit description in lists", "cups"),
381 i18nc("unit synonyms for matching user input", "cup;cups;cp"),
382 ki18nc("amount in units (real)", "%1 cups"),
383 ki18ncp("amount in units (integer)", "%1 cup", "%1 cups")
384 );
385 U(GallonUS, 0.00378541,
386 i18nc("volume unit symbol", "gal"),
387 i18nc("unit description in lists", "gallons (U.S. liquid)"),
388 i18nc("unit synonyms for matching user input",
389 "gallon (U.S. liquid);gallons (U.S. liquid);gal;gallon;gallons"),
390 ki18nc("amount in units (real)", "%1 gallons (U.S. liquid)"),
391 ki18ncp("amount in units (integer)", "%1 gallon (U.S. liquid)", "%1 gallons (U.S. liquid)")
392 );
393 U(PintImperial, 0.000568261,
394 i18nc("volume unit symbol", "pt"),
395 i18nc("unit description in lists", "pints (imperial)"),
396 i18nc("unit synonyms for matching user input",
397 "pint (imperial);pints (imperial);pt;pint;pints;p"),
398 ki18nc("amount in units (real)", "%1 pints (imperial)"),
399 ki18ncp("amount in units (integer)", "%1 pint (imperial)", "%1 pints (imperial)")
400 );
401
402 setMostCommonUnits(QList<int>() <<
403 Deciliter << Liter << GallonUS << FluidOunce << CubicMeter << Cup << PintImperial);
404}
405