Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中检测字符串的语言_Javascript_Node.js_Google Cloud Functions - Fatal编程技术网

Javascript 在node.js中检测字符串的语言

Javascript 在node.js中检测字符串的语言,javascript,node.js,google-cloud-functions,Javascript,Node.js,Google Cloud Functions,我使用从到我的项目的函数 函数在新用户注册时发送欢迎电子邮件,在删除用户帐户时发送再见电子邮件。该函数正在加载到Firebase云函数 我试图补充代码,这样它就可以根据用户的姓名确定他需要用什么语言发送消息 示例: 如果用户的名称是用希伯来语输入的,则函数会向用户发送一条希伯来语消息 如果用户的姓名是用俄语输入的,则函数会向用户发送一条俄语消息 如果用户的名称是用英语输入的,则函数会向用户发送一条英语消息 注意: 这不会连接到浏览器,因为用户将从android应用程序注册。在Firebase上进

我使用从到我的项目的函数

函数在新用户注册时发送欢迎电子邮件,在删除用户帐户时发送再见电子邮件。该函数正在加载到Firebase云函数

我试图补充代码,这样它就可以根据用户的姓名确定他需要用什么语言发送消息

示例:

如果用户的名称是用希伯来语输入的,则函数会向用户发送一条希伯来语消息

如果用户的姓名是用俄语输入的,则函数会向用户发送一条俄语消息

如果用户的名称是用英语输入的,则函数会向用户发送一条英语消息

注意:

这不会连接到浏览器,因为用户将从android应用程序注册。在Firebase上进行用户身份验证后,他将从Firebase云功能获得一条消息

在node.js中,下面的代码不起作用

if (/^[a-zA-Z]+$/.test(text)) //if the English language 
{
  ...
} 
else //if the not English language
{
  ...
}
我很乐意帮助你

也许还有另一种解决方案来本地化消息

谢谢

您可以使用node.js库来检测字符串的语言

但是,由于您的要求是根据用户的语言发送消息,因此最好为用户提供一个选择其首选语言的选项,或者使用javascript通过
navigator.language

你可以使用谷歌翻译api



您可以使用franc和langs npm来检测语言。 但首先,您需要安装franc和langs 安装: 在bash中编写此代码

$node i franc langs
在名为index.js的js文件中编写此代码

const franc = require('franc');
const langs = require('langs');
const input = process.argv[2];
const langcode=franc(input);
if(langcode==='und'){
console.log("Sorry couldnot find the language");}
else{
const language=langs.where("3",langcode);
console.log(`Our guess : ${language.name}`);}
如何在bash中运行文件?

$ node {filename}.js '{sentence}'

您是否考虑过让用户选择所提供的语言?否,因为该功能是通过触发器工作的:注册并注销。浏览器(用户在其中进行交互)是否不知道自己的区域设置,然后可以在某些HTTP头属性中传播。。。例如,根据一个名字来假设某种语言是一种糟糕的假设。例如,我的姓氏来源于意大利,但并不意味着我会说。俄罗斯使用西里尔语,但其他语言也使用西里尔语。如果要猜测语言,请使用
Accept language
-。这就是为什么浏览器在(几乎)每个请求中都发送它的原因。这是可行的,但我不明白如何使用它。我用我的名字Yury Matatov做了一个实验。我在第一个职位上没有学英语。为什么?从句子中识别语言是很容易的,因为名字是专有名词,它们很有可能被误认为是不同的语言。正如我所说,最好向用户提供语言偏好。如果您需要更高的准确性,您可以尝试付费的google translate API示例代码,可以在中找到,可能可以在拉丁字母或西里尔字母之间检测到,该代码可以检测浏览器语言,不是文本语言考虑的边缘情况下,我使用和打字的阿拉伯语,我的浏览器语言是英语。