
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
raycast-language-detector
Advanced tools
Detect languages through Raycast AI or third-party language detectors
Detect languages through Raycast AI or third-party language detectors
npm i raycast-language-detector
import { detect } from "raycast-language-detector";
import { detect as aiDetect } from "raycast-language-detector/ai";
import { detect as francDetect } from "raycast-language-detector/franc";
import { detect as langDetect } from "raycast-language-detector/languagedetect";
import { detect as tinyDetect } from "raycast-language-detector/tinyld";
await detect("Favourite colour");
//=> {languageCode: 'en_GB', languageName: 'British English'}
await aiDetect("New Level Unlocked");
//=> {languageCode: 'en', languageName: 'English'}
francDetect("여기서요?");
//=> {languageCode: 'ko', languageName: 'Korean'}
langDetect("海纳百川,有容乃大");
//=> {languageCode: 'zh', languageName: 'Chinese'}
tinyDetect("一緒に泣いてくれた人");
//=> {languageCode: 'jp', languageName: 'Japanese'}
This uses all possible detectors in the Detector.AI
, Detector.Franc
, Detector.LanguageDetect
, Detector.TinyLD
order. It there is no result, it will fallback to the next detector.
The fallthrough order of detectors can be customized, you can simply pass in an array of Detector
to options.detectors
.
You can also specify the format of language code, possible values are LanguageCodeFormat.ISO_639_1
, LanguageCodeFormat.ISO_639_2
, and LanguageCodeFormat.ISO_639_3
.
export declare const detect: (
text: string,
options?: {
detectors?: Detector[];
languageCodeFormat?: LanguageCodeFormat;
aiDetectOptions?: {
aiAskOptions?: AI.AskOptions;
languageCodes?: string[];
languageCodeFormat?: LanguageCodeFormat;
};
},
) => Promise<Language | undefined>;
import { detect } from "raycast-language-detector";
await detect("Viel Glück");
//=> {languageCode: 'de_DE', languageName: 'German (Germany)'}
This uses the Raycast AI for detecting text.
You don't have to check user's permission to Raycast AI before using this. We already handled it for you. It will return a undefined
if the user doesn't have access to Raycast AI.
export declare const makePrompt: (
text: string,
languageCodes?: string[],
) => string;
export declare const detect: (
text: string,
options?: {
aiAskOptions?: AI.AskOptions;
languageCodes?: string[];
languageCodeFormat?: LanguageCodeFormat;
},
) => Promise<Language | undefined>;
export declare const customPromptDetect: (
prompt: string,
options?: { aiAskOptions?: AI.AskOptions },
) => Promise<Language | undefined>;
import { detect, customPromptDetect } from "raycast-language-detector/ai";
await detect("colour", { languageCodes: ["en_US", "en_GB"] });
//=> {languageCode: 'en_GB', languageName: 'British English'}
// Create a custom prompt which detects `en_US` and `en_GB` only
const customPrompt = makePrompt("pieapple pizza", ["en_US", "en_GB"]);
await customPromptDetect(customPrompt);
//=> {languageCode: 'en_US', languageName: 'American English'}
This uses the franc for detecting text.
export declare const detect: (
text: string,
options?: {
languageCodeFormat?: LanguageCodeFormat;
},
) => Language | undefined;
import { detect } from "raycast-language-detect/franc";
detect("여기서요?");
//=> {languageCode: 'ko', languageName: 'Korean'}
This uses the languagedetect for detecting text.
export declare const detect: (
text: string,
options?: {
languageCodeFormat?: LanguageCodeFormat;
},
) => Language | undefined;
import { detect } from "raycast-language-detector/languagedetector";
detect("海纳百川,有容乃大");
//=> {languageCode: 'zh', languageName: 'Chinese'}
This uses the tinyld for detecting text.
export declare const detect: (
text: string,
options?: {
languageCodeFormat: LanguageCodeFormat;
},
) => Language | undefined;
import { detect } from "raycast-language-detector/tinyld";
detect("一緒に泣いてくれた人");
//=> {languageCode: 'jp', languageName: 'Japanese'}
It exposes some useful utilities for detecting languages.
It uses JavaScript built-in
Intl.DisplayNames
for converting language code to the name.
The input value can be a languageCode
["-" scriptCode
] ["-" regionCode
] *("-" variant
) subsequence of the unicode_language_id grammar in UTS 35's Unicode Language and Locale Identifiers grammar. languageCode
is either a two letters ISO 639-1 language code or a three letters ISO 639-2 language code.
import { languageCodeToName } from "raycast-language-detector/utils";
languageCodeToName("en");
//=> 'English'
languageCodeToName("eng");
//=> 'English'
languageCodeToName("en_US");
//=> 'American English'
languageCodeToName("en_GB");
//=> 'British English'
raycast-langauge-detector
?MIT
FAQs
Detect languages through Raycast AI or third-party language detectors
We found that raycast-language-detector demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.