netzmacht / contao-i18n

这个库提供了一个用于灵活多语言网站的工具集。

安装: 585

依赖: 0

建议: 0

安全性: 0

星级: 5

关注者: 2

分支: 1

开放问题: 1

类型:contao-bundle

3.0.1 2024-01-30 11:21 UTC

README

Build Status Version License Downloads

此扩展提供了一个灵活的方式,用于多语言网站,其中主语言的部分应该被重新用于翻译的页面。

安装

您可以使用Composer安装此扩展。

$ php composer.phar require netzmacht/contao-i18n:^3.0

要求

功能

语言感知重定向

仓库的主要思想是您想在翻译中使用主页面上的模块或内容。如果您这样做,大多数链接或重定向都会回到主语言。

这就是此扩展如何介入的地方。它检测到对另一个语言树的页面的引用。如果是这种情况,它会尝试找到翻译并操作目标页面以指向翻译。

它适用于所有页面引用。无论您在表单或模块中是否有跳转至。但您仍然保持控制。您可以通过在主语言页面中禁用它来禁用此行为。此外,更改语言模块被列入黑名单,因此您仍然可以链接到其他语言。

  1. 像往常一样使用changelanguage连接页面。
  2. 将重定向页面设置为备用语言。
  3. 如果您想禁用“页面翻译”,您可以在页面设置中进行配置。

因此,您只需定义一次语言关系!并且您保持对是否需要语言重定向的控制。

不同语言中的相同页面

有时您必须翻译您的网站,但某些页面保持不变。如果您在语言树中使用不同的页面别名,备用页面不会被加载。

“I18n Regular页面”旨在解决此问题。它简单地加载备用页面的所有内容。因此,您可以使用语言感知别名,同时使用相同的内容而不重复。

此外,它还保留了语言。这意味着Contao使用页面设置中定义的语言。这使得您可以使用插入标记来翻译内容。

不同语言中的相同新闻、事件和常见问题解答

如果您想在不同的语言中重用新闻、事件和常见问题解答,这是支持的。您只需在翻译树中将I18n Regular页面用作阅读页面。此扩展会自动为您创建搜索页面条目和网站地图条目。

已知限制:目前rss源不可翻译。

翻译插入标记

上述两个功能允许您减少在无差异时模块或页面的愚蠢重复。但有时某些标签也需要翻译。

使用{{translate::*}}插入标记或甚至其快捷方式{{t::*}}

支持以下语法

{{t::path.to.translation}} 尝试从页面_ALIAS域名获取翻译。如果没有翻译,则回退到网站域名。如果页面类型是i18n页面类型,则使用基本页面的别名。

换句话说,您必须创建一个page_ALIAS.php翻译文件。如果您有网站范围的翻译,请使用website.php语言文件。

如果没有提供页面别名,则使用页面ID。文件夹别名会被转义为下划线。

{{t::domain:path.to.translation}} 从自定义域名进行翻译。

注意:点符号语法用于语言文件的数组结构。注意:支持在翻译字符串中使用嵌套插入标签。

导航模块

此扩展提供了两个导航模块,它们更进一步。它们不仅替换URL,而且替换整个页面。因此,即使您在导航模块中设置了引用页面或使用单独的导航,您也会得到一个翻译后的导航模块。

配置

默认情况下,contao-i18n不会删除contao i18n常规页面中的任何文章。如果它们没有作为页面连接以覆盖其他页面,则简单地忽略。然而,您可以启用清理。如果启用清理,则删除所有未配置为文章覆盖的文章。

# app/config/config.yml

netzmacht_contao_i18n:
    article_cleanup: true

开发

此存储库包含此扩展的本地测试和开发环境的ddev配置。ddev。它还提供了数据库的快照。因此,您可以轻松设置自己的本地实例。有关ddev的通用用法,请参阅ddev文档

以下凭据被使用

后端用户

  • 用户名:admin
  • 密码:adminuser

安装工具

  • 密码:adminuser