open-index/open-npm huggingface dataset:
npm package: @inlang/plugin-m-function-matcher
Description: This plugin enables [Sherlock](https://inlang.com/m/r7kp499g/app-inlang-ideExtension) (VS Code extension) to recognize `m.message()` function calls used by [Paraglide JS](https://inlang.com/m/gerre34r/library-inlang-paraglideJs).
Latest version: 2.2.4

# m Function Matcher for Sherlock

This plugin enables [Sherlock](https://inlang.com/m/r7kp499g/app-inlang-ideExtension) (VS Code extension) to recognize `m.message()` function calls used by [Paraglide JS](https://inlang.com/m/gerre34r/library-inlang-paraglideJs).

![Sherlock inline preview](https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@latest/assets/sherlock-preview.svg)

## What it does

- **Inline previews**: See translations directly in your code editor
- **Message extraction**: Extract hardcoded strings into messages
- **Linting**: Get warnings for missing or invalid message references

## Supported file types

- TypeScript (`.ts`, `.tsx`)
- JavaScript (`.js`, `.jsx`)
- Svelte (`.svelte`)
- Vue (`.vue`)
- Astro (`.astro`)

## Installation

Add the plugin to your `project.inlang/settings.json`:

```json
{
	"modules": [
		"https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@latest/dist/index.js"
	]
}
```

Then install [Sherlock](https://marketplace.visualstudio.com/items?itemName=inlang.vs-code-extension) from the VS Code marketplace.

## Matched patterns

The plugin recognizes these patterns:

| Pattern        | Example                         |
| -------------- | ------------------------------- |
| Simple call    | `m.welcome()`                   |
| With variables | `m.greeting({ name: "World" })` |
| In JSX         | `{m.button_label()}`            |
npm package: @inlang/plugin-paraglide-js
Description: This plugin provides the integration for `paraglide-js` into the inlang VSCode extension. It allows you to extract messages from your code, view them inline in the text editor and get lints for your messages.
Latest version: 1.3.0
Deprecated: use the m-function matcher plugin and any import/export plugin of your choice

### Introduction

This plugin provides the integration for `paraglide-js` into the inlang VSCode extension. It allows you to extract messages from your code, view them inline in the text editor and get lints for your messages.

### Installation 

Just install it from the button in the marketplace or add the link manually to your `modules` array in your `project.inlang.json`.

```json
{
// ...
  "modules": [
    "https://cdn.jsdelivr.net/npm/@inlang/plugin-paraglide-js@latest/dist/index.js"
  ]
// ...
}
```

### Usage

The plugin will automatically extract messages from your code and show them inline in the editor. You can then click on the message to open the web editor and translate the message.

1. Install the Inlang VSCode extension
2. Add the plugin to your `project.inlang.json` in the `modules` array
3. ✨ See your messages appear inline in the editor

> There might be a delay before the messages appear in the editor. This is because the plugin needs to be downloaded first. If you want to make sure that everything is setup correctly, reload your workspace.
npm package: @inlang/plugin-sap-ui5
Description: This plugin provides the integration for [SAP UI5](https://sdk.openui5.org/) into the Sherlock Visual Studio Code extension. It allows you to extract messages from your code, view them inline in the text editor, and get lints for your messages.
Latest version: 0.1.0

### Introduction

This plugin provides the integration for [SAP UI5](https://sdk.openui5.org/) into the Sherlock Visual Studio Code extension. It allows you to extract messages from your code, view them inline in the text editor, and get lints for your messages.

Match examples:
```ts
{i18n>message}
```
```ts
getResourceBundle().getText('message')
```
```ts
{{ message }}
```


### Usage

The plugin automatically extracts messages from your code and shows them inline in the editor. You can then click on the message to open the web editor and translate the message.

1. Install the [Visual Studio Code extension (Sherlock)](https://inlang.com/m/r7kp499g)
2. Storage plugin: Select a storage plugin, e.g. [JSON](https://inlang.com/m/ig84ng0o) or use the possibility of [writing your own plugin](https://inlang.com/documentation/plugin/guide).
3. Matcher plugin: Install this plugin (or copy the link below to your project settings)
4. ✨ See your messages appear inline in the editor

> There might be a delay before the messages appear in the editor. This is because the plugin needs to be downloaded first. If you want to ensure everything is setup correctly, reload your workspace.

### Manual installation

```diff
// project.inlang/settings.json
{
  "modules" : [
+    "https://cdn.jsdelivr.net/npm/@inlang/plugin-sap-ui5@latest/index.js"
  ]
}
```

---

_Is something unclear or do you have questions? Reach out to us in our [Discord channel](https://discord.gg/CNPfhWpcAa) or open a [Discussion](https://github.com/opral/monorepo/discussions) or an [Issue](https://github.com/opral/monorepo/issues) on [Github](https://github.com/opral/monorepo)._
npm package: @inlang/plugin-standard-lint-rules
Description: High-quality lint rules maintained by inlang.
Latest version: 3.0.0
Deprecated: lint rules got deprecated in favor of lix validation rules https://github.com/opral/lix-sdk/issues/239

# inlang standard-lint-rules

High-quality lint rules maintained by inlang.

This repository contains rules that the community agreed upon as "standard rules". Read more about inlang's lint system [here](https://inlang.com/documentation/lint).

## Usage

You can add any rule to the config like this:

_inlang.config.js_

```ts
export async function defineConfig(env) {
	// import the rules you want to use
	const { default: standardLintRules } = await env.$import(
		"https://cdn.jsdelivr.net/gh/inlang/standard-lint-rules@2/dist/index.js",
	)

	return {
		// ...
		plugins: [
			// other plugins...
			standardLintRules(),
		],
	}
}
```

Optionally, you can adjust the lint level of each rule or disable rules alltogether:

```ts
standardLintRules({
	// disable a rule
	missingMessage: "off",
	// adjust the lint level of a rule
	identicalPattern: "warning",
})
```

## Rules

Are you missing a rule? Create a PR or add a comment [in the discussion thread](https://github.com/inlang/inlang/discussions/406).

### missingMessage

Checks for missing messages (translations).

If a message exists in the reference resource but is missing in a target resource. Likely, the message has not been translated yet.

#### Example

#### Example

```ts
REFERENCE RESOURCE (FOR EXAMPLE EN)
{
  "login": "Hello to this app",
  "cancel": "Cancel this action",
}
```

```ts
TRANSLATION RESOURCE (FOR EXAMPLE DE)
{
  "login": "Hallo zu dieser App",
}
```

```
Error: The Message with ID 'cancel' does not exist in the target resource DE.
```

### messageWithoutReference

Checks for likely outdated messages (translations).

A message with a missing reference is usually an indication that the message (id) is no longer used in the source code, but resources have not been updated accordingly.

#### Example

```ts
REFERENCE RESOURCE (FOR EXAMPLE EN)
{
  "login": "Hello to this app",
  "cancel": "Cancel this action",
}
```

```ts
TRANSLATION RESOURCE (FOR EXAMPLE DE)
{
  "login": "Hallo zu dieser App",
  "cancel": "Abbrechen",
  "continue": "Fortfahren"
}
```

```
Error: The Message with ID 'continue' does not exist in the reference Resource.
```

### identicalPattern

Checks for identical patterns in different languages.

A message with identical wording in multiple languages can indicate
that the translations are redundant or can be combined into a single
message to reduce translation effort.

```ts
REFERENCE RESOURCE (FOR EXAMPLE EN)
{
  "greeting": "Hello",
  "welcome": "Welcome to our website"
}
```

```ts
TRANSLATION RESOURCE (FOR EXAMPLE DE)
{
  "greeting": "Hello",
  "welcome": "Willkommen auf unserer Webseite"
}
```

```
Warning: Identical message 'Hello' found in language 'de' with message ID 'greeting'.
```
npm package: @inlang/plugin-t-function-matcher
Description: This plugin enables [Sherlock](https://inlang.com/m/r7kp499g/app-inlang-ideExtension) (VS Code extension) to recognize `t("key")` function calls used by most i18n libraries.
Latest version: 2.0.19

# t Function Matcher for Sherlock

This plugin enables [Sherlock](https://inlang.com/m/r7kp499g/app-inlang-ideExtension) (VS Code extension) to recognize `t("key")` function calls used by most i18n libraries.

![Sherlock inline preview](https://cdn.jsdelivr.net/npm/@inlang/plugin-t-function-matcher@latest/assets/sherlock-preview.svg)

## What it does

- **Inline previews**: See translations directly in your code editor
- **Message extraction**: Extract hardcoded strings into messages
- **Linting**: Get warnings for missing or invalid message references

## Supported file types

- TypeScript (`.ts`, `.tsx`)
- JavaScript (`.js`, `.jsx`)
- Svelte (`.svelte`)
- Vue (`.vue`)
- Astro (`.astro`)

## Installation

Add the plugin to your `project.inlang/settings.json`:

```json
{
  "modules": [
    "https://cdn.jsdelivr.net/npm/@inlang/plugin-t-function-matcher@latest/dist/index.js"
  ]
}
```

Then install [Sherlock](https://marketplace.visualstudio.com/items?itemName=inlang.vs-code-extension) from the VS Code marketplace.

## Matched patterns

The plugin recognizes these patterns:

| Pattern | Example |
|---------|---------|
| Simple call | `t("welcome")` |
| With variables | `t("greeting", { name: "World" })` |
| With namespace | `t("common:button")` |
| In JSX | `{t("label")}` |
npm package: @inlang/recommend-ninja
Description: A package to recommend Ninja
Latest version: 0.1.1
Deprecated: ninja got deprecated in favor of lix validation rules https://github.com/opral/lix-sdk/issues/239

# Ninja 🥷 recommendation package

## Features

- **Workflow Verification**: Ensures that the GitHub Actions workflow incorporating the Ninja i18n lint action is present in a project's `.github/workflows` directory.
- **Automated Workflow Addition**: If not present, the package can automatically add a workflow to incorporate Ninja i18n linting into the project.

## Installation

Add this package to your `dependencies` in `package.json` & install it using `pnpm install`:

```bash
"@inlang/recommend-ninja": "workspace:*"
```

## Usage

This module exports two main asynchronous functions:

### `shouldRecommend(fs: NodeishFilesystem): Promise<boolean>`

Verifies if the Ninja i18n GitHub Action is adopted within the GitHub workflow files of your project.

#### Parameters

- `fs`: A `NodeishFilesystem` object for file system interactions.

#### Returns

- `Promise<boolean>`: `true` if the Ninja i18n GitHub Action workflow is found, `false` otherwise.

### `add(fs: NodeishFilesystem): Promise<void>`

Adds the Ninja i18n GitHub Action workflow to the repository's `.github/workflows` directory if it's not already present.

#### Parameters

- `fs`: A `NodeishFilesystem` object for file system interactions.

## Example

```typescript
import { shouldRecommend, add } from '@inlang/recommend-ninja';
import { NodeishFilesystem } from '@lix-js/fs';

async function ensureNinjaAdoption(fs: NodeishFilesystem) {
  const isWorkflowAdopted = await shouldRecommend(fs);

  if (!isWorkflowAdopted) {
    // Optionally prompt for user confirmation
    const userConfirmed = await promptUser("Do you want to add the Ninja i18n workflow?");

    if (userConfirmed) {
      await add(fs);
      console.log('Ninja i18n workflow added.');
    } else {
      console.log('User declined to add Ninja i18n workflow.');
    }
  } else {
    console.log('Ninja i18n workflow is already adopted.');
  }
}
```

## Contributing

Contributions are highly appreciated! Whether it's feature requests, bug reports, or pull requests, please feel free to contribute. Check out our [Discord](https://discord.gg/CNPfhWpcAa) for community discussions and updates.