mohsinqk / site-language-redirection
Requires
- geoip2/geoip2: ^2.9.0
- typo3/cms-core: ^9.5.0||^10.4||^11
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
Suggests
Replaces
- typo3-ter/site-language-redirection: v2.4.0
This package is auto-updated.
Last update: 2024-08-27 11:46:31 UTC
README
此扩展是 TYPO3 网站语言重定向 扩展的副本。因为我为 TYPO3 的多站环境添加了一个新功能,可以禁用语言重定向。所以这个仓库在基础扩展的作者合并我的功能请求之前很有用,请求链接为 我的功能。
PSR-15 中间件,用于将用户重定向到正确的网站语言。
- 语言检测基于 HTTP 头(浏览器语言)或 IP 地址。
- 当用户切换语言时,会设置一个 cookie 来保存新语言为首选语言。
工作原理
如何通过 HTTP 头确定扩展重定向到的网站的示例
如果 Accept-Language 是 en-US,de-AT
,则查找具有 hreflang 为 en-US
的网站。如果没有匹配,则查找 en
。如果仍然没有匹配,则使用相同的逻辑重复与 de-AT
,依此类推。
安装
通过扩展管理器或 composer 安装。
composer require urbantrout/site-language-redirection
启用基于 IP 地址的重定向
-
通过 CLI 或计划任务更新基于 IP 地址的重定向的 GeoIP2 数据库文件。
- CLI
./vendor/bin/typo3 sitelanguageredirection:updatedb
- 计划任务 创建一个类为 执行控制台命令 的新任务,并将 可调度命令 设置为 sitelanguageredirection:updatedb
使用此选项定期更新您的数据库文件。
此步骤在
\TYPO3\CMS\Core\Core\Environment::getVarPath() . '/sitelanguageredirection/'
下创建一个文件,其中包含所有地理位置信息。注意: 这不会更改您的 SQL 数据库。 - CLI
-
在“网站语言重定向”选项卡中更新您的网站配置中的首选方法。默认为 HTTP 头。将此值更改为 IP 地址 会更新
config/sites/<sitename>/config.yaml
并添加以下代码行
SiteLanguageRedirectionMethod: 2
配置语言回退
此功能添加了定义回退语言的可能性。例如,如果没有意大利语版本的网站,则重定向到英语版本,依此类推。
具有可选 SiteLanguageRedirectionFallbacks
的网站配置如下
SiteLanguageRedirectionMethod: 1 SiteLanguageRedirectionFallbacks: fr: 'en' it: 'en'