urbantrout / site-language-redirection
v2.3.3
2022-08-02 07:38 UTC
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.3.3
This package is auto-updated.
Last update: 2024-09-09 01:22:58 UTC
README
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 或计划任务更新 GeoIP2 数据库文件以进行基于 IP 地址的重定向。
- CLI
./vendor/bin/typo3 sitelanguageredirection:updatedb
- 计划任务
创建一个名为 Excute console commands 的新任务,并将 Schedulable Command 设置为 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'