innovatif / i19n-editor
Silverstripe 的国际化编辑器
1.0.1
2023-09-15 10:03 UTC
Requires
- php: ^7 || ^8
- silverstripe-terraformers/gridfield-rich-filter-header: ~2
- silverstripe/framework: ~4.0
README
I19n 允许您收集和编辑在 Silverstripe 网站上使用的系统翻译(包括后端和前端)。
要求
- silverstripe/framework ~4
- silverstripe-terraformers/gridfield-rich-filter-header ~2
安装
- 运行
composer require innovatif/i19n-editor "~1"
安装模块 - 运行
dev/build?flush=1
更多详情请参阅配置部分。
配置
翻译主题文件夹
Silverstripe 可以将包含 _config.php
的文件夹视为模块。您需要在 /themes
文件夹内创建一个空配置文件,以便文本翻译器能够扫描您的模板。创建空文件: <your_project>/themes/_config.php
运行 ?flush=1
默认预选模块
默认情况下,在搜索新翻译的弹出窗口中,已预选 app
和 themes
文件夹。您可以使用以下方法修改列表:
Innovatif\i19n\GridField\Button\GridFieldTranslateButton: preselected_modules: - app - themes
多服务器环境
清除缓存操作会在服务器端清除缓存。在多服务器环境中,您需要额外的控制,以便所有服务器都通知其 SS 实例清除缓存。
您应该在每个服务器(后端和前端服务器)上设置一个 Cron 作业,每 X 分钟执行一次 /dev/tasks/i19nClearCacheTask
任务。
在 CMS 中启用设置
Innovatif\i19n\Library\i19nLibrary: enable_clear_cache_task: true
清除缓存操作现在会在数据库中创建一个对象,这将告诉所有服务器在 Cron 作业运行时清除缓存。
功能
- 导出翻译
- 如果当前过滤了一个区域,则下载
.yml
- 如果过滤了多个区域,则下载
.zip
- 如果当前过滤了一个区域,则下载
- 导入翻译
- 目前仅支持
.yml
文件,因此您可以每次导入一个语言 - 语言必须在 Fluent 中存在
- 目前仅支持
- 新的翻译收集任务
- 您可以仅针对 CMS 翻译或模板翻译(这不会收集
db_
/has_many_
/... 字段标签)
- 您可以仅针对 CMS 翻译或模板翻译(这不会收集
- 您可以一次性手动添加多个翻译给单个 i18n 变量
- 可以禁用
- 更改后清除缓存
- 支持多服务器环境
版本控制
此库从标签 1.0 开始遵循 Semver。根据 Semver,您将能够升级到此库的任何次要或补丁版本,而无需对公共 API 进行任何破坏性更改。Semver 还要求我们清楚地定义此库的公共 API。
所有具有 public
可见性的方法都是公共 API 的一部分。所有其他方法都不是公共 API 的一部分。尽可能保持 protected
方法的向后兼容性,但如果你正在重写方法,请在升级之前测试你的工作。
变更日志
查看 CHANGELOG.md
作者和维护者
Klemen Dolinšek (t3hn0)
Aljoša Balažič (aljosab)