{"_id":"angular-translate-extract","_rev":"4-2781f69766330a7706d6758257461e45","name":"angular-translate-extract","description":"Extract all the translation keys for angular-translate project","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"angular-translate-extract","description":"Extract all the translation keys for angular-translate project","main":"./lib/index.js","version":"0.0.1","scripts":{"test":"grunt test","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"engines":{"node":">= 0.8.0"},"devDependencies":{"grunt":"~0.4.0","grunt-bump":"0.0.13","grunt-contrib-clean":"^0.5.0","grunt-contrib-copy":"^0.5.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.1","grunt-markdox":"^0.1.0","nodeunit":"^0.9.1","semantic-release":"^4.3.5"},"peerDependencies":{"grunt":">=0.4.0"},"repository":{"type":"git","url":"git+https://github.com/Boulangerie/angular-translate-extract.git"},"keywords":["AngularJS","angular-translate","gruntplugin","grunt","javascript","js","translate","i18n"],"author":{"name":"Benjamin Longearet"},"bugs":{"url":"https://github.com/Boulangerie/angular-translate-extract/issues"},"licenses":[{"type":"MIT","url":"https://github.com/Boulangerie/angular-translate-extract/blob/master/LICENSE"}],"dependencies":{"flat":"^1.2.0","glob-expand":"0.1.0","json-stable-stringify":"^1.0.0","lodash":"~2.4.1","log":"1.4.0","pofile":"^0.2.12"},"gitHead":"8a035e32cb105f76edd4c45fbc5877cd96583db4","homepage":"https://github.com/Boulangerie/angular-translate-extract#readme","_id":"angular-translate-extract@0.0.1","_shasum":"21d37bda7daf86a9234e1b8859c902fec879509b","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"firehist","email":"blongearet@gmail.com"},"dist":{"shasum":"21d37bda7daf86a9234e1b8859c902fec879509b","tarball":"https://registry.npmjs.org/angular-translate-extract/-/angular-translate-extract-0.0.1.tgz","integrity":"sha512-eongFyj+B8c0UKUg6U9FkbPbZeSPBOk5L7t0OpwRb0wxLDRSEoHGOT9DMn3ka4sfnDNQSGhMia/WufgMHqFfNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICBZmpl8KUEWAg7Fyt2Mke9k5sgCxdfZT4+JuTLLiEbcAiEA1wH9AOGpcluWzZOGfZKNfFaq8Ap9QZsRYK9aUWqQDCA="}]},"maintainers":[{"name":"firehist","email":"blongearet@gmail.com"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/angular-translate-extract-0.0.1.tgz_1456584078981_0.19573543639853597"}},"1.0.0":{"name":"angular-translate-extract","description":"Extract all the translation keys for angular-translate project","main":"./lib/index.js","version":"1.0.0","scripts":{"commit":"git cz","test":"mocha tests -w --compilers js:babel-register","test:single":"babel-node node_modules/.bin/babel-istanbul cover _mocha -- tests -R spec","check-coverage":"istanbul check-coverage --statements 50 --branches 35 --functions 75 --lines 50","report-coverage":"cat ./coverage/lcov.info | codecov","prebuild":"rm -Rf lib && mkdir lib","build":"babel -d lib/ src/","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"engines":{"node":">= 0.8.0"},"devDependencies":{"babel-cli":"6.5.1","babel-istanbul":"0.6.0","babel-preset-es2015":"6.6.0","babel-register":"6.5.2","chai":"3.5.0","codecov.io":"0.1.6","commitizen":"2.5.0","cz-conventional-changelog":"1.1.5","grunt":"~0.4.0","grunt-bump":"0.0.13","grunt-contrib-clean":"^0.5.0","grunt-contrib-copy":"^0.5.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.1","grunt-markdox":"^0.1.0","istanbul":"0.4.2","mocha":"2.4.5","nodeunit":"^0.9.1","semantic-release":"^4.3.5","sinon":"1.17.3"},"peerDependencies":{"grunt":">=0.4.0"},"repository":{"type":"git","url":"git+https://github.com/Boulangerie/angular-translate-extract.git"},"keywords":["AngularJS","angular-translate","gruntplugin","grunt","javascript","js","translate","i18n"],"author":{"name":"Benjamin Longearet"},"bugs":{"url":"https://github.com/Boulangerie/angular-translate-extract/issues"},"licenses":[{"type":"MIT","url":"https://github.com/Boulangerie/angular-translate-extract/blob/master/LICENSE"}],"dependencies":{"flat":"^1.2.0","glob-expand":"0.1.0","json-stable-stringify":"^1.0.0","lodash":"4.5.1","lodash-deep":"1.6.0","log":"1.4.0","pofile":"^0.2.12"},"czConfig":{"path":"node_modules/cz-conventional-changelog/"},"gitHead":"099e0d171cd18884791ee081f1baeeb4f43d86e0","homepage":"https://github.com/Boulangerie/angular-translate-extract#readme","_id":"angular-translate-extract@1.0.0","_shasum":"813ae2e930d6dd742581e9c2bef84b393c3b6ae9","_from":".","_npmVersion":"2.13.3","_nodeVersion":"0.12.7","_npmUser":{"name":"firehist","email":"blongearet@gmail.com"},"dist":{"shasum":"813ae2e930d6dd742581e9c2bef84b393c3b6ae9","tarball":"https://registry.npmjs.org/angular-translate-extract/-/angular-translate-extract-1.0.0.tgz","integrity":"sha512-5gh124ZFjwr9+7CcAaxVTGmXdJESLnW70O1pqIkdFIgfbLcgUWMgcPMNVD2zGYYB5fJLVBAPrbYK3KQgZ6vw1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClD62wbFZteFLr7TQRHpfKP9D9COazebJYEu1Vag4U+QIhAMpO2zVz7+cNVIuOQnh2iFrRE3k3vOuwYGdGvNyMaGVk"}]},"maintainers":[{"name":"firehist","email":"blongearet@gmail.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/angular-translate-extract-1.0.0.tgz_1456870222662_0.5402900546323508"}}},"readme":"# angular-translate-extract\n\n[![NPM](https://nodei.co/npm/angular-translate-extract.png)](https://nodei.co/npm/angular-translate-extract/)\n\n[![NPM Package](https://img.shields.io/npm/v/npm.svg)](https://www.npmjs.com/package/angular-translate-extract) [![Build Status](https://travis-ci.org/Boulangerie/angular-translate-extract.svg?branch=master)](https://travis-ci.org/Boulangerie/angular-translate-extract)  [![codecov.io](https://codecov.io/github/codecov/codecov-ruby/coverage.svg?branch=master)](https://codecov.io/github/codecov/codecov-ruby?branch=master)  [![NPM Download](https://img.shields.io/npm/dt/angular-translate-extract.svg)](https://www.npmjs.com/package/angular-translate-extract) \n\nThis node package aims to extract all the translation keys for angular-translate project. It searches in given folder to extract key + default translation if exists. eg:\n\n* `{{'KEY_IN_VIEW' | translate }}`\n* `$translate.instant('KEY_IN_SCRIPT')`\n\nEach found key is then extracted to json or po files with translations. For\neach local defined in Gruntfile separate json is created:\n\n    {\n      \"KEY_IN_VIEW\": \"\",\n      \"KEY_IN_SCRIPT\": \"\"\n    }\n\nor\n\n    msgid \"\"\n    msgstr \"\"\n    \"Content-Type: text/plain; charset=UTF-8\\n\"\n    \"Content-Transfer-Encoding: 8bit\\n\"\n    \"Project-Id-Version: \\n\"\n\n    msgctxt \"\"\n    msgid \"all.tato.tati\"\n    msgstr \"\"\n\nTranslation should be provided in the created files. On the next run,\n`Boulangerie/angular-translate-extract` will not change keys already translated.\nIt will only add keys that were added to the source and remove the\nones that are not present anymore in the source.\n\n## Getting Started\nInstall this node package next to your project.\n\nUse `npm install -D angular-translate-extract`\n\nangular-translate-extract provide an `extract` method to start the extraction.\n\nThis extraction is made to work with the [angular-translate][angular_translate] project created by [Pascal Precht][pascalPrecht]\n\n## Grunt & Gulp integration\n\nWIP!\n\n[grunt-angular-translate](https://github.com/Boulangerie/grunt-angular-translate)\n\n[gulp-angular-translate](https://github.com/Boulangerie/gulp-angular-translate)\n\n## Use cases\n\n### Views\n\n#### Filters\n\n`{{'TRANSLATION' | translate}}`\n\n`{{'TRANSLATION' | translate:XXXXXX}}`\n\n#### Directives\n\n`<a href=\"#\" translate>TRANSLATION</a>`\n\n#### Directives plural (custom attribute angular-plural-extract to automatize extraction)\n\n`<span translate=\"TRANSLATION_KEY\" angular-plural-extract=\"['TEXT FOR ONE','# TEXT FOR OTHER']\" translate-values=\"{NB: X}\" translate-interpolation=\"messageformat\"></span>`\n\n### Javascript\n\n#### Filter\n\n`$filter(\"translate\")(\"TRANSLATION\")`\n\n#### Service angular-translate\n\n`$translate('TRANSLATION')`\n\n`$translate.instant('TRANSLATION')`\n\n`$translate(['TRANSLATION', 'TRANSLATION_1'])`\n\n#### Ternary operators\n\n`{{ myVar ? 'KEY_ONE' : 'KEY_TWO' }}`\n`{{ myVar ? \"KEY_ONE\" : \"KEY_TWO\" }}`_\n`{{ myVar ? \"KEY_ONE\" : \"KEY_TWO\" | translate }}`_\n`myVar ? \"KEY_ONE\" : \"KEY_TWO\"`_\n\n## Configuration\n\n### Options\n\nOptions src and jsonSrc may be specified according to the grunt Configuring tasks guide.\n\n- [src](#src)\n- [nullEmpty](#nullempty-v026)\n- [namespace](#namespace-v026)\n- [interpolation](#interpolation)\n- [jsonSrc](#jsonSrc)\n- [jsonSrcName](#jsonSrcName)\n- [defaultLang](#defaultLang)\n- [lang](#lang)\n- [prefix](#prefix)\n- [suffix](#suffix)\n- [dest](#dest)\n- [safeMode](#safeMode)\n- [stringifyOptions](#stringifyOptions)\n- [keyAsText](#keyAsText)\n\n#### src\n\nType: `Array`\nDefault: `undefined`\n\nExample: `[ 'src/**/*.js' ]`\n\nDefine a file list to parse for extract translation.\n\n#### nullEmpty (v0.2.6)\n\nType: `Boolean`\nDefault: `false`\n\nExample: `true`\n\nIf set to true, it will replace all final empty translations by *null* value.\n\n#### namespace (v0.2.6)\n\nType: `Boolean`\nDefault: `false`\n\nExample: `true`\n\nIf set to true, it will organize output JSON like the following.\n`````\n{\n  \"MODULE\": {\n    \"CATEGORY\": {\n      \"TITLE\": \"My Title\",\n      \"TITLE1\": null\n    }\n  }\n}\n`````\n\n\n#### interpolation\n\nType: `Object`\nDefault: `{ startDelimiter: '{{', endDelimiter: '}}' }`\n\nExample: `{ startDelimiter: '[[', endDelimiter: ']]' }`\n\nDefine interpolation symbol use for your angular application.\nThe angulars docs about ($interpolateProvider)[http://docs.angularjs.org/api/ng.$interpolateProvider] explain how you can configure the interpolation markup.\n\n#### jsonSrc\n\nType: `Array`\nDefault: `undefined`\n\nExample: `[ 'config/*.json' ]`\n\nDefine a JSON file list to parse for extract translation.\n\n#### jsonSrcName\n\nType: `Array`\nDefault: `undefined`\n\nExample: `[ 'label', 'name' ]`\n\nDefine the keys to find corresponding values through JSON object.\n\n#### defaultLang\n\nType: `String`\nDefault: `undefined`\n\nExample: `\"en_US\"`\n\nDefine the default language. For default language, by default the key will be set as value.\n\n#### customRegex\n\nType: `Array<String>`\nDefault: `[]`\n\nExample: `\ncustomRegex: [\n  'tt-default=\"\\'((?:\\\\\\\\.|[^\\'\\\\\\\\])*)\\'\\\\|translate\"'\n],\n`\n\nWill extract `MY.CUSTOM.REGEX` from the following HTML: `<article tt-default=\"'MY.CUSTOM.REGEX'|translate\">`.\n\nEnjoy your custom regex guys!\n\n#### lang\n\nType: `Array`\nDefault: `undefined`\n\nExample: `['fr_FR', 'en_US']`\n\nDefine language to be extract (fr__FR, en__US, xxx). xxx will be the output filename wrapped by prefix and suffix option.\n\n#### prefix\n\nType: `String`\nDefault: `\"\"`\n\nExample: `\"project_\"`\n\nSet prefix to output filenames (cf [angular-translate#static-files][https://github.com/PascalPrecht/angular-translate/wiki/Asynchronous-loading#using-extension-static-files-loader]).\n\n#### suffix\n\nType: `String`\nDefault:  `\"\"`\n\nExample: `\".json\"`\n\nSet suffix to output filenames (cf [angular-translate#static-files][https://github.com/PascalPrecht/angular-translate/wiki/Asynchronous-loading#using-extension-static-files-loader]).\n\n#### dest\n\nType: `String`\nDefault:  `\"\"`\n\nExample: `\"src/assets/i18n\"`\n\nRelative path to output folder.\n\n#### safeMode\n\nType: `Boolean`\nDefault: `false`\n\nIf safeMode is set to `true` the deleted translations will stay in the output lang file.\n\n#### stringifyOptions\n\nType: `Boolean` or `Object`\nDefault: `false`\n\nIf stringifyOptions is set to `true` the output will be sort (case insensitive).\nIf stringifyOptions is an `object`, you can easily check [json-stable-stringify](https://github.com/substack/json-stable-stringify) README.\n\n#### keyAsText\nType: `Boolean`\nDefault: `false`\n\nIf keyAsText is set to `true` translations keys works also as value for this translation.\n\n## Test\n\nYou will find the tests files into `test` directory.\n\nTo run test use `grunt test`\n\nAll testing files following this pattern: `./test/*_test.js`\n\nTesting running with `nodeunit`.\n\n_To be improved... Feel free :D_\n\n## Contributing\n\nSpecial thanks to: @SKoschnicke SKoschnicke\n\n@AlaaSulimankhazaleh\n@arianerocha arianerocha\n@ClouDesire ClouDesire\n@d42f d42f\n@elhigu elhigu\n@gitter-badger gitter-badger\n@gruntjs-updater gruntjs-updater\n@IFours IFours\n@jdahlbom jdahlbom\n@JeroMiya JeroMiya\n@jplusplus jplusplus\n@jsteenkamp jsteenkamp\n@jtheoof jtheoof\n@laketea laketea\n@marcin-wosinek marcin-wosinek\n@mchambaud mchambaud\n@openheimer openheimer\n@peng-jiesi peng-jiesi\n@phw phw\n@rafallo rafallo\n@realityking realityking\n@rewoo rewoo\n@RobertSasak RobertSasak\n@sclassen sclassen\n@liamlin liamlin\n@orbweb orbweb\n@tamtakoe tamtakoe\n@telpalbrox telpalbrox\n@TiagoLopes92 TiagoLopes92\n@tomteman tomteman\n@tthew tthew\n@twolff-iow twolff-iow\n@wilgert wilgert\n\n## License\n\nCopyright (c) 2013 Benjamin Longearet\nLicensed under the MIT license.\n\n[grunt]: http://gruntjs.com/\n[getting_started]: https://github.com/gruntjs/grunt/wiki/Getting-started\n[angular_translate]: https://github.com/PascalPrecht/angular-translate\n[pascalPrecht]: https://github.com/PascalPrecht\n\n[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/882c3bab5f5b2d7c63f79337a9a3688a \"githalytics.com\")](http://githalytics.com/Boulangerye/angular-translate-extract)\n","maintainers":[{"name":"firehist","email":"blongearet@gmail.com"}],"time":{"modified":"2022-06-13T02:58:41.943Z","created":"2016-02-27T14:41:20.324Z","0.0.1":"2016-02-27T14:41:20.324Z","1.0.0":"2016-03-01T22:10:25.430Z"},"homepage":"https://github.com/Boulangerie/angular-translate-extract#readme","keywords":["AngularJS","angular-translate","gruntplugin","grunt","javascript","js","translate","i18n"],"repository":{"type":"git","url":"git+https://github.com/Boulangerie/angular-translate-extract.git"},"author":{"name":"Benjamin Longearet"},"bugs":{"url":"https://github.com/Boulangerie/angular-translate-extract/issues"},"readmeFilename":"README.md"}