1 | /* |
2 | * SPDX-FileCopyrightText: 2007-2009 Petri Damstén <damu@iki.fi> |
3 | * SPDX-FileCopyrightText: 2014 John Layt <jlayt@kde.org> |
4 | * |
5 | * SPDX-License-Identifier: LGPL-2.0-or-later |
6 | */ |
7 | |
8 | #include "area_p.h" |
9 | #include "unit_p.h" |
10 | |
11 | #include <KLocalizedString> |
12 | |
13 | namespace KUnitConversion |
14 | { |
15 | |
16 | UnitCategory Area::makeCategory() |
17 | { |
18 | auto c = UnitCategoryPrivate::makeCategory(id: AreaCategory, |
19 | i18nc("Unit Category: two dimensional size of a surface" , "Area" ), |
20 | i18nc("Unit Category: two dimensional size of a surface" , "Area" )); |
21 | auto d = UnitCategoryPrivate::get(category: c); |
22 | // i18n: Used when converting to symbol string e.g. 2.34 m² |
23 | KLocalizedString symbolString = ki18nc("%1 value, %2 unit symbol (area)" , "%1 %2" ); |
24 | |
25 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
26 | id: SquareYottameter, |
27 | multiplier: 1e+48, |
28 | // i18n: Used when unit symbol is needed. |
29 | i18nc("area unit symbol" , "Ym²" ), |
30 | // i18n: unit as it will be shown to user wherever units are to |
31 | // be explicitly selected (listbox, radio buttons, checkboxes...). |
32 | // E.g. an application may give option "Unit of wind speed: [unit-list-box]" |
33 | i18nc("unit description in lists" , "square yottameters" ), |
34 | // i18n: Messages such as this one provide synonyms for each unit, |
35 | // in order to guess the unit from the text that the user inputs. |
36 | // Synonyms are semicolon-separated, and you can add as many as |
37 | // you need (either equal to, more, or less than in the original). |
38 | // Note that any gramatical inflections of unit names |
39 | // (such as plural and cases) should also be listed. |
40 | i18nc("unit synonyms for matching user input" , "square yottameter;square yottameters;Ym²;Ym/-2;Ym^2;Ym2" ), |
41 | symbolString, |
42 | // i18n: This is used when a real-valued amount in units is given, |
43 | // such as "0.37 miles". |
44 | ki18nc("amount in units (real)" , "%1 square yottameters" ), |
45 | // i18n: This is used when a integer-valued amount in units is given, |
46 | // such as "1 mile" or "21 miles". |
47 | ki18ncp("amount in units (integer)" , "%1 square yottameter" , "%1 square yottameters" ))); |
48 | |
49 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
50 | id: SquareZettameter, |
51 | multiplier: 1e+42, |
52 | i18nc("area unit symbol" , "Zm²" ), |
53 | i18nc("unit description in lists" , "square zettameters" ), |
54 | i18nc("unit synonyms for matching user input" , "square zettameter;square zettameters;Zm²;Zm/-2;Zm^2;Zm2" ), |
55 | symbolString, |
56 | ki18nc("amount in units (real)" , "%1 square zettameters" ), |
57 | ki18ncp("amount in units (integer)" , "%1 square zettameter" , "%1 square zettameters" ))); |
58 | |
59 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
60 | id: SquareExameter, |
61 | multiplier: 1e+36, |
62 | i18nc("area unit symbol" , "Em²" ), |
63 | i18nc("unit description in lists" , "square exameters" ), |
64 | i18nc("unit synonyms for matching user input" , "square exameter;square exameters;Em²;Em/-2;Em^2;Em2" ), |
65 | symbolString, |
66 | ki18nc("amount in units (real)" , "%1 square exameters" ), |
67 | ki18ncp("amount in units (integer)" , "%1 square exameter" , "%1 square exameters" ))); |
68 | |
69 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
70 | id: SquarePetameter, |
71 | multiplier: 1e+30, |
72 | i18nc("area unit symbol" , "Pm²" ), |
73 | i18nc("unit description in lists" , "square petameters" ), |
74 | i18nc("unit synonyms for matching user input" , "square petameter;square petameters;Pm²;Pm/-2;Pm^2;Pm2" ), |
75 | symbolString, |
76 | ki18nc("amount in units (real)" , "%1 square petameters" ), |
77 | ki18ncp("amount in units (integer)" , "%1 square petameter" , "%1 square petameters" ))); |
78 | |
79 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
80 | id: SquareTerameter, |
81 | multiplier: 1e+24, |
82 | i18nc("area unit symbol" , "Tm²" ), |
83 | i18nc("unit description in lists" , "square terameters" ), |
84 | i18nc("unit synonyms for matching user input" , "square terameter;square terameters;Tm²;Tm/-2;Tm^2;Tm2" ), |
85 | symbolString, |
86 | ki18nc("amount in units (real)" , "%1 square terameters" ), |
87 | ki18ncp("amount in units (integer)" , "%1 square terameter" , "%1 square terameters" ))); |
88 | |
89 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
90 | id: SquareGigameter, |
91 | multiplier: 1e+18, |
92 | i18nc("area unit symbol" , "Gm²" ), |
93 | i18nc("unit description in lists" , "square gigameters" ), |
94 | i18nc("unit synonyms for matching user input" , "square gigameter;square gigameters;Gm²;Gm/-2;Gm^2;Gm2" ), |
95 | symbolString, |
96 | ki18nc("amount in units (real)" , "%1 square gigameters" ), |
97 | ki18ncp("amount in units (integer)" , "%1 square gigameter" , "%1 square gigameters" ))); |
98 | |
99 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
100 | id: SquareMegameter, |
101 | multiplier: 1e+12, |
102 | i18nc("area unit symbol" , "Mm²" ), |
103 | i18nc("unit description in lists" , "square megameters" ), |
104 | i18nc("unit synonyms for matching user input" , "square megameter;square megameters;Mm²;Mm/-2;Mm^2;Mm2" ), |
105 | symbolString, |
106 | ki18nc("amount in units (real)" , "%1 square megameters" ), |
107 | ki18ncp("amount in units (integer)" , "%1 square megameter" , "%1 square megameters" ))); |
108 | |
109 | d->addCommonUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
110 | id: SquareKilometer, |
111 | multiplier: 1e+06, |
112 | i18nc("area unit symbol" , "km²" ), |
113 | i18nc("unit description in lists" , "square kilometers" ), |
114 | i18nc("unit synonyms for matching user input" , "square kilometer;square kilometers;sq km;km²;km/-2;km^2;km2" ), |
115 | symbolString, |
116 | ki18nc("amount in units (real)" , "%1 square kilometers" ), |
117 | ki18ncp("amount in units (integer)" , "%1 square kilometer" , "%1 square kilometers" ))); |
118 | |
119 | d->addCommonUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
120 | id: SquareHectometer, |
121 | multiplier: 10000, |
122 | i18nc("area unit symbol" , "hm²" ), |
123 | i18nc("unit description in lists" , "square hectometers" ), |
124 | i18nc("unit synonyms for matching user input" , "square hectometer;square hectometers;hm²;hm/-2;hm^2;hm2;hectare;hectares" ), |
125 | symbolString, |
126 | ki18nc("amount in units (real)" , "%1 square hectometers" ), |
127 | ki18ncp("amount in units (integer)" , "%1 square hectometer" , "%1 square hectometers" ))); |
128 | |
129 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
130 | id: SquareDecameter, |
131 | multiplier: 100, |
132 | i18nc("area unit symbol" , "dam²" ), |
133 | i18nc("unit description in lists" , "square decameters" ), |
134 | i18nc("unit synonyms for matching user input" , "square decameter;square decameters;dam²;dam/-2;dam^2;dam2" ), |
135 | symbolString, |
136 | ki18nc("amount in units (real)" , "%1 square decameters" ), |
137 | ki18ncp("amount in units (integer)" , "%1 square decameter" , "%1 square decameters" ))); |
138 | |
139 | d->addDefaultUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
140 | id: SquareMeter, |
141 | multiplier: 1, |
142 | i18nc("area unit symbol" , "m²" ), |
143 | i18nc("unit description in lists" , "square meters" ), |
144 | i18nc("unit synonyms for matching user input" , "square meter;square meters;sq m;m²;m/-2;m^2;m2" ), |
145 | symbolString, |
146 | ki18nc("amount in units (real)" , "%1 square meters" ), |
147 | ki18ncp("amount in units (integer)" , "%1 square meter" , "%1 square meters" ))); |
148 | |
149 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
150 | id: SquareDecimeter, |
151 | multiplier: 0.01, |
152 | i18nc("area unit symbol" , "dm²" ), |
153 | i18nc("unit description in lists" , "square decimeters" ), |
154 | i18nc("unit synonyms for matching user input" , "square decimeter;square decimeters;dm²;dm/-2;dm^2;dm2" ), |
155 | symbolString, |
156 | ki18nc("amount in units (real)" , "%1 square decimeters" ), |
157 | ki18ncp("amount in units (integer)" , "%1 square decimeter" , "%1 square decimeters" ))); |
158 | |
159 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
160 | id: SquareCentimeter, |
161 | multiplier: 0.0001, |
162 | i18nc("area unit symbol" , "cm²" ), |
163 | i18nc("unit description in lists" , "square centimeters" ), |
164 | i18nc("unit synonyms for matching user input" , "square centimeter;square centimeters;sq cm;cm²;cm/-2;cm^2;cm2" ), |
165 | symbolString, |
166 | ki18nc("amount in units (real)" , "%1 square centimeters" ), |
167 | ki18ncp("amount in units (integer)" , "%1 square centimeter" , "%1 square centimeters" ))); |
168 | |
169 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
170 | id: SquareMillimeter, |
171 | multiplier: 1e-06, |
172 | i18nc("area unit symbol" , "mm²" ), |
173 | i18nc("unit description in lists" , "square millimeters" ), |
174 | i18nc("unit synonyms for matching user input" , "square millimeter;square millimeters;sq mm;mm²;mm/-2;mm^2;mm2" ), |
175 | symbolString, |
176 | ki18nc("amount in units (real)" , "%1 square millimeters" ), |
177 | ki18ncp("amount in units (integer)" , "%1 square millimeter" , "%1 square millimeters" ))); |
178 | |
179 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
180 | id: SquareMicrometer, |
181 | multiplier: 1e-12, |
182 | i18nc("area unit symbol" , "µm²" ), |
183 | i18nc("unit description in lists" , "square micrometers" ), |
184 | i18nc("unit synonyms for matching user input" , "square micrometer;square micrometers;µm²;um²;µm/-2;µm^2;µm2" ), |
185 | symbolString, |
186 | ki18nc("amount in units (real)" , "%1 square micrometers" ), |
187 | ki18ncp("amount in units (integer)" , "%1 square micrometer" , "%1 square micrometers" ))); |
188 | |
189 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
190 | id: SquareNanometer, |
191 | multiplier: 1e-18, |
192 | i18nc("area unit symbol" , "nm²" ), |
193 | i18nc("unit description in lists" , "square nanometers" ), |
194 | i18nc("unit synonyms for matching user input" , "square nanometer;square nanometers;nm²;nm/-2;nm^2;nm2" ), |
195 | symbolString, |
196 | ki18nc("amount in units (real)" , "%1 square nanometers" ), |
197 | ki18ncp("amount in units (integer)" , "%1 square nanometer" , "%1 square nanometers" ))); |
198 | |
199 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
200 | id: SquarePicometer, |
201 | multiplier: 1e-24, |
202 | i18nc("area unit symbol" , "pm²" ), |
203 | i18nc("unit description in lists" , "square picometers" ), |
204 | i18nc("unit synonyms for matching user input" , "square picometer;square picometers;pm²;pm/-2;pm^2;pm2" ), |
205 | symbolString, |
206 | ki18nc("amount in units (real)" , "%1 square picometers" ), |
207 | ki18ncp("amount in units (integer)" , "%1 square picometer" , "%1 square picometers" ))); |
208 | |
209 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
210 | id: SquareFemtometer, |
211 | multiplier: 1e-30, |
212 | i18nc("area unit symbol" , "fm²" ), |
213 | i18nc("unit description in lists" , "square femtometers" ), |
214 | i18nc("unit synonyms for matching user input" , "square femtometer;square femtometers;fm²;fm/-2;fm^2;fm2" ), |
215 | symbolString, |
216 | ki18nc("amount in units (real)" , "%1 square femtometers" ), |
217 | ki18ncp("amount in units (integer)" , "%1 square femtometer" , "%1 square femtometers" ))); |
218 | |
219 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
220 | id: SquareAttometer, |
221 | multiplier: 1e-36, |
222 | i18nc("area unit symbol" , "am²" ), |
223 | i18nc("unit description in lists" , "square attometers" ), |
224 | i18nc("unit synonyms for matching user input" , "square attometer;square attometers;am²;am/-2;am^2;am2" ), |
225 | symbolString, |
226 | ki18nc("amount in units (real)" , "%1 square attometers" ), |
227 | ki18ncp("amount in units (integer)" , "%1 square attometer" , "%1 square attometers" ))); |
228 | |
229 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
230 | id: SquareZeptometer, |
231 | multiplier: 1e-42, |
232 | i18nc("area unit symbol" , "zm²" ), |
233 | i18nc("unit description in lists" , "square zeptometers" ), |
234 | i18nc("unit synonyms for matching user input" , "square zeptometer;square zeptometers;zm²;zm/-2;zm^2;zm2" ), |
235 | symbolString, |
236 | ki18nc("amount in units (real)" , "%1 square zeptometers" ), |
237 | ki18ncp("amount in units (integer)" , "%1 square zeptometer" , "%1 square zeptometers" ))); |
238 | |
239 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
240 | id: SquareYoctometer, |
241 | multiplier: 1e-48, |
242 | i18nc("area unit symbol" , "ym²" ), |
243 | i18nc("unit description in lists" , "square yoctometers" ), |
244 | i18nc("unit synonyms for matching user input" , "square yoctometer;square yoctometers;ym²;ym/-2;ym^2;ym2" ), |
245 | symbolString, |
246 | ki18nc("amount in units (real)" , "%1 square yoctometers" ), |
247 | ki18ncp("amount in units (integer)" , "%1 square yoctometer" , "%1 square yoctometers" ))); |
248 | |
249 | d->addCommonUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
250 | id: Acre, |
251 | multiplier: 4046.86, |
252 | i18nc("area unit symbol" , "acre" ), |
253 | i18nc("unit description in lists" , "acres" ), |
254 | i18nc("unit synonyms for matching user input" , "acre;acres" ), |
255 | symbolString, |
256 | ki18nc("amount in units (real)" , "%1 acres" ), |
257 | ki18ncp("amount in units (integer)" , "%1 acre" , "%1 acres" ))); |
258 | |
259 | d->addCommonUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
260 | id: SquareFoot, |
261 | multiplier: 0.092903, |
262 | i18nc("area unit symbol" , "ft²" ), |
263 | i18nc("unit description in lists" , "square feet" ), |
264 | i18nc("unit synonyms for matching user input" , "square foot;square feet;ft²;square ft;sq foot;sq ft;sq feet;feet²" ), |
265 | symbolString, |
266 | ki18nc("amount in units (real)" , "%1 square feet" ), |
267 | ki18ncp("amount in units (integer)" , "%1 square foot" , "%1 square feet" ))); |
268 | |
269 | d->addUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
270 | id: SquareInch, |
271 | multiplier: 0.00064516, |
272 | i18nc("area unit symbol" , "in²" ), |
273 | i18nc("unit description in lists" , "square inches" ), |
274 | i18nc("unit synonyms for matching user input" , "square inch;square inches;in²;square inch;square in;sq inches;sq inch;sq in;inch²" ), |
275 | symbolString, |
276 | ki18nc("amount in units (real)" , "%1 square inches" ), |
277 | ki18ncp("amount in units (integer)" , "%1 square inch" , "%1 square inches" ))); |
278 | |
279 | d->addCommonUnit(unit: UnitPrivate::makeUnit(categoryId: AreaCategory, |
280 | id: SquareMile, |
281 | multiplier: 2.58999e+06, |
282 | i18nc("area unit symbol" , "mi²" ), |
283 | i18nc("unit description in lists" , "square miles" ), |
284 | i18nc("unit synonyms for matching user input" , "square mile;square miles;mi²;square mi;sq miles;sq mile;sq mi;mile²" ), |
285 | symbolString, |
286 | ki18nc("amount in units (real)" , "%1 square miles" ), |
287 | ki18ncp("amount in units (integer)" , "%1 square mile" , "%1 square miles" ))); |
288 | |
289 | return c; |
290 | } |
291 | |
292 | } // KUnitConversion namespace |
293 | |