Silverstripe Fluent 基于域名的语言环境选择

Posted

技术标签:

【中文标题】Silverstripe Fluent 基于域名的语言环境选择【英文标题】:Silverstripe Fluent locale selection based on domain name 【发布时间】:2018-08-30 22:41:48 【问题描述】:

我假设 Silverstripe Fluent 应该根据用于访问该站点的域名来切换站点区域设置是否正确?

我已经建立了一个具有英语、法语和德语语言环境的流利网站,并为每个语言环境(site.mysite.com、desite.mysite.com 和 frsite.mysite.com)分配了一个域名,并设置了语言环境每个站点的 en_GB、de_DE 和 fr_FR 分别为。

我的理解是,如果我访问 frsite.mysite.com,那么我应该看到该站点的法语版本,desite.mysite.com 带有该站点的德语版本,site.mysite.com 带有英语版本但是,所有三个 URL 都显示网站的英文版本。

如果我访问 site.mysite.com/fr 或 frsite.mysite.com/fr 或 desite.mysite.com/fr,我会得到法语版本。

我正在使用 Silverstripe V4.02 和 Fluent V3.3(我想!)

我在我的 .env 文件中设置了 SS_FLUENT_FORCE_DOMAIN="true" 并在实时模式下运行。

是我做错了什么还是没有这个功能?

【问题讨论】:

好问题!你所描述的听起来应该可以工作。您是否将每个域的主要区域设置的“全局默认值”设置为 true? 是的,我有以下内容: 域:域 默认语言环境 site.mysite.com 英语 en_GB desite.mysite.com 德语 de_DE frsite.mysite.com 法语 fr_FR 语言环境:TITLE LOCALE URL GLOBAL DOMAIN 德语 de_DE de 0 desite.mysite.com 英语 en_GB en 1 site.mysite.com 法语 fr_FR fr 0 frsite.mysite.com 您可以通过查看 composer.lock 或运行 composer show -i package/name 来确定您正在使用的 fluent 版本,这样您就可以确定安装了什么。 v3.3 不适用于 ss4 我正在使用更新日志中的最新版本!检查 composer.lock 文件,我似乎使用的是 4.0.0 如果您已刷新所有缓存并仔细检查所有内容是否匹配,那么 php 可能无法在其 $_SERVER 变量中获得正确的域名 【参考方案1】:

我遇到了同样的问题。我通过从 .env 中删除 SS_BASE_URL 来修复。

【讨论】:

以上是关于Silverstripe Fluent 基于域名的语言环境选择的主要内容,如果未能解决你的问题,请参考以下文章

请问fluent的udf中如何定义密度?与压力有关

使用 SilverStripe 的计划任务

silverstripe 3 addFieldToTab“设置”

如何在 SilverStripe 4 CMS 中添加自定义样式

Silverstripe:成员关系多多空,形成前端

增加 SilverStripe 网站的最大文件上传大小