{"id":16427882,"url":"https://github.com/hueitan/i18n-generator","last_synced_at":"2026-04-04T13:00:34.487Z","repository":{"id":401944,"uuid":"20597145","full_name":"hueitan/i18n-generator","owner":"hueitan","description":"[INACTIVE] i18n json files generator for node, web browser and command line","archived":false,"fork":false,"pushed_at":"2023-01-06T01:31:57.000Z","size":945,"stargazers_count":71,"open_issues_count":27,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-04-04T12:59:45.651Z","etag":null,"topics":["converter","i18n","internationalization-data","javascript","json","node"],"latest_commit_sha":null,"homepage":"http://hueitan.github.io/i18n-generator/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hueitan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-07T16:19:45.000Z","updated_at":"2025-06-04T21:30:30.000Z","dependencies_parsed_at":"2023-01-13T10:15:15.964Z","dependency_job_id":null,"html_url":"https://github.com/hueitan/i18n-generator","commit_stats":null,"previous_names":["huei90/i18n-generator"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/hueitan/i18n-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueitan%2Fi18n-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueitan%2Fi18n-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueitan%2Fi18n-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueitan%2Fi18n-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hueitan","download_url":"https://codeload.github.com/hueitan/i18n-generator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueitan%2Fi18n-generator/sbom","scorecard":{"id":472189,"data":{"date":"2025-08-11","repo":{"name":"github.com/hueitan/i18n-generator","commit":"55610ff7c4b1c40ca2f2cc22b471796c712af0b1"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/3 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"41 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-wg6g-ppvx-927h","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-g4rg-993r-mgx7","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T14:13:47.146Z","repository_id":401944,"created_at":"2025-08-19T14:13:47.146Z","updated_at":"2025-08-19T14:13:47.146Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31400460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["converter","i18n","internationalization-data","javascript","json","node"],"created_at":"2024-10-11T08:14:20.924Z","updated_at":"2026-04-04T13:00:34.449Z","avatar_url":"https://github.com/hueitan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# i18n-generator\n[![Build Status](https://travis-ci.org/hueitan/i18n-generator.svg?branch=master)](https://travis-ci.org/hueitan/i18n-generator)\n[![Coverage Status](https://coveralls.io/repos/github/hueitan/i18n-generator/badge.svg?branch=master)](https://coveralls.io/github/hueitan/i18n-generator?branch=master)\n[![Dependency Status](https://david-dm.org/hueitan/i18n-generator.svg)](https://david-dm.org/hueitan/i18n-generator)\n[![devDependency Status](https://david-dm.org/hueitan/i18n-generator/dev-status.svg)](https://david-dm.org/hueitan/i18n-generator#info=devDependencies)\n\ni18n json files generator for **node**, **web browser** and **command line**.\n\n[i18n Online Demo Tools](http://hueitan.github.io/i18n-generator) / [Edit Demo CSV File](https://docs.google.com/spreadsheets/d/14BsnsXmm4B4mk_WxUb80VfbfKch0xGFZZ__tpH67_CA/edit?usp=sharing)\n\n![screen shot 2017-09-25 at 11 34 33 pm](https://user-images.githubusercontent.com/2560096/30832081-1f69446c-a24a-11e7-8f9f-ada4232b477d.png)\n\n## Getting Started\n\n**node.js**\u003cbr/\u003e\nInstall the module with: `npm install i18n-generator`\n\n```es6\nconst i18nGenerator = require('i18n-generator');\n\nconst inputFile  = 'input.txt';\nconst outputPath = 'output';\n\ni18nGenerator(inputFile, outputPath);\n\n// js-beautify your json\ni18nGenerator(inputFile, outputPath, true);\n// or given js-beautify options\ni18nGenerator(inputFile, outputPath, { indent_size: 2 });\n// settings split variable (default as |)\ni18nGenerator(inputFile,outputPath, options, 'csv');\n\n// options =\u003e https://github.com/beautify-web/js-beautify#options\n// splitter support\n// | =\u003e pipe (default)\n// , =\u003e csv\n// \\t =\u003e tsv\n\n// get output data api\n// input can be file (.txt) or string (data)\ni18nGenerator.get(input, 'csv', (err, data) =\u003e {\n    console.log(data);\n    // =\u003e output i18n data\n});\n\n// or you can\ni18nGenerator.get(input, (err, data) =\u003e {\n\tconsole.log(data);\n});\n```\n\n**browser**\n\n```html\n\u003cscript src=\"i18n-generator.js\"\u003e\u003c/script\u003e\n```\n\n```js\nconst { i18n } = window;\ni18n(inputData, 'csv', (err, data) =\u003e {\n    console.log(data);\n    // =\u003e output i18n data\n});\n\n// or easily\ni18n(inputData, (err, data) =\u003e {\n\tconsole.log(data);\n\t// =\u003e split default pipe |\n});\n```\n\n**cli**\n```bash\n$ i18n input.txt output\n\n# generate from csv or tsv\n$ i18n input.csv output\n\n# watch file\n$ i18n input.txt output --watch\n```\n\n## Workflow\n\n**input file**\n```\ni18n=\u003e, en, zh_TW, de, my\nyou, you, 你, Du, kamu\nI, I, 我, ich, Saya\nlove, love, 喜歡, liebe, cinta\neat, eat, 吃, essen, makan\nilovegithub, i love github, 我愛 Github, ich liebe Github, Saya cinta pada Github\n```\n\n**output (de.json)**\n```json\n{\"you\":\"Du\",\"I\":\"ich\",\"love\":\"liebe\",\"eat\":\"essen\",\"ilovegithub\":\"ich liebe Github\"}\n```\n**output (en.json)**\n```json\n{\"you\":\"you\",\"I\":\"I\",\"love\":\"love\",\"eat\":\"eat\",\"ilovegithub\":\"i love github\"}\n```\n**output (my.json)**\n```json\n{\"you\":\"kamu\",\"I\":\"Saya\",\"love\":\"cinta\",\"eat\":\"makan\",\"ilovegithub\":\"Saya cinta pada Github\"}\n```\n**output (zh_TW.json)**\n```json\n{\"you\":\"你\",\"I\":\"我\",\"love\":\"喜歡\",\"eat\":\"吃\",\"ilovegithub\":\"我愛 Github\"}\n```\n\n**Try Advance**\n\nWhen the sentence includes splitter\n\n```\ni18n=\u003e, en, zh_TW, de, my\nilovegithub, \"i love github but u\", \"我愛 github,但我也愛 git\", was du gesagt, \"saya pun\"\n```\n\n**Try Nest**\n\ni18n-generator covers the nesting, use `=\u003e` to open, `\u003c=` to close\n```\ni18n=\u003e, en, zh_TW, de, my\nilovegithub, i love github, 我愛 Github, ich liebe Github, Saya cinta pada Github\n=\u003e global\nsleep, sleep, 睡覺, schlafen, tidur\nmorning, morning, 早安, Morgen, pagi\n=\u003e people\nAhmad, Ahmad, Ahmad, Ahmad, Ahmad\n\u003c=\nBack, back, 回來, terug, balik\n```\n\n*It's work! Cool right ? You can try it on [online demo tools](http://hueitan.github.io/i18n-generator)*\n\n## License\nCopyright (c) 2014-Present [Huei Tan](https://github.com/hueitan). Licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhueitan%2Fi18n-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhueitan%2Fi18n-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhueitan%2Fi18n-generator/lists"}