【发布时间】:2020-11-25 19:55:25
【问题描述】:
我按照本教程创建了一个带有 firebase 的简单动态内容应用程序:https://firebase.google.com/docs/hosting/functions 例如:
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>`);
});
我的问题是如何将 i18n 应用于此动态内容,以便我可以根据请求的语言环境返回不同的 html 响应。我在 firebase 中阅读了 i18n 文档,但它仅表明使用托管的静态内容是可能的: https://firebase.google.com/docs/hosting/i18n-rewrites
我需要在云函数中完成它,所以我相信我需要一种方法来获取函数本身内部的语言环境信息,有人知道如何做到这一点或有任何不同的方法吗?
【问题讨论】:
-
我不明白您的示例中哪里需要 i18n,但您可能可以在 Firestore 中使用不同语言创建一个文档并获取您的字符串,但您必须在每次请求时阅读此文档。跨度>
-
示例中没有必要,它只是一个带有firebase的动态内容示例。在我的情况下,想象返回的 html 可能是其他语言,这取决于请求它的用户从哪里请求
-
"我相信我需要一种方法来获取函数本身内部的语言环境信息" - 什么语言环境信息?最终用户的区域设置,由他们使用的浏览器定义?
-
@user3107720。我认为firestore文档是用不同语言拥有不同句子的唯一方法。但最好不要使用函数,而是使用 Firebase 托管创建自己的 API。
-
是的@DougStevenson,如果可能的话,这将是完美的云功能
标签: node.js firebase express google-cloud-functions