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 基于域名的语言环境选择的主要内容,如果未能解决你的问题,请参考以下文章
silverstripe 3 addFieldToTab“设置”