1.3.0 • Published 2 years ago
ng-pluralize v1.3.0
ng-pluralize

Index
About
An Angular 2+ module to pluralize and singularize any word.
- Try out the demo to see it in action!
 - Visit my website for other cool projects!
 
Setup
Install Node
npm install ng-pluralize --saveImport module
Import
NgPluralizeModuleby adding the following to your parent module (i.e.app.module.ts):import { NgPluralizeModule } from 'ng-pluralize'; @NgModule({ ... imports: [ NgPluralizeModule, ... ], ... }) export class AppModule {}
Usage
Use Service
import {NgPluralizeService} from 'ng-pluralize';
@Injectable()
export class TechCheckService {
  constructor(
    private service:NgPluralizeService
  ) {
    this.service.singularize('dogs'); // dog
    this.service.pluralize('cat'); // cats
    this.service.fromCount('taco', 99); // tacos
  }
}Documentation
singularize()- Convert a word into it's singular form (ie dogs to dog)pluralize()- Convert a word into it's plural form (ie cat to cats)fromCount(word, count, inclusive)- Get the current internet speed in KBPS (kilobytes per second).word: string- The word to pluralizecount: number- How many of the word existinclusive: boolean- Whether to prefix with the number (e.g. 3 ducks)
Examples
pluralize('test') //=> "tests"
pluralize('test', 0) //=> "tests"
pluralize('test', 1) //=> "test"
pluralize('test', 5) //=> "tests"
pluralize('test', 1, true) //=> "1 test"
pluralize('test', 5, true) //=> "5 tests"
pluralize('蘋果', 2, true) //=> "2 蘋果"
// Example of new plural rule:
pluralize.pluralize('regex') //=> "regexes"
pluralize.addPluralRule(/gex$/i, 'gexii')
pluralize.pluralize('regex') //=> "regexii"
// Example of new singular rule:
pluralize.singularize('singles') //=> "single"
pluralize.addSingularRule(/singles$/i, 'singular')
pluralize.singularize('singles') //=> "singular"
// Example of new irregular rule, e.g. "I" -> "we":
pluralize.pluralize('irregular') //=> "irregulars"
pluralize.addIrregularRule('irregular', 'regular')
pluralize.pluralize('irregular') //=> "regular"
// Example of uncountable rule (rules without singular/plural in context):
pluralize.pluralize('paper') //=> "papers"
pluralize.addUncountableRule('paper')
pluralize.pluralize('paper') //=> "paper"
// Example of asking whether a word looks singular or plural:
pluralize.isPlural('test') //=> false
pluralize.isSingular('test') //=> true
// Example of adding a token exception whose case should not be restored:
pluralize.pluralize('promo ID') //=> 'promo IDS'
pluralize.addRestoreCaseException('IDs')
pluralize.pluralize('promo ID') //=> 'promo IDs'Contributing
Thanks
Issues
If you find any issues feel free to open a request in the Issues tab. If I have the time I will try to solve any issues but cannot make any guarantees. Feel free to contribute yourself.
Deploy
Demo
- Run 
npm installto get packages required for the demo and then runnpm run demoto run locally. 
Generate Docs
- Run 
npm run docs:build 
Update Version
- Update version 
package.jsonfiles in both the root anddist/directory following Semantic Versioning (2.0.0). 
Build
- Run 
npm run buildfrom root. 
Test
- Copy 
dist/contents intodemo/node_modules/ng-pluralize/- Run from root:  
cp -fr dist/* demo/node_modules/ng-pluralize/ 
 - Run from root:  
 - Run 
ng servefromdemo/ - Run 
ng build --prodfromdemo/ 
NPM Release
- Run 
npm publishfromdist/directory. 
Update Changelog
- Add updates to 
CHANGELOG.mdin root. 
License
MIT