File indexing completed on 2024-03-24 04:01:21
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 "timeunit_p.h" 0009 #include "unit_p.h" 0010 0011 #include <KLocalizedString> 0012 0013 namespace KUnitConversion 0014 { 0015 UnitCategory Time::makeCategory() 0016 { 0017 auto c = UnitCategoryPrivate::makeCategory(TimeCategory, i18n("Time"), i18n("Time")); 0018 auto d = UnitCategoryPrivate::get(c); 0019 KLocalizedString symbolString = ki18nc("%1 value, %2 unit symbol (time)", "%1 %2"); 0020 0021 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0022 Yottasecond, 0023 1e+24, 0024 i18nc("time unit symbol", "Ys"), 0025 i18nc("unit description in lists", "yottaseconds"), 0026 i18nc("unit synonyms for matching user input", "yottasecond;yottaseconds;Ys"), 0027 symbolString, 0028 ki18nc("amount in units (real)", "%1 yottaseconds"), 0029 ki18ncp("amount in units (integer)", "%1 yottasecond", "%1 yottaseconds"))); 0030 0031 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0032 Zettasecond, 0033 1e+21, 0034 i18nc("time unit symbol", "Zs"), 0035 i18nc("unit description in lists", "zettaseconds"), 0036 i18nc("unit synonyms for matching user input", "zettasecond;zettaseconds;Zs"), 0037 symbolString, 0038 ki18nc("amount in units (real)", "%1 zettaseconds"), 0039 ki18ncp("amount in units (integer)", "%1 zettasecond", "%1 zettaseconds"))); 0040 0041 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0042 Exasecond, 0043 1e+18, 0044 i18nc("time unit symbol", "Es"), 0045 i18nc("unit description in lists", "exaseconds"), 0046 i18nc("unit synonyms for matching user input", "exasecond;exaseconds;Es"), 0047 symbolString, 0048 ki18nc("amount in units (real)", "%1 exaseconds"), 0049 ki18ncp("amount in units (integer)", "%1 exasecond", "%1 exaseconds"))); 0050 0051 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0052 Petasecond, 0053 1e+15, 0054 i18nc("time unit symbol", "Ps"), 0055 i18nc("unit description in lists", "petaseconds"), 0056 i18nc("unit synonyms for matching user input", "petasecond;petaseconds;Ps"), 0057 symbolString, 0058 ki18nc("amount in units (real)", "%1 petaseconds"), 0059 ki18ncp("amount in units (integer)", "%1 petasecond", "%1 petaseconds"))); 0060 0061 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0062 Terasecond, 0063 1e+12, 0064 i18nc("time unit symbol", "Ts"), 0065 i18nc("unit description in lists", "teraseconds"), 0066 i18nc("unit synonyms for matching user input", "terasecond;teraseconds;Ts"), 0067 symbolString, 0068 ki18nc("amount in units (real)", "%1 teraseconds"), 0069 ki18ncp("amount in units (integer)", "%1 terasecond", "%1 teraseconds"))); 0070 0071 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0072 Gigasecond, 0073 1e+09, 0074 i18nc("time unit symbol", "Gs"), 0075 i18nc("unit description in lists", "gigaseconds"), 0076 i18nc("unit synonyms for matching user input", "gigasecond;gigaseconds;Gs"), 0077 symbolString, 0078 ki18nc("amount in units (real)", "%1 gigaseconds"), 0079 ki18ncp("amount in units (integer)", "%1 gigasecond", "%1 gigaseconds"))); 0080 0081 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0082 Megasecond, 0083 1e+06, 0084 i18nc("time unit symbol", "Ms"), 0085 i18nc("unit description in lists", "megaseconds"), 0086 i18nc("unit synonyms for matching user input", "megasecond;megaseconds;Ms"), 0087 symbolString, 0088 ki18nc("amount in units (real)", "%1 megaseconds"), 0089 ki18ncp("amount in units (integer)", "%1 megasecond", "%1 megaseconds"))); 0090 0091 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0092 Kilosecond, 0093 1000, 0094 i18nc("time unit symbol", "ks"), 0095 i18nc("unit description in lists", "kiloseconds"), 0096 i18nc("unit synonyms for matching user input", "kilosecond;kiloseconds;ks"), 0097 symbolString, 0098 ki18nc("amount in units (real)", "%1 kiloseconds"), 0099 ki18ncp("amount in units (integer)", "%1 kilosecond", "%1 kiloseconds"))); 0100 0101 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0102 Hectosecond, 0103 100, 0104 i18nc("time unit symbol", "hs"), 0105 i18nc("unit description in lists", "hectoseconds"), 0106 i18nc("unit synonyms for matching user input", "hectosecond;hectoseconds;hs"), 0107 symbolString, 0108 ki18nc("amount in units (real)", "%1 hectoseconds"), 0109 ki18ncp("amount in units (integer)", "%1 hectosecond", "%1 hectoseconds"))); 0110 0111 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0112 Decasecond, 0113 10, 0114 i18nc("time unit symbol", "das"), 0115 i18nc("unit description in lists", "decaseconds"), 0116 i18nc("unit synonyms for matching user input", "decasecond;decaseconds;das"), 0117 symbolString, 0118 ki18nc("amount in units (real)", "%1 decaseconds"), 0119 ki18ncp("amount in units (integer)", "%1 decasecond", "%1 decaseconds"))); 0120 0121 d->addDefaultUnit(UnitPrivate::makeUnit(TimeCategory, 0122 Second, 0123 1, 0124 i18nc("time unit symbol", "s"), 0125 i18nc("unit description in lists", "seconds"), 0126 i18nc("unit synonyms for matching user input", "second;seconds;s"), 0127 symbolString, 0128 ki18nc("amount in units (real)", "%1 seconds"), 0129 ki18ncp("amount in units (integer)", "%1 second", "%1 seconds"))); 0130 0131 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0132 Decisecond, 0133 0.1, 0134 i18nc("time unit symbol", "ds"), 0135 i18nc("unit description in lists", "deciseconds"), 0136 i18nc("unit synonyms for matching user input", "decisecond;deciseconds;ds"), 0137 symbolString, 0138 ki18nc("amount in units (real)", "%1 deciseconds"), 0139 ki18ncp("amount in units (integer)", "%1 decisecond", "%1 deciseconds"))); 0140 0141 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0142 Centisecond, 0143 0.01, 0144 i18nc("time unit symbol", "cs"), 0145 i18nc("unit description in lists", "centiseconds"), 0146 i18nc("unit synonyms for matching user input", "centisecond;centiseconds;cs"), 0147 symbolString, 0148 ki18nc("amount in units (real)", "%1 centiseconds"), 0149 ki18ncp("amount in units (integer)", "%1 centisecond", "%1 centiseconds"))); 0150 0151 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0152 Millisecond, 0153 0.001, 0154 i18nc("time unit symbol", "ms"), 0155 i18nc("unit description in lists", "milliseconds"), 0156 i18nc("unit synonyms for matching user input", "millisecond;milliseconds;ms"), 0157 symbolString, 0158 ki18nc("amount in units (real)", "%1 milliseconds"), 0159 ki18ncp("amount in units (integer)", "%1 millisecond", "%1 milliseconds"))); 0160 0161 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0162 Microsecond, 0163 1e-06, 0164 i18nc("time unit symbol", "µs"), 0165 i18nc("unit description in lists", "microseconds"), 0166 i18nc("unit synonyms for matching user input", "microsecond;microseconds;µs;us"), 0167 symbolString, 0168 ki18nc("amount in units (real)", "%1 microseconds"), 0169 ki18ncp("amount in units (integer)", "%1 microsecond", "%1 microseconds"))); 0170 0171 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0172 Nanosecond, 0173 1e-09, 0174 i18nc("time unit symbol", "ns"), 0175 i18nc("unit description in lists", "nanoseconds"), 0176 i18nc("unit synonyms for matching user input", "nanosecond;nanoseconds;ns"), 0177 symbolString, 0178 ki18nc("amount in units (real)", "%1 nanoseconds"), 0179 ki18ncp("amount in units (integer)", "%1 nanosecond", "%1 nanoseconds"))); 0180 0181 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0182 Picosecond, 0183 1e-12, 0184 i18nc("time unit symbol", "ps"), 0185 i18nc("unit description in lists", "picoseconds"), 0186 i18nc("unit synonyms for matching user input", "picosecond;picoseconds;ps"), 0187 symbolString, 0188 ki18nc("amount in units (real)", "%1 picoseconds"), 0189 ki18ncp("amount in units (integer)", "%1 picosecond", "%1 picoseconds"))); 0190 0191 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0192 Femtosecond, 0193 1e-15, 0194 i18nc("time unit symbol", "fs"), 0195 i18nc("unit description in lists", "femtoseconds"), 0196 i18nc("unit synonyms for matching user input", "femtosecond;femtoseconds;fs"), 0197 symbolString, 0198 ki18nc("amount in units (real)", "%1 femtoseconds"), 0199 ki18ncp("amount in units (integer)", "%1 femtosecond", "%1 femtoseconds"))); 0200 0201 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0202 Attosecond, 0203 1e-18, 0204 i18nc("time unit symbol", "as"), 0205 i18nc("unit description in lists", "attoseconds"), 0206 i18nc("unit synonyms for matching user input", "attosecond;attoseconds;as"), 0207 symbolString, 0208 ki18nc("amount in units (real)", "%1 attoseconds"), 0209 ki18ncp("amount in units (integer)", "%1 attosecond", "%1 attoseconds"))); 0210 0211 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0212 Zeptosecond, 0213 1e-21, 0214 i18nc("time unit symbol", "zs"), 0215 i18nc("unit description in lists", "zeptoseconds"), 0216 i18nc("unit synonyms for matching user input", "zeptosecond;zeptoseconds;zs"), 0217 symbolString, 0218 ki18nc("amount in units (real)", "%1 zeptoseconds"), 0219 ki18ncp("amount in units (integer)", "%1 zeptosecond", "%1 zeptoseconds"))); 0220 0221 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0222 Yoctosecond, 0223 1e-24, 0224 i18nc("time unit symbol", "ys"), 0225 i18nc("unit description in lists", "yoctoseconds"), 0226 i18nc("unit synonyms for matching user input", "yoctosecond;yoctoseconds;ys"), 0227 symbolString, 0228 ki18nc("amount in units (real)", "%1 yoctoseconds"), 0229 ki18ncp("amount in units (integer)", "%1 yoctosecond", "%1 yoctoseconds"))); 0230 0231 d->addCommonUnit(UnitPrivate::makeUnit(TimeCategory, 0232 Minute, 0233 60, 0234 i18nc("time unit symbol", "min"), 0235 i18nc("unit description in lists", "minutes"), 0236 i18nc("unit synonyms for matching user input", "minute;minutes;min"), 0237 symbolString, 0238 ki18nc("amount in units (real)", "%1 minutes"), 0239 ki18ncp("amount in units (integer)", "%1 minute", "%1 minutes"))); 0240 0241 d->addCommonUnit(UnitPrivate::makeUnit(TimeCategory, 0242 Hour, 0243 3600, 0244 i18nc("time unit symbol", "h"), 0245 i18nc("unit description in lists", "hours"), 0246 i18nc("unit synonyms for matching user input", "hour;hours;h"), 0247 symbolString, 0248 ki18nc("amount in units (real)", "%1 hours"), 0249 ki18ncp("amount in units (integer)", "%1 hour", "%1 hours"))); 0250 0251 d->addCommonUnit(UnitPrivate::makeUnit(TimeCategory, 0252 Day, 0253 86400, 0254 i18nc("time unit symbol", "d"), 0255 i18nc("unit description in lists", "days"), 0256 i18nc("unit synonyms for matching user input", "day;days;d"), 0257 symbolString, 0258 ki18nc("amount in units (real)", "%1 days"), 0259 ki18ncp("amount in units (integer)", "%1 day", "%1 days"))); 0260 0261 d->addCommonUnit(UnitPrivate::makeUnit(TimeCategory, 0262 Week, 0263 604800, 0264 i18nc("time unit symbol", "w"), 0265 i18nc("unit description in lists", "weeks"), 0266 i18nc("unit synonyms for matching user input", "week;weeks"), 0267 symbolString, 0268 ki18nc("amount in units (real)", "%1 weeks"), 0269 ki18ncp("amount in units (integer)", "%1 week", "%1 weeks"))); 0270 0271 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0272 JulianYear, 0273 3.15576e+07, 0274 i18nc("time unit symbol", "a"), 0275 i18nc("unit description in lists", "Julian years"), 0276 i18nc("unit synonyms for matching user input", "Julian year;Julian years;a"), 0277 symbolString, 0278 ki18nc("amount in units (real)", "%1 Julian years"), 0279 ki18ncp("amount in units (integer)", "%1 Julian year", "%1 Julian years"))); 0280 0281 d->addUnit(UnitPrivate::makeUnit(TimeCategory, 0282 LeapYear, 0283 3.16224e+07, 0284 i18nc("time unit symbol", "lpy"), 0285 i18nc("unit description in lists", "leap years"), 0286 i18nc("unit synonyms for matching user input", "leap year;leap years"), 0287 symbolString, 0288 ki18nc("amount in units (real)", "%1 leap years"), 0289 ki18ncp("amount in units (integer)", "%1 leap year", "%1 leap years"))); 0290 0291 // Let's say we call that a normal year 0292 d->addCommonUnit(UnitPrivate::makeUnit(TimeCategory, 0293 Year, 0294 3.1536e+07, 0295 i18nc("time unit symbol", "y"), 0296 i18nc("unit description in lists", "year"), 0297 i18nc("unit synonyms for matching user input", "year;years;y"), 0298 symbolString, 0299 ki18nc("amount in units (real)", "%1 year"), 0300 ki18ncp("amount in units (integer)", "%1 year", "%1 years"))); 0301 0302 return c; 0303 } 0304 0305 } // KUnitConversion namespace