我有两个网站,网站EN和websiteDE。 它们都在自己的实例上托管在EC2上。 他们的网址是:website.en和website.de 他们使用自己的数据库网站ENDB和websiteDEDB。
我目前正在AWS上为其数据库使用环境变量。
为了省钱,我想在同一个实例上托管这两个网站。 我需要从用于浏览网站的URL获取数据库名称。
如何使用快速服务器获取网址并将其传递给我的配置变量?
编辑: 让我们举个例子说我有config.websiteDB = defaultDB 如果用户从website.de访问该网站,我想有config.websiteDB = websiteDEDB,如果她从website.en访问该网站,则config.websiteDB = websiteENDB
答案 0 :(得分:1)
以下是我们如何解决它。
我们用过,
https://github.com/mashpie/i18n-node
此外,您可以使用相同的html模板文件,并为不同的语言使用不同的内容。
根据从浏览器收到的语言,您可以选择合适的数据库。
希望它有所帮助。
<强> EDIT1:强>
如果您在下方查看,则可以根据Cookie,查询字符串参数,语言内容不可用时的后备等设置您的语言区域等。
i18n.configure({
// setup some locales - other locales default to en silently
locales:['en', 'de'],
// fall back from Dutch to German
fallbacks:{'nl': 'de'},
// you may alter a site wide default locale
defaultLocale: 'de',
// sets a custom cookie name to parse locale settings from - defaults to NULL
cookie: 'yourcookiename',
// query parameter to switch locale (ie. /home?lang=ch) - defaults to NULL
queryParameter: 'lang',
// where to store json files - defaults to './locales' relative to modules directory
directory: './mylocales',
将Cookie设置为所需语言
res.cookie('yourcookiename', 'de', { maxAge: 900000, httpOnly: true });
您还可以使用查询字符串参数
/家?LANG = CH
其中lang被定义为语言环境配置参数。