File indexing completed on 2024-04-21 03:58: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 "length_p.h" 0009 #include "unit_p.h" 0010 0011 #include <KLocalizedString> 0012 0013 namespace KUnitConversion 0014 { 0015 0016 UnitCategory Length::makeCategory() 0017 { 0018 auto c = UnitCategoryPrivate::makeCategory(LengthCategory, i18n("Length"), i18n("Length")); 0019 auto d = UnitCategoryPrivate::get(c); 0020 KLocalizedString symbolString = ki18nc("%1 value, %2 unit symbol (length", "%1 %2"); 0021 0022 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0023 Yottameter, 0024 1e+24, 0025 i18nc("length unit symbol", "Ym"), 0026 i18nc("unit description in lists", "yottameters"), 0027 i18nc("unit synonyms for matching user input", "yottameter;yottameters;Ym"), 0028 symbolString, 0029 ki18nc("amount in units (real)", "%1 yottameters"), 0030 ki18ncp("amount in units (integer)", "%1 yottameter", "%1 yottameters"))); 0031 0032 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0033 Zettameter, 0034 1e+21, 0035 i18nc("length unit symbol", "Zm"), 0036 i18nc("unit description in lists", "zettameters"), 0037 i18nc("unit synonyms for matching user input", "zettameter;zettameters;Zm"), 0038 symbolString, 0039 ki18nc("amount in units (real)", "%1 zettameters"), 0040 ki18ncp("amount in units (integer)", "%1 zettameter", "%1 zettameters"))); 0041 0042 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0043 Exameter, 0044 1e+18, 0045 i18nc("length unit symbol", "Em"), 0046 i18nc("unit description in lists", "exameters"), 0047 i18nc("unit synonyms for matching user input", "exameter;exameters;Em"), 0048 symbolString, 0049 ki18nc("amount in units (real)", "%1 exameters"), 0050 ki18ncp("amount in units (integer)", "%1 exameter", "%1 exameters"))); 0051 0052 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0053 Petameter, 0054 1e+15, 0055 i18nc("length unit symbol", "Pm"), 0056 i18nc("unit description in lists", "petameters"), 0057 i18nc("unit synonyms for matching user input", "petameter;petameters;Pm"), 0058 symbolString, 0059 ki18nc("amount in units (real)", "%1 petameters"), 0060 ki18ncp("amount in units (integer)", "%1 petameter", "%1 petameters"))); 0061 0062 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0063 Terameter, 0064 1e+12, 0065 i18nc("length unit symbol", "Tm"), 0066 i18nc("unit description in lists", "terameters"), 0067 i18nc("unit synonyms for matching user input", "terameter;terameters;Tm"), 0068 symbolString, 0069 ki18nc("amount in units (real)", "%1 terameters"), 0070 ki18ncp("amount in units (integer)", "%1 terameter", "%1 terameters"))); 0071 0072 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0073 Gigameter, 0074 1e+09, 0075 i18nc("length unit symbol", "Gm"), 0076 i18nc("unit description in lists", "gigameters"), 0077 i18nc("unit synonyms for matching user input", "gigameter;gigameters;Gm"), 0078 symbolString, 0079 ki18nc("amount in units (real)", "%1 gigameters"), 0080 ki18ncp("amount in units (integer)", "%1 gigameter", "%1 gigameters"))); 0081 0082 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0083 Megameter, 0084 1e+06, 0085 i18nc("length unit symbol", "Mm"), 0086 i18nc("unit description in lists", "megameters"), 0087 i18nc("unit synonyms for matching user input", "megameter;megameters;Mm"), 0088 symbolString, 0089 ki18nc("amount in units (real)", "%1 megameters"), 0090 ki18ncp("amount in units (integer)", "%1 megameter", "%1 megameters"))); 0091 0092 d->addCommonUnit(UnitPrivate::makeUnit(LengthCategory, 0093 Kilometer, 0094 1000, 0095 i18nc("length unit symbol", "km"), 0096 i18nc("unit description in lists", "kilometers"), 0097 i18nc("unit synonyms for matching user input", "kilometer;kilometers;km"), 0098 symbolString, 0099 ki18nc("amount in units (real)", "%1 kilometers"), 0100 ki18ncp("amount in units (integer)", "%1 kilometer", "%1 kilometers"))); 0101 0102 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0103 Hectometer, 0104 100, 0105 i18nc("length unit symbol", "hm"), 0106 i18nc("unit description in lists", "hectometers"), 0107 i18nc("unit synonyms for matching user input", "hectometer;hectometers;hm"), 0108 symbolString, 0109 ki18nc("amount in units (real)", "%1 hectometers"), 0110 ki18ncp("amount in units (integer)", "%1 hectometer", "%1 hectometers"))); 0111 0112 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0113 Decameter, 0114 10, 0115 i18nc("length unit symbol", "dam"), 0116 i18nc("unit description in lists", "decameters"), 0117 i18nc("unit synonyms for matching user input", "decameter;decameters;dam"), 0118 symbolString, 0119 ki18nc("amount in units (real)", "%1 decameters"), 0120 ki18ncp("amount in units (integer)", "%1 decameter", "%1 decameters"))); 0121 0122 d->addDefaultUnit(UnitPrivate::makeUnit(LengthCategory, 0123 Meter, 0124 1, 0125 i18nc("length unit symbol", "m"), 0126 i18nc("unit description in lists", "meters"), 0127 i18nc("unit synonyms for matching user input", "meter;meters;m"), 0128 symbolString, 0129 ki18nc("amount in units (real)", "%1 meters"), 0130 ki18ncp("amount in units (integer)", "%1 meter", "%1 meters"))); 0131 0132 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0133 Decimeter, 0134 0.1, 0135 i18nc("length unit symbol", "dm"), 0136 i18nc("unit description in lists", "decimeters"), 0137 i18nc("unit synonyms for matching user input", "decimeter;decimeters;dm"), 0138 symbolString, 0139 ki18nc("amount in units (real)", "%1 decimeters"), 0140 ki18ncp("amount in units (integer)", "%1 decimeter", "%1 decimeters"))); 0141 0142 d->addCommonUnit(UnitPrivate::makeUnit(LengthCategory, 0143 Centimeter, 0144 0.01, 0145 i18nc("length unit symbol", "cm"), 0146 i18nc("unit description in lists", "centimeters"), 0147 i18nc("unit synonyms for matching user input", "centimeter;centimeters;cm"), 0148 symbolString, 0149 ki18nc("amount in units (real)", "%1 centimeters"), 0150 ki18ncp("amount in units (integer)", "%1 centimeter", "%1 centimeters"))); 0151 0152 d->addCommonUnit(UnitPrivate::makeUnit(LengthCategory, 0153 Millimeter, 0154 0.001, 0155 i18nc("length unit symbol", "mm"), 0156 i18nc("unit description in lists", "millimeters"), 0157 i18nc("unit synonyms for matching user input", "millimeter;millimeters;mm"), 0158 symbolString, 0159 ki18nc("amount in units (real)", "%1 millimeters"), 0160 ki18ncp("amount in units (integer)", "%1 millimeter", "%1 millimeters"))); 0161 0162 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0163 Micrometer, 0164 1e-06, 0165 i18nc("length unit symbol", "µm"), 0166 i18nc("unit description in lists", "micrometers"), 0167 i18nc("unit synonyms for matching user input", "micrometer;micrometers;µm;um"), 0168 symbolString, 0169 ki18nc("amount in units (real)", "%1 micrometers"), 0170 ki18ncp("amount in units (integer)", "%1 micrometer", "%1 micrometers"))); 0171 0172 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0173 Nanometer, 0174 1e-09, 0175 i18nc("length unit symbol", "nm"), 0176 i18nc("unit description in lists", "nanometers"), 0177 i18nc("unit synonyms for matching user input", "nanometer;nanometers;nm"), 0178 symbolString, 0179 ki18nc("amount in units (real)", "%1 nanometers"), 0180 ki18ncp("amount in units (integer)", "%1 nanometer", "%1 nanometers"))); 0181 0182 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0183 Angstrom, 0184 1e-10, 0185 i18nc("length unit symbol", "Å"), 0186 i18nc("unit description in lists", "Ångström"), 0187 i18nc("unit synonyms for matching user input", "Ångström;Ångstrom;Angström;Angstrom;Ångströms;Ångstroms;Angströms;Angstroms;Å"), 0188 symbolString, 0189 ki18nc("amount in units (real)", "%1 Ångströms"), 0190 ki18ncp("amount in units (integer)", "%1 Ångström", "%1 Ångströms"))); 0191 0192 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0193 Picometer, 0194 1e-12, 0195 i18nc("length unit symbol", "pm"), 0196 i18nc("unit description in lists", "picometers"), 0197 i18nc("unit synonyms for matching user input", "picometer;picometers;pm"), 0198 symbolString, 0199 ki18nc("amount in units (real)", "%1 picometers"), 0200 ki18ncp("amount in units (integer)", "%1 picometer", "%1 picometers"))); 0201 0202 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0203 Femtometer, 0204 1e-15, 0205 i18nc("length unit symbol", "fm"), 0206 i18nc("unit description in lists", "femtometers"), 0207 i18nc("unit synonyms for matching user input", "femtometer;femtometers;fm"), 0208 symbolString, 0209 ki18nc("amount in units (real)", "%1 femtometers"), 0210 ki18ncp("amount in units (integer)", "%1 femtometer", "%1 femtometers"))); 0211 0212 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0213 Attometer, 0214 1e-18, 0215 i18nc("length unit symbol", "am"), 0216 i18nc("unit description in lists", "attometers"), 0217 i18nc("unit synonyms for matching user input", "attometer;attometers;am"), 0218 symbolString, 0219 ki18nc("amount in units (real)", "%1 attometers"), 0220 ki18ncp("amount in units (integer)", "%1 attometer", "%1 attometers"))); 0221 0222 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0223 Zeptometer, 0224 1e-21, 0225 i18nc("length unit symbol", "zm"), 0226 i18nc("unit description in lists", "zeptometers"), 0227 i18nc("unit synonyms for matching user input", "zeptometer;zeptometers;zm"), 0228 symbolString, 0229 ki18nc("amount in units (real)", "%1 zeptometers"), 0230 ki18ncp("amount in units (integer)", "%1 zeptometer", "%1 zeptometers"))); 0231 0232 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0233 Yoctometer, 0234 1e-24, 0235 i18nc("length unit symbol", "ym"), 0236 i18nc("unit description in lists", "yoctometers"), 0237 i18nc("unit synonyms for matching user input", "yoctometer;yoctometers;ym"), 0238 symbolString, 0239 ki18nc("amount in units (real)", "%1 yoctometers"), 0240 ki18ncp("amount in units (integer)", "%1 yoctometer", "%1 yoctometers"))); 0241 0242 d->addCommonUnit(UnitPrivate::makeUnit(LengthCategory, 0243 Inch, 0244 0.0254, 0245 i18nc("length unit symbol", "in"), 0246 i18nc("unit description in lists", "inches"), 0247 i18nc("unit synonyms for matching user input", "inch;inches;in;\""), 0248 symbolString, 0249 ki18nc("amount in units (real)", "%1 inches"), 0250 ki18ncp("amount in units (integer)", "%1 inch", "%1 inches"))); 0251 0252 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0253 Thou, 0254 0.0000254, 0255 i18nc("length unit symbol", "thou"), 0256 i18nc("unit description in lists", "thousandths of an inch"), 0257 i18nc("unit synonyms for matching user input", "thou;mil;point;thousandth of an inch;thousandths of an inch"), 0258 symbolString, 0259 ki18nc("amount in units (real)", "%1 thousandths of an inch"), 0260 ki18ncp("amount in units (integer)", "%1 thousandth of an inch", "%1 thousandths of an inch"))); 0261 0262 d->addCommonUnit(UnitPrivate::makeUnit(LengthCategory, 0263 Foot, 0264 0.3048, 0265 i18nc("length unit symbol", "ft"), 0266 i18nc("unit description in lists", "feet"), 0267 i18nc("unit synonyms for matching user input", "foot;feet;ft"), 0268 symbolString, 0269 ki18nc("amount in units (real)", "%1 feet"), 0270 ki18ncp("amount in units (integer)", "%1 foot", "%1 feet"))); 0271 0272 d->addCommonUnit(UnitPrivate::makeUnit(LengthCategory, 0273 Yard, 0274 0.9144, 0275 i18nc("length unit symbol", "yd"), 0276 i18nc("unit description in lists", "yards"), 0277 i18nc("unit synonyms for matching user input", "yard;yards;yd"), 0278 symbolString, 0279 ki18nc("amount in units (real)", "%1 yards"), 0280 ki18ncp("amount in units (integer)", "%1 yard", "%1 yards"))); 0281 0282 d->addCommonUnit(UnitPrivate::makeUnit(LengthCategory, 0283 Mile, 0284 1609.34, 0285 i18nc("length unit symbol", "mi"), 0286 i18nc("unit description in lists", "miles"), 0287 i18nc("unit synonyms for matching user input", "mile;miles;mi"), 0288 symbolString, 0289 ki18nc("amount in units (real)", "%1 miles"), 0290 ki18ncp("amount in units (integer)", "%1 mile", "%1 miles"))); 0291 0292 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0293 NauticalMile, 0294 1852, 0295 i18nc("length unit symbol", "nmi"), 0296 i18nc("unit description in lists", "nautical miles"), 0297 i18nc("unit synonyms for matching user input", "nautical mile;nautical miles;nmi"), 0298 symbolString, 0299 ki18nc("amount in units (real)", "%1 nautical miles"), 0300 ki18ncp("amount in units (integer)", "%1 nautical mile", "%1 nautical miles"))); 0301 0302 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0303 LightYear, 0304 9.46073e+15, 0305 i18nc("length unit symbol", "ly"), 0306 i18nc("unit description in lists", "light-years"), 0307 i18nc("unit synonyms for matching user input", "light-year;light-years;ly;lightyear;lightyears"), 0308 symbolString, 0309 ki18nc("amount in units (real)", "%1 light-years"), 0310 ki18ncp("amount in units (integer)", "%1 light-year", "%1 light-years"))); 0311 0312 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0313 Parsec, 0314 3.08568e+16, 0315 i18nc("length unit symbol", "pc"), 0316 i18nc("unit description in lists", "parsecs"), 0317 i18nc("unit synonyms for matching user input", "parsec;parsecs;pc"), 0318 symbolString, 0319 ki18nc("amount in units (real)", "%1 parsecs"), 0320 ki18ncp("amount in units (integer)", "%1 parsec", "%1 parsecs"))); 0321 0322 d->addUnit(UnitPrivate::makeUnit(LengthCategory, 0323 AstronomicalUnit, 0324 1.49598e+11, 0325 i18nc("length unit symbol", "au"), 0326 i18nc("unit description in lists", "astronomical units"), 0327 i18nc("unit synonyms for matching user input", "astronomical unit;astronomical units;au"), 0328 symbolString, 0329 ki18nc("amount in units (real)", "%1 astronomical units"), 0330 ki18ncp("amount in units (integer)", "%1 astronomical unit", "%1 astronomical units"))); 0331 0332 return c; 0333 } 0334 0335 } // KUnitConversion namespace