{"id":29615542,"url":"https://github.com/njirolu/ruci","last_synced_at":"2025-07-21T00:04:20.756Z","repository":{"id":304205489,"uuid":"1017995901","full_name":"njirolu/ruci","owner":"njirolu","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-11T17:06:14.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-11T18:28:10.671Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/njirolu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-11T12:35:45.000Z","updated_at":"2025-07-11T17:06:05.000Z","dependencies_parsed_at":"2025-07-11T18:38:20.715Z","dependency_job_id":null,"html_url":"https://github.com/njirolu/ruci","commit_stats":null,"previous_names":["njirolu/ruci"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/njirolu/ruci","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fruci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fruci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fruci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fruci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njirolu","download_url":"https://codeload.github.com/njirolu/ruci/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fruci/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266217170,"owners_count":23894242,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-07-21T00:04:20.217Z","updated_at":"2025-07-21T00:04:20.743Z","avatar_url":"https://github.com/njirolu.png","language":"TypeScript","funding_links":[],"categories":["Development Utilities"],"sub_categories":["Internationalization"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/njirolu/ruci/refs/heads/main/assets/banner.png\" alt=\"Ruci Banner\" width=\"480\"/\u003e\n\u003c/p\u003e\n\n## Ruci: Empowering Enterprise Angular with Robust ngx-translate Assurance\n\n**Ruci** is a powerful **Command Line Interface (CLI) tool** meticulously crafted to streamline the **internationalization (i18n) validation process** for your **Angular projects** utilizing **ngx-translate**. Ruci empowers developers to maintain high-quality translation files, ensuring a consistent and error-free user experience across all languages.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [General Usage](#general-usage)\n- [Options](#options)\n- [Commands](#commands)\n- [Examples](#examples)\n  - [Initializing Configuration](#initializing-configuration)\n  - [Running Checks](#running-checks)\n\n## Installation\n\nUsing **bun**:\n\n```bash\nbun add --dev ruci\n```\n\nUsing **npm**:\n\n```bash\nnpm install --save-dev ruci\n```\n\nUsing **yarn**:\n\n```bash\nyarn add --dev ruci\n```\n\nAfter installation, `ruci` can be accessed via a command in your `package.json` file or directly in the CLI.\n\nUpdate your `package.json` and add a new command:\n\n```bash\n\"scripts\": {\n    // ...other commands,\n    \"ruci\": \"ruci\"\n}\n```\n\nNow you can run the `ruci` command directly from the command-line, i.e. `bun ruci`.\n\nAlternatively you can also access the library directly:\n\n```bash\nnode_modules/.bin/ruci\n```\n\n## General Usage\n\nTo use `ruci`, you typically run it from your project's root directory. It will load configuration from `ruci.config.json` if present, or you can provide options directly via the CLI.\n\nExample:\n\n```bash\nnpx ruci\n```\n\n## Options\n\n`ruci` provides several options to customize its behavior. These options can be set via the command line or configured in `ruci.config.json`.\n\n### --base-language-path \u003cpath\u003e\n\nPath to the base language file (e.g., `src/assets/i18n/en.json`). This file serves as the reference for all checks.\n\n### --language-paths \u003cpaths...\u003e\n\nPaths to other language files or glob patterns (e.g., `src/assets/i18n/es.json`, `src/assets/i18n/fr.json`). Multiple paths can be provided.\n\n### --project-files \u003cfiles...\u003e\n\nPaths to project files or glob patterns where translation keys are used (e.g., `src/app/**/*.ts`, `src/app/**/*.html`). Multiple paths can be provided.\n\n### --missing-keys \u003clevel\u003e\n\nFind missing keys in translation files. Available levels: `warn`, `error`, `skip`.\n\n### --unused-keys \u003clevel\u003e\n\nFind unused keys in translation files. Available levels: `warn`, `error`, `skip`.\n\n### --duplicate-values \u003clevel\u003e\n\nFind duplicate values across translation files. Available levels: `warn`, `error`, `skip`.\n\n### --verify-project-keys \u003clevel\u003e\n\nVerify translation keys used in project files exist in translation files. Available levels: `warn`, `error`, `skip`.\n\n## Commands\n\n### init\n\nInitializes a `ruci.config.json` file in the current directory with a default configuration. This command is useful for quickly setting up `ruci` in a new project.\n\n```bash\nnpx ruci init\n```\n\n## Examples\n\n### Initializing Configuration\n\nTo create a default `ruci.config.json` file:\n\n```bash\nnpx ruci init\n```\n\nThis will create a file similar to this:\n\n```json\n{\n  \"baseLanguagePath\": \"src/assets/i18n/en.json\",\n  \"languagePaths\": [\n    \"src/assets/i18n/es.json\",\n    \"src/assets/i18n/fr.json\"\n  ],\n  \"projectFiles\": [\n    \"src/app/**/*.ts\",\n    \"src/app/**/*.html\"\n  ],\n  \"options\": {\n    \"missingKeys\": \"skip\",\n    \"unusedKeys\": \"skip\",\n    \"duplicateValues\": \"skip\",\n    \"verifyProjectKeys\": \"skip\"\n  }\n}\n```\n\n### Running Checks\n\nTo run `ruci` with the configuration defined in `ruci.config.json`:\n\n```bash\nnpx ruci\n```\n\nTo run specific checks via CLI options:\n\n```bash\nnpx ruci \\\n--base-language-path src/assets/i18n/id.json \\\n--language-paths src/assets/i18n/en.json src/assets/i18n/it.json \\\n--project-files \"src/app/**/*.ts\" \"src/app/**/*.html\" \\\n--missing-keys error \\\n--unused-keys error \\\n--duplicate-values error \\\n--verify-project-keys warn\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjirolu%2Fruci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjirolu%2Fruci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjirolu%2Fruci/lists"}