diff --git a/lib/i18n/pl.json b/lib/i18n/pl.json new file mode 100644 index 0000000..6a8ec53 --- /dev/null +++ b/lib/i18n/pl.json @@ -0,0 +1,81 @@ +{ + "useLongScale": false, + "baseSeparator": " ", + "unitSeparator": "", + "base": { + "0": "zero", + "1": "jeden", + "2": "dwa", + "3": "trzy", + "4": "cztery", + "5": "pięć", + "6": "sześć", + "7": "siedem", + "8": "osiem", + "9": "dziewięć", + "10": "dziesięć", + "11": "jedenaście", + "12": "dwanaście", + "13": "trzynaście", + "14": "czternaście", + "15": "piętnaście", + "16": "szesnaście", + "17": "siedemnaście", + "18": "osiemnaście", + "19": "dzięwiętnaście", + "20": "dwadzieścia", + "30": "trzydzieści", + "40": "czterdzieści", + "50": "pięćdziesiąt", + "60": "sześćdziesiąt", + "70": "siedemdziesiąt", + "80": "osiemdziesiąt", + "90": "dziewięćdziesiąt", + "100": "sto", + "200": "dwieście", + "300": "trzysta", + "400": "czterysta", + "500": "pięćset", + "600": "sześćset", + "700": "siedemset", + "800": "osiemset", + "900": "dziewięćset" + }, + "units": [ + { + "useBaseInstead": true, + "useBaseException": [] + }, + { + "singular": "tysiąc", + "few": "tysiące", + "plural": "tysięcy", + "useSingularEnding": true, + "useFewEnding": true, + "avoidPrefixException": [ + 1 + ] + }, + { + "singular": "milion", + "few": "miliony", + "plural": "milionów", + "useSingularEnding": true, + "useFewEnding": true, + "avoidPrefixException": [ + 1 + ] + }, + { + "singular": "bilion", + "few": "biliony", + "plural": "bilionów", + "useSingularEnding": true, + "useFewEnding": true, + "avoidPrefixException": [ + 1 + ] + } + ], + "unitExceptions": [] +} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index 4114399..1cac13e 100644 --- a/lib/index.js +++ b/lib/index.js @@ -2,7 +2,7 @@ exports = module.exports = writtenNumber; var util = require("./util"); -var languages = ["en", "es", "ar", "az", "pt", "fr", "eo", "it", "vi", "tr", "uk", "ru", "id"]; +var languages = ["en", "es", "ar", "az", "pt", "fr", "eo", "it", "vi", "tr", "uk", "ru", "id", "pl"]; var i18n = { en: require("./i18n/en.json"), es: require("./i18n/es.json"), @@ -19,7 +19,8 @@ var i18n = { enIndian: require("./i18n/en-indian.json"), uk: require("./i18n/uk.json"), ru: require("./i18n/ru.json"), - id: require("./i18n/id.json") + id: require("./i18n/id.json"), + pl: require("./i18n/pl.json") }; exports.i18n = i18n; @@ -68,7 +69,7 @@ function writtenNumber(n, options) { language = i18n[writtenNumber.defaults.lang]; } - + var scale = language.useLongScale ? longScale : shortScale; var units = language.units; var unit; @@ -86,7 +87,7 @@ function writtenNumber(n, options) { } var baseCardinals = language.base; - var alternativeBaseCardinals = options.alternativeBase + var alternativeBaseCardinals = options.alternativeBase ? language.alternativeBase[options.alternativeBase] : {}; @@ -153,10 +154,10 @@ function writtenNumber(n, options) { str = unit.plural && (!unit.avoidInNumberPlural || !m) ? unit.plural : unit.singular; - + // Languages with dual str = (r === 2 && unit.dual) ? unit.dual : str; - + // "restrictedPlural" : use plural only for 3 to 10 str = (r > 10 && unit.restrictedPlural) ? unit.singular : str; } @@ -201,11 +202,11 @@ function writtenNumber(n, options) { ret.slice(1) ); } - + // Languages that have separators for all cardinals. if (language.allSeparator) { - for (var j = 0; j < ret.length-1; j++) { - ret[j] = language.allSeparator + ret[j]; + for (var j = 0; j < ret.length - 1; j++) { + ret[j] = language.allSeparator + ret[j]; } } var result = ret.reverse().join(" ");