File indexing completed on 2024-04-14 03:56:12

0001 /*
0002  *   SPDX-FileCopyrightText: 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 "pressure_p.h"
0009 #include "unit_p.h"
0010 
0011 #include <KLocalizedString>
0012 
0013 namespace KUnitConversion
0014 {
0015 UnitCategory Pressure::makeCategory()
0016 {
0017     auto c = UnitCategoryPrivate::makeCategory(PressureCategory, i18n("Pressure"), i18n("Pressure"));
0018     auto d = UnitCategoryPrivate::get(c);
0019     KLocalizedString symbolString = ki18nc("%1 value, %2 unit symbol (pressure)", "%1 %2");
0020 
0021     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0022                        Yottapascal,
0023                        1e+24,
0024                        i18nc("pressure unit symbol", "YPa"),
0025                        i18nc("unit description in lists", "yottapascals"),
0026                        i18nc("unit synonyms for matching user input", "yottapascal;yottapascals;YPa"),
0027                        symbolString,
0028                        ki18nc("amount in units (real)", "%1 yottapascals"),
0029                        ki18ncp("amount in units (integer)", "%1 yottapascal", "%1 yottapascals")));
0030 
0031     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0032                        Zettapascal,
0033                        1e+21,
0034                        i18nc("pressure unit symbol", "ZPa"),
0035                        i18nc("unit description in lists", "zettapascals"),
0036                        i18nc("unit synonyms for matching user input", "zettapascal;zettapascals;ZPa"),
0037                        symbolString,
0038                        ki18nc("amount in units (real)", "%1 zettapascals"),
0039                        ki18ncp("amount in units (integer)", "%1 zettapascal", "%1 zettapascals")));
0040 
0041     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0042                        Exapascal,
0043                        1e+18,
0044                        i18nc("pressure unit symbol", "EPa"),
0045                        i18nc("unit description in lists", "exapascals"),
0046                        i18nc("unit synonyms for matching user input", "exapascal;exapascals;EPa"),
0047                        symbolString,
0048                        ki18nc("amount in units (real)", "%1 exapascals"),
0049                        ki18ncp("amount in units (integer)", "%1 exapascal", "%1 exapascals")));
0050 
0051     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0052                        Petapascal,
0053                        1e+15,
0054                        i18nc("pressure unit symbol", "PPa"),
0055                        i18nc("unit description in lists", "petapascals"),
0056                        i18nc("unit synonyms for matching user input", "petapascal;petapascals;PPa"),
0057                        symbolString,
0058                        ki18nc("amount in units (real)", "%1 petapascals"),
0059                        ki18ncp("amount in units (integer)", "%1 petapascal", "%1 petapascals")));
0060 
0061     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0062                        Terapascal,
0063                        1e+12,
0064                        i18nc("pressure unit symbol", "TPa"),
0065                        i18nc("unit description in lists", "terapascals"),
0066                        i18nc("unit synonyms for matching user input", "terapascal;terapascals;TPa"),
0067                        symbolString,
0068                        ki18nc("amount in units (real)", "%1 terapascals"),
0069                        ki18ncp("amount in units (integer)", "%1 terapascal", "%1 terapascals")));
0070 
0071     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0072                        Gigapascal,
0073                        1e+09,
0074                        i18nc("pressure unit symbol", "GPa"),
0075                        i18nc("unit description in lists", "gigapascals"),
0076                        i18nc("unit synonyms for matching user input", "gigapascal;gigapascals;GPa"),
0077                        symbolString,
0078                        ki18nc("amount in units (real)", "%1 gigapascals"),
0079                        ki18ncp("amount in units (integer)", "%1 gigapascal", "%1 gigapascals")));
0080 
0081     d->addCommonUnit(UnitPrivate::makeUnit(PressureCategory,
0082                              Megapascal,
0083                              1e+06,
0084                              i18nc("pressure unit symbol", "MPa"),
0085                              i18nc("unit description in lists", "megapascals"),
0086                              i18nc("unit synonyms for matching user input", "megapascal;megapascals;MPa"),
0087                              symbolString,
0088                              ki18nc("amount in units (real)", "%1 megapascals"),
0089                              ki18ncp("amount in units (integer)", "%1 megapascal", "%1 megapascals")));
0090 
0091     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0092                        Kilopascal,
0093                        1000,
0094                        i18nc("pressure unit symbol", "kPa"),
0095                        i18nc("unit description in lists", "kilopascals"),
0096                        i18nc("unit synonyms for matching user input", "kilopascal;kilopascals;kPa"),
0097                        symbolString,
0098                        ki18nc("amount in units (real)", "%1 kilopascals"),
0099                        ki18ncp("amount in units (integer)", "%1 kilopascal", "%1 kilopascals")));
0100 
0101     d->addCommonUnit(UnitPrivate::makeUnit(PressureCategory,
0102                              Hectopascal,
0103                              100,
0104                              i18nc("pressure unit symbol", "hPa"),
0105                              i18nc("unit description in lists", "hectopascals"),
0106                              i18nc("unit synonyms for matching user input", "hectopascal;hectopascals;hPa"),
0107                              symbolString,
0108                              ki18nc("amount in units (real)", "%1 hectopascals"),
0109                              ki18ncp("amount in units (integer)", "%1 hectopascal", "%1 hectopascals")));
0110 
0111     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0112                        Decapascal,
0113                        10,
0114                        i18nc("pressure unit symbol", "daPa"),
0115                        i18nc("unit description in lists", "decapascals"),
0116                        i18nc("unit synonyms for matching user input", "decapascal;decapascals;daPa"),
0117                        symbolString,
0118                        ki18nc("amount in units (real)", "%1 decapascals"),
0119                        ki18ncp("amount in units (integer)", "%1 decapascal", "%1 decapascals")));
0120 
0121     d->addDefaultUnit(UnitPrivate::makeUnit(PressureCategory,
0122                               Pascal,
0123                               1,
0124                               i18nc("pressure unit symbol", "Pa"),
0125                               i18nc("unit description in lists", "pascals"),
0126                               i18nc("unit synonyms for matching user input", "pascal;pascals;Pa"),
0127                               symbolString,
0128                               ki18nc("amount in units (real)", "%1 pascals"),
0129                               ki18ncp("amount in units (integer)", "%1 pascal", "%1 pascals")));
0130 
0131     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0132                        Decipascal,
0133                        0.1,
0134                        i18nc("pressure unit symbol", "dPa"),
0135                        i18nc("unit description in lists", "decipascals"),
0136                        i18nc("unit synonyms for matching user input", "decipascal;decipascals;dPa"),
0137                        symbolString,
0138                        ki18nc("amount in units (real)", "%1 decipascals"),
0139                        ki18ncp("amount in units (integer)", "%1 decipascal", "%1 decipascals")));
0140 
0141     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0142                        Centipascal,
0143                        0.01,
0144                        i18nc("pressure unit symbol", "cPa"),
0145                        i18nc("unit description in lists", "centipascals"),
0146                        i18nc("unit synonyms for matching user input", "centipascal;centipascals;cPa"),
0147                        symbolString,
0148                        ki18nc("amount in units (real)", "%1 centipascals"),
0149                        ki18ncp("amount in units (integer)", "%1 centipascal", "%1 centipascals")));
0150 
0151     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0152                        Millipascal,
0153                        0.001,
0154                        i18nc("pressure unit symbol", "mPa"),
0155                        i18nc("unit description in lists", "millipascals"),
0156                        i18nc("unit synonyms for matching user input", "millipascal;millipascals;mPa"),
0157                        symbolString,
0158                        ki18nc("amount in units (real)", "%1 millipascals"),
0159                        ki18ncp("amount in units (integer)", "%1 millipascal", "%1 millipascals")));
0160 
0161     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0162                        Micropascal,
0163                        1e-06,
0164                        i18nc("pressure unit symbol", "µPa"),
0165                        i18nc("unit description in lists", "micropascals"),
0166                        i18nc("unit synonyms for matching user input", "micropascal;micropascals;µPa;uPa"),
0167                        symbolString,
0168                        ki18nc("amount in units (real)", "%1 micropascals"),
0169                        ki18ncp("amount in units (integer)", "%1 micropascal", "%1 micropascals")));
0170 
0171     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0172                        Nanopascal,
0173                        1e-09,
0174                        i18nc("pressure unit symbol", "nPa"),
0175                        i18nc("unit description in lists", "nanopascals"),
0176                        i18nc("unit synonyms for matching user input", "nanopascal;nanopascals;nPa"),
0177                        symbolString,
0178                        ki18nc("amount in units (real)", "%1 nanopascals"),
0179                        ki18ncp("amount in units (integer)", "%1 nanopascal", "%1 nanopascals")));
0180 
0181     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0182                        Picopascal,
0183                        1e-12,
0184                        i18nc("pressure unit symbol", "pPa"),
0185                        i18nc("unit description in lists", "picopascals"),
0186                        i18nc("unit synonyms for matching user input", "picopascal;picopascals;pPa"),
0187                        symbolString,
0188                        ki18nc("amount in units (real)", "%1 picopascals"),
0189                        ki18ncp("amount in units (integer)", "%1 picopascal", "%1 picopascals")));
0190 
0191     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0192                        Femtopascal,
0193                        1e-15,
0194                        i18nc("pressure unit symbol", "fPa"),
0195                        i18nc("unit description in lists", "femtopascals"),
0196                        i18nc("unit synonyms for matching user input", "femtopascal;femtopascals;fPa"),
0197                        symbolString,
0198                        ki18nc("amount in units (real)", "%1 femtopascals"),
0199                        ki18ncp("amount in units (integer)", "%1 femtopascal", "%1 femtopascals")));
0200 
0201     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0202                        Attopascal,
0203                        1e-18,
0204                        i18nc("pressure unit symbol", "aPa"),
0205                        i18nc("unit description in lists", "attopascals"),
0206                        i18nc("unit synonyms for matching user input", "attopascal;attopascals;aPa"),
0207                        symbolString,
0208                        ki18nc("amount in units (real)", "%1 attopascals"),
0209                        ki18ncp("amount in units (integer)", "%1 attopascal", "%1 attopascals")));
0210 
0211     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0212                        Zeptopascal,
0213                        1e-21,
0214                        i18nc("pressure unit symbol", "zPa"),
0215                        i18nc("unit description in lists", "zeptopascals"),
0216                        i18nc("unit synonyms for matching user input", "zeptopascal;zeptopascals;zPa"),
0217                        symbolString,
0218                        ki18nc("amount in units (real)", "%1 zeptopascals"),
0219                        ki18ncp("amount in units (integer)", "%1 zeptopascal", "%1 zeptopascals")));
0220 
0221     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0222                        Yoctopascal,
0223                        1e-24,
0224                        i18nc("pressure unit symbol", "yPa"),
0225                        i18nc("unit description in lists", "yoctopascals"),
0226                        i18nc("unit synonyms for matching user input", "yoctopascal;yoctopascals;yPa"),
0227                        symbolString,
0228                        ki18nc("amount in units (real)", "%1 yoctopascals"),
0229                        ki18ncp("amount in units (integer)", "%1 yoctopascal", "%1 yoctopascals")));
0230 
0231     d->addCommonUnit(UnitPrivate::makeUnit(PressureCategory,
0232                              Bar,
0233                              100000,
0234                              i18nc("pressure unit symbol", "bar"),
0235                              i18nc("unit description in lists", "bars"),
0236                              i18nc("unit synonyms for matching user input", "bar;bars;bar"),
0237                              symbolString,
0238                              ki18nc("amount in units (real)", "%1 bars"),
0239                              ki18ncp("amount in units (integer)", "%1 bar", "%1 bars")));
0240 
0241     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0242                        Millibar,
0243                        100,
0244                        i18nc("pressure unit symbol", "mbar"),
0245                        i18nc("unit description in lists", "millibars"),
0246                        i18nc("unit synonyms for matching user input", "millibar;millibars;mbar;mb"),
0247                        symbolString,
0248                        ki18nc("amount in units (real)", "%1 millibars"),
0249                        ki18ncp("amount in units (integer)", "%1 millibar", "%1 millibars")));
0250 
0251     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0252                        Decibar,
0253                        10000,
0254                        i18nc("pressure unit symbol", "dbar"),
0255                        i18nc("unit description in lists", "decibars"),
0256                        i18nc("unit synonyms for matching user input", "decibar;decibars;dbar"),
0257                        symbolString,
0258                        ki18nc("amount in units (real)", "%1 decibars"),
0259                        ki18ncp("amount in units (integer)", "%1 decibar", "%1 decibars")));
0260 
0261     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0262                        Torr,
0263                        133.322,
0264                        i18nc("pressure unit symbol", "Torr"),
0265                        i18nc("unit description in lists", "Torr"),
0266                        i18nc("unit synonyms for matching user input", "Torr"),
0267                        symbolString,
0268                        ki18nc("amount in units (real)", "%1 torr"),
0269                        ki18ncp("amount in units (integer)", "%1 torr", "%1 torr")));
0270 
0271     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0272                        TechnicalAtmosphere,
0273                        98066.5,
0274                        i18nc("pressure unit symbol", "at"),
0275                        i18nc("unit description in lists", "technical atmospheres"),
0276                        i18nc("unit synonyms for matching user input", "technical atmosphere;technical atmospheres;at"),
0277                        symbolString,
0278                        ki18nc("amount in units (real)", "%1 technical atmospheres"),
0279                        ki18ncp("amount in units (integer)", "%1 technical atmosphere", "%1 technical atmospheres")));
0280 
0281     d->addCommonUnit(UnitPrivate::makeUnit(PressureCategory,
0282                              Atmosphere,
0283                              101325,
0284                              i18nc("pressure unit symbol", "atm"),
0285                              i18nc("unit description in lists", "atmospheres"),
0286                              i18nc("unit synonyms for matching user input", "atmosphere;atmospheres;atm"),
0287                              symbolString,
0288                              ki18nc("amount in units (real)", "%1 atmospheres"),
0289                              ki18ncp("amount in units (integer)", "%1 atmosphere", "%1 atmospheres")));
0290 
0291     d->addCommonUnit(UnitPrivate::makeUnit(PressureCategory,
0292                              PoundForcePerSquareInch,
0293                              6894.76,
0294                              i18nc("pressure unit symbol", "psi"),
0295                              i18nc("unit description in lists", "pound-force per square inch"),
0296                              i18nc("unit synonyms for matching user input", "pound-force per square inch;pound-force per square inches;psi"),
0297                              symbolString,
0298                              ki18nc("amount in units (real)", "%1 pound-force per square inches"),
0299                              ki18ncp("amount in units (integer)", "%1 pound-force per square inch", "%1 pound-force per square inch")));
0300 
0301     // http://en.wikipedia.org/wiki/InHg
0302     d->addCommonUnit(UnitPrivate::makeUnit(PressureCategory,
0303                              InchesOfMercury,
0304                              3386.39,
0305                              i18nc("pressure unit symbol", "inHg"),
0306                              i18nc("unit description in lists", "inches of mercury"),
0307                              i18nc("unit synonyms for matching user input", "inch of mercury;inches of mercury;inHg;in\""),
0308                              symbolString,
0309                              ki18nc("amount in units (real)", "%1 inches of mercury"),
0310                              ki18ncp("amount in units (integer)", "%1 inches of mercury", "%1 inches of mercury")));
0311 
0312     // http://en.wikipedia.org/wiki/MmHg#mmHg
0313     d->addUnit(UnitPrivate::makeUnit(PressureCategory,
0314                        MillimetersOfMercury,
0315                        133.322,
0316                        i18nc("pressure unit symbol", "mmHg"),
0317                        i18nc("unit description in lists", "millimeters of mercury"),
0318                        i18nc("unit synonyms for matching user input", "millimeter of mercury;millimeters of mercury;mmHg"),
0319                        symbolString,
0320                        ki18nc("amount in units (real)", "%1 millimeters of mercury"),
0321                        ki18ncp("amount in units (integer)", "%1 millimeters of mercury", "%1 millimeters of mercury")));
0322 
0323     return c;
0324 }
0325 
0326 } // KUnitConversion namespace