我存储的数据目前是用英语写的。因此,我计划将此内容本地化/可翻译,并希望将此选项提供给用户。
以下是我的用户故事:
(1)作为用户,我希望选择我的内容的首选语言(例如德语)。如果文本没有德语版本,请以备用语言(例如英语)提供内容。
(2)作为用户,我希望能够翻译给定的模型。
假设有以下情况:
1)一个模型,例如Message,有两个属性:title和description。可以预期这两个属性是英语的(默认情况下)。
2)命令,例如translateMessage,它将接收带有title、description和locale的有效载荷。
处理这些模型本地化的公认方法是什么?
发布于 2019-01-04 23:11:23
我想出了一个解决方案:
假设我们的Message将具有以下属性(在Typescript中):
{
title: string;
description: string;
}我会使用translations对象来扩展它。其中的每个键都有一个区域设置,并且有一个带有翻译字符串的对象。
{
title: string;
description: string;
translations: {
[key: string]: {
title: string;
description: string;
}
}
}readModel将与上面相同,由客户端决定显示哪些字符串。
命令translateMessage将接收如上所述的有效负载,并发布一个事件。readModel将以某种方式对该事件做出反应,即它将新的有效负载数据推送到该模型中的translations对象上。
对于模型创建,如果数据是以与默认语言环境不同的语言环境接收的,那么事件处理程序将把这些翻译后的字符串前缀加上它们所在的语言环境,放到根目录中,例如,model.title可以是类似[de] Nachrichtentitel的内容。模型将如下所示:
{
title: '[de] Nachrichtentitel'
description: '[de] Nachrichteninhalt'
translations: {
de: {
title: 'Nachrichtentitel'
description: 'Nachrichteninhalt'
}
}
}你觉得这有什么问题吗?关于如何做到这一点,还有其他已经建立起来的最佳实践吗?
https://stackoverflow.com/questions/53938097
复制相似问题