brookinsconsulting / bcswitchadminlanguage
eZ Publish 旧版内核覆盖类扩展,提供了一种稳定且灵活的解决方案,允许用户动态更改当前 siteaccess 的语言。提供更高级的多语言编辑器访问!
Requires
- php: >=5.0.0
- ezsystems/ezpublish-legacy-installer: *
This package is auto-updated.
Last update: 2024-09-29 03:40:15 UTC
README
此扩展实现了一个解决方案,允许动态更改管理 UI 区域设置(语言)。此解决方案需要并提供了基于内核类的扩展覆盖,通过 siteaccess 名称 + 区域标识符存储缓存,并根据请求动态切换 ini 区域。
版本
-
BC Switch Admin Language 当前版本为 0.1.0
-
上次主要更新:2015年6月14日
版权
-
BC Switch Admin Language 版权所有 1999 - 2016 Brookins Consulting
-
eZ Publish 内核类(在内核覆盖中使用)版权所有 1999 - 2016 eZ Systems AS。
-
更多信息请参阅: COPYRIGHT.md
许可证
BC Document Reader 使用 GNU 通用公共许可证。
完整的许可证协议包含在 LICENSE 文件中。
BC Document Reader 是免费软件:您可以在自由软件基金会发布的 GNU 通用公共许可证条款下重新分发和/或修改它,许可证版本为 2 或更高版本。
BC Document Reader 的分发旨在使其有用,但没有任何保证;甚至没有关于其适销性和特定用途的暗示保证。有关详细信息,请参阅 GNU 通用公共许可证。
GNU GPL 在某些条件下赋予您使用、修改和重新分发 BC Document Reader 的权利。GNU GPL 许可证随软件一起分发,请参阅文件 doc/LICENSE。
它也可以在 https://gnu.ac.cn/licenses/gpl.txt 上找到
您应该已经收到与 BC Document Reader 一起的 GNU 通用公共许可证副本,位于 doc/LICENSE 中。如果没有,请参阅 https://gnu.ac.cn/licenses/。
在 GNU GPL 许可证下使用 BC Document Reader 是免费的(作为自由)。
有关更多信息或问题,请联系: license@brookinsconsulting.com
要求
使用 BC Switch Admin Language 扩展存在以下要求
eZ Publish 版本
-
请确保您使用 eZ Publish 版本 5.x(必需)或更高版本。
-
设计并测试了与 eZ Publish 社区项目 GitHub 发布标签(通过 composer)v2015.01.3
PHP 版本
- 请确保您有 PHP 5.x 或更高版本。
依赖项
如何完成以下依赖项设置(如果您的安装中尚未提供)将在 README.md 文档中稍后介绍
-
此解决方案依赖于 eZ Publish 旧版的内核类覆盖功能已在
config.php
中启用。本文件提供了在 安装 > 启用 eZ Publish 内核覆盖 部分设置此依赖项的说明。 -
本解决方案假定您的管理站点访问设置已配置为在
SiteLanguageList[]
设置数组中包含多种语言。本文档提供了如何在安装 > 配置部分设置此依赖的说明。 -
本解决方案假定您的管理站点访问设置已配置为启用
TextTranslation=enabled
设置。本文档提供了如何在安装 > 配置部分设置此依赖的说明。
功能
内核类覆盖
本解决方案覆盖以下内核类:
-
PHP 类:
ezpKernelWeb
- 默认位置:kernel/private/classes/ezpkernelweb.php
-
PHP 函数文件:
global_functions.php
- 默认位置:kernel/private/classes/global_functions.php
-
PHP 类:
eZNodeviewfunctions
- 默认位置:kernel/classes/eznodeviewfunctions.php
-
PHP 类:
eZTemplateCacheFunction
- 默认位置:lib/eztemplate/classes/eztemplatecachefunction.php
注意:本解决方案只需要对一些非常稳定且不常变化的(如果有的话)旧内核类进行少量覆盖(这对可维护性很重要)。我们对这些类的更改非常简约、有明确的文档,并且仅在绝对需要支持此解决方案时进行。
您可以通过搜索我们的内核类更改文档注释(在每个修改的代码块中),从// BEGIN BC : BCSwitchAdminLanguage : Kernel Hack
开始,到// END BC : BCSwitchAdminLanguage : Kernel Hack
结束,来审查我们对内核类的更改。
模块视图
本解决方案提供了一个名为'switchadminlanguage'的模块视图'switch',该视图由提供的“切换语言”管理右侧工具栏表单使用。
“切换语言”表单提供了一个下拉菜单,显示当前siteaccess可用的所有语言,并允许您选择不同的语言,点击“切换”按钮。
点击切换按钮后,表单提交一个请求到切换模块视图,该视图设置一个包含语言区域标识符的会话变量,以便在切换模块将用户重定向回上一个页面时切换管理站点访问的语言区域。
安装
通过Composer安装扩展
从项目根目录运行以下命令以安装扩展:
bash$ composer require brookinsconsulting/bcswitchadminlanguage dev-master;
扩展激活
通过将以下内容添加到您的settings/override/site.ini.append.php
来激活此扩展:
[ExtensionSettings]
# <snip existing active extensions list />
ActiveExtensions[]=bcswitchadminlanguage
启用eZ Publish内核覆盖
只有当您将以下内容添加到eZ Publish Legacy配置文件config.php
中时,内核类覆盖才能使用。
cp -va config.php-RECOMMENDED config.php;
# Edit config.php to set 'EZP_AUTOLOAD_ALLOW_KERNEL_OVERRIDE' to true. It should look like this:
define( 'EZP_AUTOLOAD_ALLOW_KERNEL_OVERRIDE', true );
重新生成内核类覆盖自动加载
重新生成内核类覆盖自动加载(必需)。
php ./bin/php/ezpgenerateautoloads.php --kernel-override;
扩展设置覆盖
接下来,您必须创建扩展设置覆盖并自定义管理站点访问名称(必需)。
cp -va extension/bcswitchadminlanguage/settings/bcswitchadminlanguage.ini.append.php settings/override/;
编辑settings/override/bcswitchadminlanguage.ini.append.php
以将'SharedAdminSiteaccessName'设置为您的管理站点访问名称。
以下是一个基于默认ezdemo安装的示例:
[BCSwitchAdminLanguageSettings]
SharedAdminSiteaccessName=ezdemo_site_admin
清除缓存
清除eZ Publish平台 / eZ Publish Legacy缓存(必需)。
php ./bin/php/ezcache.php --clear-all;
配置
站点访问site.ini [RegionalSettings] SiteLanguageList[] 设置
-
编辑您的
settings/siteaccess/(yourAdminSiteaccessName)/site.ini.append.php
设置文件 -
通过将它们添加到
SiteLanguageList[]
设置数组中,添加您希望将站点访问UI翻译成语言。- 以下是一个通用的管理员站点访问设置示例,该设置配置为支持从eng-US、fre-FR和ger-DE翻译:
[RegionalSettings] Locale=eng-US ContentObjectLocale=eng-US ShowUntranslatedObjects=enabled SiteLanguageList[]=eng-US SiteLanguageList[]=fre-FR SiteLanguageList[]=ger-DE TextTranslation=enabled
-
如果您不确定支持的语言文本字符串,请查看在 share/translations 目录中提供的默认翻译。
- 请注意,在
SiteLanguageList[]
设置数组条目中预期的语言名称/标识符的文本字符串与share/translations
子目录名称相同。
- 请注意,在
-
以下是关于此内容的相关文档:https://doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/Configuration-files/site.ini/RegionalSettings/SiteLanguageList。
站点访问 site.ini [区域设置] 文本翻译设置
-
编辑您的
settings/siteaccess/(yourAdminSiteaccessName)/site.ini.append.php
设置文件 -
检查您的默认设置,确保设置
[区域设置] 文本翻译
已启用。如果它未设置或已禁用,则您需要更改设置以确保在站点访问site.ini.append.php
设置中特别启用。以下是一个简化的示例[区域设置]
此行注释代表此设置块中通常找到的其他必需但省略的设置,但不是此示例设置片段的特定设置
TextTranslation=enabled
-
TextTranslation=enabled
是必需的,因为它是可以启用模板文本字符串翻译的设置。以下是有关此内容的文档:https://doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/Configuration-files/site.ini/RegionalSettings/TextTranslation。
使用方法
该解决方案在正确安装后默认配置为虚拟工作。
-
首先登录到管理员站点访问
-
然后使用右侧工具栏中的 '切换语言' 选择不同的语言。
-
然后单击 '切换'
-
注意,当前(管理员)站点访问 UI 现在使用之前选择的语言显示
注意:使用此解决方案更改当前语言不会以任何方式影响内容对象的翻译语言。
故障排除
阅读常见问题解答
某些问题比其他问题更常见。最常见的问题列在 doc/FAQ.md 中
支持
如果您发现此文档或常见问题解答未处理的问题,可以通过支持系统联系 Brookins Consulting:http://brookinsconsulting.com/contact