innovatif/i19n-editor

Silverstripe 的国际化编辑器

维护者

详细信息

github.com/Innovatif/i19n

源代码

问题

安装: 22

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 4

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

1.0.1 2023-09-15 10:03 UTC

This package is auto-updated.

Last update: 2024-09-15 11:56:54 UTC


README

I19n 允许您收集和编辑在 Silverstripe 网站上使用的系统翻译(包括后端和前端)。

要求

  • silverstripe/framework ~4
  • silverstripe-terraformers/gridfield-rich-filter-header ~2

安装

  1. 运行 composer require innovatif/i19n-editor "~1" 安装模块
  2. 运行 dev/build?flush=1

更多详情请参阅配置部分。

配置

翻译主题文件夹

Silverstripe 可以将包含 _config.php 的文件夹视为模块。您需要在 /themes 文件夹内创建一个空配置文件,以便文本翻译器能够扫描您的模板。创建空文件: <your_project>/themes/_config.php 运行 ?flush=1

默认预选模块

默认情况下,在搜索新翻译的弹出窗口中,已预选 appthemes 文件夹。您可以使用以下方法修改列表:

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_/... 字段标签)
  • 您可以一次性手动添加多个翻译给单个 i18n 变量
    • 可以禁用
  • 更改后清除缓存
    • 支持多服务器环境

版本控制

此库从标签 1.0 开始遵循 Semver。根据 Semver,您将能够升级到此库的任何次要或补丁版本,而无需对公共 API 进行任何破坏性更改。Semver 还要求我们清楚地定义此库的公共 API。

所有具有 public 可见性的方法都是公共 API 的一部分。所有其他方法都不是公共 API 的一部分。尽可能保持 protected 方法的向后兼容性,但如果你正在重写方法,请在升级之前测试你的工作。

变更日志

查看 CHANGELOG.md

作者和维护者

Klemen Dolinšek (t3hn0)

Aljoša Balažič (aljosab)