paricafe/packages/frontend/src/scripts/detect-language.ts

21 lines
639 B
TypeScript
Raw Normal View History

/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
2024-10-17 10:43:41 -05:00
import { detect } from 'tinyld/heavy';
import * as mfm from 'mfm-js';
2024-11-02 10:37:22 -05:00
import { miLocalStorage } from '@/local-storage.js';
export default function detectLanguage(text: string): string {
2024-11-02 10:37:22 -05:00
const localLang = (miLocalStorage.getItem('lang') ?? navigator.language).slice(0, 2);
const nodes = mfm.parse(text);
const filtered = mfm.extract(nodes, (node) => {
return node.type === 'text' || node.type === 'quote';
});
const purified = mfm.toString(filtered);
2024-11-02 10:37:22 -05:00
if (detect(purified) === '') return localLang;
return detect(purified);
}