File indexing completed on 2024-04-28 07:47:31
0001 /* 0002 * SPDX-FileCopyrightText: 2007-2009 Petri Damstén <damu@iki.fi> 0003 * SPDX-FileCopyrightText: 2014 John Layt <jlayt@kde.org> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "area_p.h" 0009 #include "unit_p.h" 0010 0011 #include <KLocalizedString> 0012 0013 namespace KUnitConversion 0014 { 0015 0016 UnitCategory Area::makeCategory() 0017 { 0018 auto c = UnitCategoryPrivate::makeCategory(AreaCategory, 0019 i18nc("Unit Category: two dimensional size of a surface", "Area"), 0020 i18nc("Unit Category: two dimensional size of a surface", "Area")); 0021 auto d = UnitCategoryPrivate::get(c); 0022 // i18n: Used when converting to symbol string e.g. 2.34 m² 0023 KLocalizedString symbolString = ki18nc("%1 value, %2 unit symbol (area)", "%1 %2"); 0024 0025 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0026 SquareYottameter, 0027 1e+48, 0028 // i18n: Used when unit symbol is needed. 0029 i18nc("area unit symbol", "Ym²"), 0030 // i18n: unit as it will be shown to user wherever units are to 0031 // be explicitly selected (listbox, radio buttons, checkboxes...). 0032 // E.g. an application may give option "Unit of wind speed: [unit-list-box]" 0033 i18nc("unit description in lists", "square yottameters"), 0034 // i18n: Messages such as this one provide synonyms for each unit, 0035 // in order to guess the unit from the text that the user inputs. 0036 // Synonyms are semicolon-separated, and you can add as many as 0037 // you need (either equal to, more, or less than in the original). 0038 // Note that any gramatical inflections of unit names 0039 // (such as plural and cases) should also be listed. 0040 i18nc("unit synonyms for matching user input", "square yottameter;square yottameters;Ym²;Ym/-2;Ym^2;Ym2"), 0041 symbolString, 0042 // i18n: This is used when a real-valued amount in units is given, 0043 // such as "0.37 miles". 0044 ki18nc("amount in units (real)", "%1 square yottameters"), 0045 // i18n: This is used when a integer-valued amount in units is given, 0046 // such as "1 mile" or "21 miles". 0047 ki18ncp("amount in units (integer)", "%1 square yottameter", "%1 square yottameters"))); 0048 0049 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0050 SquareZettameter, 0051 1e+42, 0052 i18nc("area unit symbol", "Zm²"), 0053 i18nc("unit description in lists", "square zettameters"), 0054 i18nc("unit synonyms for matching user input", "square zettameter;square zettameters;Zm²;Zm/-2;Zm^2;Zm2"), 0055 symbolString, 0056 ki18nc("amount in units (real)", "%1 square zettameters"), 0057 ki18ncp("amount in units (integer)", "%1 square zettameter", "%1 square zettameters"))); 0058 0059 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0060 SquareExameter, 0061 1e+36, 0062 i18nc("area unit symbol", "Em²"), 0063 i18nc("unit description in lists", "square exameters"), 0064 i18nc("unit synonyms for matching user input", "square exameter;square exameters;Em²;Em/-2;Em^2;Em2"), 0065 symbolString, 0066 ki18nc("amount in units (real)", "%1 square exameters"), 0067 ki18ncp("amount in units (integer)", "%1 square exameter", "%1 square exameters"))); 0068 0069 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0070 SquarePetameter, 0071 1e+30, 0072 i18nc("area unit symbol", "Pm²"), 0073 i18nc("unit description in lists", "square petameters"), 0074 i18nc("unit synonyms for matching user input", "square petameter;square petameters;Pm²;Pm/-2;Pm^2;Pm2"), 0075 symbolString, 0076 ki18nc("amount in units (real)", "%1 square petameters"), 0077 ki18ncp("amount in units (integer)", "%1 square petameter", "%1 square petameters"))); 0078 0079 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0080 SquareTerameter, 0081 1e+24, 0082 i18nc("area unit symbol", "Tm²"), 0083 i18nc("unit description in lists", "square terameters"), 0084 i18nc("unit synonyms for matching user input", "square terameter;square terameters;Tm²;Tm/-2;Tm^2;Tm2"), 0085 symbolString, 0086 ki18nc("amount in units (real)", "%1 square terameters"), 0087 ki18ncp("amount in units (integer)", "%1 square terameter", "%1 square terameters"))); 0088 0089 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0090 SquareGigameter, 0091 1e+18, 0092 i18nc("area unit symbol", "Gm²"), 0093 i18nc("unit description in lists", "square gigameters"), 0094 i18nc("unit synonyms for matching user input", "square gigameter;square gigameters;Gm²;Gm/-2;Gm^2;Gm2"), 0095 symbolString, 0096 ki18nc("amount in units (real)", "%1 square gigameters"), 0097 ki18ncp("amount in units (integer)", "%1 square gigameter", "%1 square gigameters"))); 0098 0099 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0100 SquareMegameter, 0101 1e+12, 0102 i18nc("area unit symbol", "Mm²"), 0103 i18nc("unit description in lists", "square megameters"), 0104 i18nc("unit synonyms for matching user input", "square megameter;square megameters;Mm²;Mm/-2;Mm^2;Mm2"), 0105 symbolString, 0106 ki18nc("amount in units (real)", "%1 square megameters"), 0107 ki18ncp("amount in units (integer)", "%1 square megameter", "%1 square megameters"))); 0108 0109 d->addCommonUnit(UnitPrivate::makeUnit(AreaCategory, 0110 SquareKilometer, 0111 1e+06, 0112 i18nc("area unit symbol", "km²"), 0113 i18nc("unit description in lists", "square kilometers"), 0114 i18nc("unit synonyms for matching user input", "square kilometer;square kilometers;sq km;km²;km/-2;km^2;km2"), 0115 symbolString, 0116 ki18nc("amount in units (real)", "%1 square kilometers"), 0117 ki18ncp("amount in units (integer)", "%1 square kilometer", "%1 square kilometers"))); 0118 0119 d->addCommonUnit(UnitPrivate::makeUnit(AreaCategory, 0120 SquareHectometer, 0121 10000, 0122 i18nc("area unit symbol", "hm²"), 0123 i18nc("unit description in lists", "square hectometers"), 0124 i18nc("unit synonyms for matching user input", "square hectometer;square hectometers;hm²;hm/-2;hm^2;hm2;hectare;hectares"), 0125 symbolString, 0126 ki18nc("amount in units (real)", "%1 square hectometers"), 0127 ki18ncp("amount in units (integer)", "%1 square hectometer", "%1 square hectometers"))); 0128 0129 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0130 SquareDecameter, 0131 100, 0132 i18nc("area unit symbol", "dam²"), 0133 i18nc("unit description in lists", "square decameters"), 0134 i18nc("unit synonyms for matching user input", "square decameter;square decameters;dam²;dam/-2;dam^2;dam2"), 0135 symbolString, 0136 ki18nc("amount in units (real)", "%1 square decameters"), 0137 ki18ncp("amount in units (integer)", "%1 square decameter", "%1 square decameters"))); 0138 0139 d->addDefaultUnit(UnitPrivate::makeUnit(AreaCategory, 0140 SquareMeter, 0141 1, 0142 i18nc("area unit symbol", "m²"), 0143 i18nc("unit description in lists", "square meters"), 0144 i18nc("unit synonyms for matching user input", "square meter;square meters;sq m;m²;m/-2;m^2;m2"), 0145 symbolString, 0146 ki18nc("amount in units (real)", "%1 square meters"), 0147 ki18ncp("amount in units (integer)", "%1 square meter", "%1 square meters"))); 0148 0149 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0150 SquareDecimeter, 0151 0.01, 0152 i18nc("area unit symbol", "dm²"), 0153 i18nc("unit description in lists", "square decimeters"), 0154 i18nc("unit synonyms for matching user input", "square decimeter;square decimeters;dm²;dm/-2;dm^2;dm2"), 0155 symbolString, 0156 ki18nc("amount in units (real)", "%1 square decimeters"), 0157 ki18ncp("amount in units (integer)", "%1 square decimeter", "%1 square decimeters"))); 0158 0159 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0160 SquareCentimeter, 0161 0.0001, 0162 i18nc("area unit symbol", "cm²"), 0163 i18nc("unit description in lists", "square centimeters"), 0164 i18nc("unit synonyms for matching user input", "square centimeter;square centimeters;sq cm;cm²;cm/-2;cm^2;cm2"), 0165 symbolString, 0166 ki18nc("amount in units (real)", "%1 square centimeters"), 0167 ki18ncp("amount in units (integer)", "%1 square centimeter", "%1 square centimeters"))); 0168 0169 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0170 SquareMillimeter, 0171 1e-06, 0172 i18nc("area unit symbol", "mm²"), 0173 i18nc("unit description in lists", "square millimeters"), 0174 i18nc("unit synonyms for matching user input", "square millimeter;square millimeters;sq mm;mm²;mm/-2;mm^2;mm2"), 0175 symbolString, 0176 ki18nc("amount in units (real)", "%1 square millimeters"), 0177 ki18ncp("amount in units (integer)", "%1 square millimeter", "%1 square millimeters"))); 0178 0179 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0180 SquareMicrometer, 0181 1e-12, 0182 i18nc("area unit symbol", "µm²"), 0183 i18nc("unit description in lists", "square micrometers"), 0184 i18nc("unit synonyms for matching user input", "square micrometer;square micrometers;µm²;um²;µm/-2;µm^2;µm2"), 0185 symbolString, 0186 ki18nc("amount in units (real)", "%1 square micrometers"), 0187 ki18ncp("amount in units (integer)", "%1 square micrometer", "%1 square micrometers"))); 0188 0189 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0190 SquareNanometer, 0191 1e-18, 0192 i18nc("area unit symbol", "nm²"), 0193 i18nc("unit description in lists", "square nanometers"), 0194 i18nc("unit synonyms for matching user input", "square nanometer;square nanometers;nm²;nm/-2;nm^2;nm2"), 0195 symbolString, 0196 ki18nc("amount in units (real)", "%1 square nanometers"), 0197 ki18ncp("amount in units (integer)", "%1 square nanometer", "%1 square nanometers"))); 0198 0199 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0200 SquarePicometer, 0201 1e-24, 0202 i18nc("area unit symbol", "pm²"), 0203 i18nc("unit description in lists", "square picometers"), 0204 i18nc("unit synonyms for matching user input", "square picometer;square picometers;pm²;pm/-2;pm^2;pm2"), 0205 symbolString, 0206 ki18nc("amount in units (real)", "%1 square picometers"), 0207 ki18ncp("amount in units (integer)", "%1 square picometer", "%1 square picometers"))); 0208 0209 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0210 SquareFemtometer, 0211 1e-30, 0212 i18nc("area unit symbol", "fm²"), 0213 i18nc("unit description in lists", "square femtometers"), 0214 i18nc("unit synonyms for matching user input", "square femtometer;square femtometers;fm²;fm/-2;fm^2;fm2"), 0215 symbolString, 0216 ki18nc("amount in units (real)", "%1 square femtometers"), 0217 ki18ncp("amount in units (integer)", "%1 square femtometer", "%1 square femtometers"))); 0218 0219 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0220 SquareAttometer, 0221 1e-36, 0222 i18nc("area unit symbol", "am²"), 0223 i18nc("unit description in lists", "square attometers"), 0224 i18nc("unit synonyms for matching user input", "square attometer;square attometers;am²;am/-2;am^2;am2"), 0225 symbolString, 0226 ki18nc("amount in units (real)", "%1 square attometers"), 0227 ki18ncp("amount in units (integer)", "%1 square attometer", "%1 square attometers"))); 0228 0229 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0230 SquareZeptometer, 0231 1e-42, 0232 i18nc("area unit symbol", "zm²"), 0233 i18nc("unit description in lists", "square zeptometers"), 0234 i18nc("unit synonyms for matching user input", "square zeptometer;square zeptometers;zm²;zm/-2;zm^2;zm2"), 0235 symbolString, 0236 ki18nc("amount in units (real)", "%1 square zeptometers"), 0237 ki18ncp("amount in units (integer)", "%1 square zeptometer", "%1 square zeptometers"))); 0238 0239 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0240 SquareYoctometer, 0241 1e-48, 0242 i18nc("area unit symbol", "ym²"), 0243 i18nc("unit description in lists", "square yoctometers"), 0244 i18nc("unit synonyms for matching user input", "square yoctometer;square yoctometers;ym²;ym/-2;ym^2;ym2"), 0245 symbolString, 0246 ki18nc("amount in units (real)", "%1 square yoctometers"), 0247 ki18ncp("amount in units (integer)", "%1 square yoctometer", "%1 square yoctometers"))); 0248 0249 d->addCommonUnit(UnitPrivate::makeUnit(AreaCategory, 0250 Acre, 0251 4046.86, 0252 i18nc("area unit symbol", "acre"), 0253 i18nc("unit description in lists", "acres"), 0254 i18nc("unit synonyms for matching user input", "acre;acres"), 0255 symbolString, 0256 ki18nc("amount in units (real)", "%1 acres"), 0257 ki18ncp("amount in units (integer)", "%1 acre", "%1 acres"))); 0258 0259 d->addCommonUnit(UnitPrivate::makeUnit(AreaCategory, 0260 SquareFoot, 0261 0.092903, 0262 i18nc("area unit symbol", "ft²"), 0263 i18nc("unit description in lists", "square feet"), 0264 i18nc("unit synonyms for matching user input", "square foot;square feet;ft²;square ft;sq foot;sq ft;sq feet;feet²"), 0265 symbolString, 0266 ki18nc("amount in units (real)", "%1 square feet"), 0267 ki18ncp("amount in units (integer)", "%1 square foot", "%1 square feet"))); 0268 0269 d->addUnit(UnitPrivate::makeUnit(AreaCategory, 0270 SquareInch, 0271 0.00064516, 0272 i18nc("area unit symbol", "in²"), 0273 i18nc("unit description in lists", "square inches"), 0274 i18nc("unit synonyms for matching user input", "square inch;square inches;in²;square inch;square in;sq inches;sq inch;sq in;inch²"), 0275 symbolString, 0276 ki18nc("amount in units (real)", "%1 square inches"), 0277 ki18ncp("amount in units (integer)", "%1 square inch", "%1 square inches"))); 0278 0279 d->addCommonUnit(UnitPrivate::makeUnit(AreaCategory, 0280 SquareMile, 0281 2.58999e+06, 0282 i18nc("area unit symbol", "mi²"), 0283 i18nc("unit description in lists", "square miles"), 0284 i18nc("unit synonyms for matching user input", "square mile;square miles;mi²;square mi;sq miles;sq mile;sq mi;mile²"), 0285 symbolString, 0286 ki18nc("amount in units (real)", "%1 square miles"), 0287 ki18ncp("amount in units (integer)", "%1 square mile", "%1 square miles"))); 0288 0289 return c; 0290 } 0291 0292 } // KUnitConversion namespace