Node.js 如何在firebase云函数中添加i18n(或获取请求区域设置)
根据本教程,我使用firebase创建了一个简单的动态内容应用程序:例如:Node.js 如何在firebase云函数中添加i18n(或获取请求区域设置),node.js,firebase,express,google-cloud-functions,Node.js,Firebase,Express,Google Cloud Functions,根据本教程,我使用firebase创建了一个简单的动态内容应用程序:例如: const functions=require('firebase-functions'); exports.bigben=functions.https.onRequest((req,res)=>{ 常数小时=(新日期().getHours()%12)+1//伦敦是UTC+1小时; 资源状态(200)。发送(` 时间 ${'BONG'。重复(小时)} `); }); 我的问题是如何将i18n应用于此动态内容,以便根据
const functions=require('firebase-functions');
exports.bigben=functions.https.onRequest((req,res)=>{
常数小时=(新日期().getHours()%12)+1//伦敦是UTC+1小时;
资源状态(200)。发送(`
时间
${'BONG'。重复(小时)}
`);
});
我的问题是如何将i18n应用于此动态内容,以便根据请求的区域设置返回不同的html响应。我在firebase中阅读了i18n文档,但它仅表明使用托管的静态内容是可行的:
我需要在云函数内部完成,所以我相信我需要一种方法来获取函数本身内部的区域设置信息,有人知道如何实现这一点或有什么不同的方法吗?云函数除了您向其提供的信息外,对最终用户一无所知。因此,您要么将区域设置作为输入传递到此函数,要么从其他数据源(如数据库)读取它 如果要在此函数中使用用户的浏览器配置语言环境,可以使用此问题中的信息从浏览器发送的HTTP标头中提取语言环境:
const functions = require('firebase-functions');
exports.bigben = functions.https.onRequest((req, res) => {
const hours = (new Date().getHours() % 12) + 1 // London is UTC + 1hr;
res.status(200).send(`<!doctype html>
<head>
<title>Time</title>
</head>
<body>
${'BONG '.repeat(hours)}
</body>
</html>`);
});