File indexing completed on 2024-04-28 07:47:32

0001 /*
0002  *   SPDX-FileCopyrightText: 2010 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 "force_p.h"
0009 #include "unit_p.h"
0010 
0011 #include <KLocalizedString>
0012 
0013 namespace KUnitConversion
0014 {
0015 UnitCategory Force::makeCategory()
0016 {
0017     auto c = UnitCategoryPrivate::makeCategory(ForceCategory, i18n("Force"), i18n("Force"));
0018     auto d = UnitCategoryPrivate::get(c);
0019     KLocalizedString symbolString = ki18nc("%1 value, %2 unit symbol (force", "%1 %2");
0020 
0021     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0022                        Yottanewton,
0023                        1e+24,
0024                        i18nc("force unit symbol", "YN"),
0025                        i18nc("unit description in lists", "yottanewtons"),
0026                        i18nc("unit synonyms for matching user input", "yottanewton;yottanewtons;YN"),
0027                        symbolString,
0028                        ki18nc("amount in units (real)", "%1 yottanewtons"),
0029                        ki18ncp("amount in units (integer)", "%1 yottanewton", "%1 yottanewtons")));
0030 
0031     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0032                        Zettanewton,
0033                        1e+21,
0034                        i18nc("force unit symbol", "ZN"),
0035                        i18nc("unit description in lists", "zettanewtons"),
0036                        i18nc("unit synonyms for matching user input", "zettanewton;zettanewtons;ZN"),
0037                        symbolString,
0038                        ki18nc("amount in units (real)", "%1 zettanewtons"),
0039                        ki18ncp("amount in units (integer)", "%1 zettanewton", "%1 zettanewtons")));
0040 
0041     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0042                        Exanewton,
0043                        1e+18,
0044                        i18nc("force unit symbol", "EN"),
0045                        i18nc("unit description in lists", "exanewtons"),
0046                        i18nc("unit synonyms for matching user input", "exanewton;exanewtons;EN"),
0047                        symbolString,
0048                        ki18nc("amount in units (real)", "%1 exanewtons"),
0049                        ki18ncp("amount in units (integer)", "%1 exanewton", "%1 exanewtons")));
0050 
0051     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0052                        Petanewton,
0053                        1e+15,
0054                        i18nc("force unit symbol", "PN"),
0055                        i18nc("unit description in lists", "petanewtons"),
0056                        i18nc("unit synonyms for matching user input", "petanewton;petanewtons;PN"),
0057                        symbolString,
0058                        ki18nc("amount in units (real)", "%1 petanewtons"),
0059                        ki18ncp("amount in units (integer)", "%1 petanewton", "%1 petanewtons")));
0060 
0061     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0062                        Teranewton,
0063                        1e+12,
0064                        i18nc("force unit symbol", "TN"),
0065                        i18nc("unit description in lists", "teranewtons"),
0066                        i18nc("unit synonyms for matching user input", "teranewton;teranewtons;TN"),
0067                        symbolString,
0068                        ki18nc("amount in units (real)", "%1 teranewtons"),
0069                        ki18ncp("amount in units (integer)", "%1 teranewton", "%1 teranewtons")));
0070 
0071     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0072                        Giganewton,
0073                        1e+09,
0074                        i18nc("force unit symbol", "GN"),
0075                        i18nc("unit description in lists", "giganewtons"),
0076                        i18nc("unit synonyms for matching user input", "giganewton;giganewtons;GN"),
0077                        symbolString,
0078                        ki18nc("amount in units (real)", "%1 giganewtons"),
0079                        ki18ncp("amount in units (integer)", "%1 giganewton", "%1 giganewtons")));
0080 
0081     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0082                        Meganewton,
0083                        1e+06,
0084                        i18nc("force unit symbol", "MN"),
0085                        i18nc("unit description in lists", "meganewtons"),
0086                        i18nc("unit synonyms for matching user input", "meganewton;meganewtons;MN"),
0087                        symbolString,
0088                        ki18nc("amount in units (real)", "%1 meganewtons"),
0089                        ki18ncp("amount in units (integer)", "%1 meganewton", "%1 meganewtons")));
0090 
0091     d->addCommonUnit(UnitPrivate::makeUnit(ForceCategory,
0092                              KilonewtonForce,
0093                              1000,
0094                              i18nc("force unit symbol", "kN"),
0095                              i18nc("unit description in lists", "kilonewtons"),
0096                              i18nc("unit synonyms for matching user input", "kilonewton;kilonewtons;kN"),
0097                              symbolString,
0098                              ki18nc("amount in units (real)", "%1 kilonewtons"),
0099                              ki18ncp("amount in units (integer)", "%1 kilonewton", "%1 kilonewtons")));
0100 
0101     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0102                        Hectonewton,
0103                        100,
0104                        i18nc("force unit symbol", "hN"),
0105                        i18nc("unit description in lists", "hectonewtons"),
0106                        i18nc("unit synonyms for matching user input", "hectonewton;hectonewtons;hN"),
0107                        symbolString,
0108                        ki18nc("amount in units (real)", "%1 hectonewtons"),
0109                        ki18ncp("amount in units (integer)", "%1 hectonewton", "%1 hectonewtons")));
0110 
0111     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0112                        Decanewton,
0113                        10,
0114                        i18nc("force unit symbol", "daN"),
0115                        i18nc("unit description in lists", "decanewtons"),
0116                        i18nc("unit synonyms for matching user input", "decanewton;decanewtons;daN"),
0117                        symbolString,
0118                        ki18nc("amount in units (real)", "%1 decanewtons"),
0119                        ki18ncp("amount in units (integer)", "%1 decanewton", "%1 decanewtons")));
0120 
0121     d->addDefaultUnit(UnitPrivate::makeUnit(ForceCategory,
0122                               Newton,
0123                               1,
0124                               i18nc("force unit symbol", "N"),
0125                               i18nc("unit description in lists", "newtons"),
0126                               i18nc("unit synonyms for matching user input", "newton;newtons;N"),
0127                               symbolString,
0128                               ki18nc("amount in units (real)", "%1 newtons"),
0129                               ki18ncp("amount in units (integer)", "%1 newton", "%1 newtons")));
0130 
0131     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0132                        Decinewton,
0133                        0.1,
0134                        i18nc("force unit symbol", "dN"),
0135                        i18nc("unit description in lists", "decinewtons"),
0136                        i18nc("unit synonyms for matching user input", "decinewton;decinewtons;dN"),
0137                        symbolString,
0138                        ki18nc("amount in units (real)", "%1 decinewtons"),
0139                        ki18ncp("amount in units (integer)", "%1 decinewton", "%1 decinewtons")));
0140 
0141     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0142                        Centinewton,
0143                        0.01,
0144                        i18nc("force unit symbol", "cN"),
0145                        i18nc("unit description in lists", "centinewtons"),
0146                        i18nc("unit synonyms for matching user input", "centinewton;centinewtons;cN"),
0147                        symbolString,
0148                        ki18nc("amount in units (real)", "%1 centinewtons"),
0149                        ki18ncp("amount in units (integer)", "%1 centinewton", "%1 centinewtons")));
0150 
0151     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0152                        Millinewton,
0153                        0.001,
0154                        i18nc("force unit symbol", "mN"),
0155                        i18nc("unit description in lists", "millinewtons"),
0156                        i18nc("unit synonyms for matching user input", "millinewton;millinewtons;mN"),
0157                        symbolString,
0158                        ki18nc("amount in units (real)", "%1 millinewtons"),
0159                        ki18ncp("amount in units (integer)", "%1 millinewton", "%1 millinewtons")));
0160 
0161     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0162                        Micronewton,
0163                        1e-06,
0164                        i18nc("force unit symbol", "µN"),
0165                        i18nc("unit description in lists", "micronewtons"),
0166                        i18nc("unit synonyms for matching user input", "micronewton;micronewtons;µm;uN"),
0167                        symbolString,
0168                        ki18nc("amount in units (real)", "%1 micronewtons"),
0169                        ki18ncp("amount in units (integer)", "%1 micronewton", "%1 micronewtons")));
0170 
0171     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0172                        Nanonewton,
0173                        1e-09,
0174                        i18nc("force unit symbol", "nN"),
0175                        i18nc("unit description in lists", "nanonewtons"),
0176                        i18nc("unit synonyms for matching user input", "nanonewton;nanonewtons;nN"),
0177                        symbolString,
0178                        ki18nc("amount in units (real)", "%1 nanonewtons"),
0179                        ki18ncp("amount in units (integer)", "%1 nanonewton", "%1 nanonewtons")));
0180 
0181     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0182                        Piconewton,
0183                        1e-12,
0184                        i18nc("force unit symbol", "pN"),
0185                        i18nc("unit description in lists", "piconewtons"),
0186                        i18nc("unit synonyms for matching user input", "piconewton;piconewtons;pN"),
0187                        symbolString,
0188                        ki18nc("amount in units (real)", "%1 piconewtons"),
0189                        ki18ncp("amount in units (integer)", "%1 piconewton", "%1 piconewtons")));
0190 
0191     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0192                        Femtonewton,
0193                        1e-15,
0194                        i18nc("force unit symbol", "fN"),
0195                        i18nc("unit description in lists", "femtonewtons"),
0196                        i18nc("unit synonyms for matching user input", "femtonewton;femtonewtons;fN"),
0197                        symbolString,
0198                        ki18nc("amount in units (real)", "%1 femtonewtons"),
0199                        ki18ncp("amount in units (integer)", "%1 femtonewton", "%1 femtonewtons")));
0200 
0201     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0202                        Attonewton,
0203                        1e-18,
0204                        i18nc("force unit symbol", "aN"),
0205                        i18nc("unit description in lists", "attonewtons"),
0206                        i18nc("unit synonyms for matching user input", "attonewton;attonewtons;aN"),
0207                        symbolString,
0208                        ki18nc("amount in units (real)", "%1 attonewtons"),
0209                        ki18ncp("amount in units (integer)", "%1 attonewton", "%1 attonewtons")));
0210 
0211     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0212                        Zeptonewton,
0213                        1e-21,
0214                        i18nc("force unit symbol", "zN"),
0215                        i18nc("unit description in lists", "zeptonewtons"),
0216                        i18nc("unit synonyms for matching user input", "zeptonewton;zeptonewtons;zN"),
0217                        symbolString,
0218                        ki18nc("amount in units (real)", "%1 zeptonewtons"),
0219                        ki18ncp("amount in units (integer)", "%1 zeptonewton", "%1 zeptonewtons")));
0220 
0221     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0222                        Yoctonewton,
0223                        1e-24,
0224                        i18nc("force unit symbol", "yN"),
0225                        i18nc("unit description in lists", "yoctonewtons"),
0226                        i18nc("unit synonyms for matching user input", "yoctonewton;yoctonewtons;yN"),
0227                        symbolString,
0228                        ki18nc("amount in units (real)", "%1 yoctonewtons"),
0229                        ki18ncp("amount in units (integer)", "%1 yoctonewton", "%1 yoctonewtons")));
0230 
0231     // http://en.wikipedia.org/wiki/Force#Units_of_measurement
0232     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0233                        Dyne,
0234                        0.0001,
0235                        i18nc("force unit symbol", "dyn"),
0236                        i18nc("unit description in lists", "dynes"),
0237                        i18nc("unit synonyms for matching user input", "dyne;dynes;dyn"),
0238                        symbolString,
0239                        ki18nc("amount in units (real)", "%1 dynes"),
0240                        ki18ncp("amount in units (integer)", "%1 dyne", "%1 dynes")));
0241 
0242     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0243                        Kilopond,
0244                        9.80665,
0245                        i18nc("force unit symbol", "kp"),
0246                        i18nc("unit description in lists", "kiloponds"),
0247                        i18nc("unit synonyms for matching user input", "kilogram-force;kilopond;kiloponds;kp"),
0248                        symbolString,
0249                        ki18nc("amount in units (real)", "%1 kiloponds"),
0250                        ki18ncp("amount in units (integer)", "%1 kilopond", "%1 kiloponds")));
0251 
0252     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0253                        PoundForce,
0254                        4.448222,
0255                        i18nc("force unit symbol", "lbf"),
0256                        i18nc("unit description in lists", "pound-force"),
0257                        i18nc("unit synonyms for matching user input", "pound-force;lbf"),
0258                        symbolString,
0259                        ki18nc("amount in units (real)", "%1 pound-force"),
0260                        ki18ncp("amount in units (integer)", "%1 pound-force", "%1 pound-force")));
0261 
0262     d->addUnit(UnitPrivate::makeUnit(ForceCategory,
0263                        Poundal,
0264                        0.138255,
0265                        i18nc("force unit symbol", "pdl"),
0266                        i18nc("unit description in lists", "poundals"),
0267                        i18nc("unit synonyms for matching user input", "poundal;poundals;pdl"),
0268                        symbolString,
0269                        ki18nc("amount in units (real)", "%1 poundals"),
0270                        ki18ncp("amount in units (integer)", "%1 poundal", "%1 poundals")));
0271 
0272     return c;
0273 }
0274 
0275 } // KUnitConversion namespace