如何在 Kentico 中翻译非页面内容
How to translate non-page content in Kentico
我们最近将 Kentico 8.2 实例升级到了 9.0,现在正专注于将我们的网站本地化为另外两种文化。我们网站的文本内容主要存储在三个位置之一:
- 可编辑区域
- 自定义页面类型中的文本字段
- 自定义表格
我们正在使用 Kentico EMS 许可证,并希望利用内置的翻译服务应用程序来翻译每个位置的内容,但它似乎只支持可编辑区域内的内容。我知道 Kentico 有一个用于翻译文本框的输入控件,但它会强制内容编辑器为其创建一个独特的资源键;我们的内容实在是太多了,我担心编辑们会失去控制。
此外,我们考虑过将一些内容迁移到页面中,但它们在逻辑上不适合那里,并且有一些复杂的关系会导致重复内容,所以我真的更愿意将内容保留在原处.我的另一个想法是构建一个自定义模块或自定义表单控件来在幕后做一些肮脏的工作,但如果已经有已知的方法,我不想重新发明轮子。
是否有 Kentico 推荐的方法或解决方法来管理自定义表格和页面类型字段中的内容翻译?
对于自定义页面类型和自定义 tables,您可以在字段定义中将这些文本字段更改为本地化的文本字段,这将允许您在没有资源键的情况下为每种语言输入不同的值。这是页面类型和自定义 table 翻译的最佳途径恕我直言。尽管这仍然不允许 "automatic" 或内置翻译。
我不确定页面类型字段中的内容翻译是什么意思 - 支持翻译页面类型字段。您可以在 Kentico 安装的示例站点上找到示例。 (该站点称为 DancingGoat - 请参阅图像示例以了解英语和西班牙语的页面类型字段本地化)。
您可以在 Kentico 中使用 Translation 来翻译 页面类型字段 并发送它们进行翻译。检查 this documentation page 的例子。一开始它可能会更复杂,但它应该可以为您解决问题。我刚刚测试了为我的页面类型创建一个简单的翻译请求,生成的 XLF 文件包含所有页面类型字段。
对于自定义 tables 我将不得不让你失望,因为 Kentico 中的自定义 tables 不是特定于文化的。如果性能对您来说很重要,那么创建翻译的最佳方法是将 CultureCode 字段添加到您的 table 以指定该项目适用于哪种文化。
例如,您可以有 table 列:ItemID、Text、CultureCode
然后数据将如下所示:
1, Dog, en-US
2, Hund, ge-GE
3, Pes, cs-CZ
如果您想更进一步,我建议您不要将其创建为自定义 table,而是创建为 自定义 class将位于 custom module 中,您可以为其创建自己的界面,这将允许编辑者轻松地为项目创建所有文化版本。
我们最近将 Kentico 8.2 实例升级到了 9.0,现在正专注于将我们的网站本地化为另外两种文化。我们网站的文本内容主要存储在三个位置之一:
- 可编辑区域
- 自定义页面类型中的文本字段
- 自定义表格
我们正在使用 Kentico EMS 许可证,并希望利用内置的翻译服务应用程序来翻译每个位置的内容,但它似乎只支持可编辑区域内的内容。我知道 Kentico 有一个用于翻译文本框的输入控件,但它会强制内容编辑器为其创建一个独特的资源键;我们的内容实在是太多了,我担心编辑们会失去控制。
此外,我们考虑过将一些内容迁移到页面中,但它们在逻辑上不适合那里,并且有一些复杂的关系会导致重复内容,所以我真的更愿意将内容保留在原处.我的另一个想法是构建一个自定义模块或自定义表单控件来在幕后做一些肮脏的工作,但如果已经有已知的方法,我不想重新发明轮子。
是否有 Kentico 推荐的方法或解决方法来管理自定义表格和页面类型字段中的内容翻译?
对于自定义页面类型和自定义 tables,您可以在字段定义中将这些文本字段更改为本地化的文本字段,这将允许您在没有资源键的情况下为每种语言输入不同的值。这是页面类型和自定义 table 翻译的最佳途径恕我直言。尽管这仍然不允许 "automatic" 或内置翻译。
我不确定页面类型字段中的内容翻译是什么意思 - 支持翻译页面类型字段。您可以在 Kentico 安装的示例站点上找到示例。 (该站点称为 DancingGoat - 请参阅图像示例以了解英语和西班牙语的页面类型字段本地化)。
您可以在 Kentico 中使用 Translation 来翻译 页面类型字段 并发送它们进行翻译。检查 this documentation page 的例子。一开始它可能会更复杂,但它应该可以为您解决问题。我刚刚测试了为我的页面类型创建一个简单的翻译请求,生成的 XLF 文件包含所有页面类型字段。
对于自定义 tables 我将不得不让你失望,因为 Kentico 中的自定义 tables 不是特定于文化的。如果性能对您来说很重要,那么创建翻译的最佳方法是将 CultureCode 字段添加到您的 table 以指定该项目适用于哪种文化。
例如,您可以有 table 列:ItemID、Text、CultureCode
然后数据将如下所示:
1, Dog, en-US
2, Hund, ge-GE
3, Pes, cs-CZ
如果您想更进一步,我建议您不要将其创建为自定义 table,而是创建为 自定义 class将位于 custom module 中,您可以为其创建自己的界面,这将允许编辑者轻松地为项目创建所有文化版本。