给定一个基于参数动态构建的短语,其中存在或删除部分,有哪些可能的支持本地化的解决方案?例如,考虑以下两个带有粗体部分的短语,表示动态插入的部分:
- 狗被发现了,有一个狗窝,正在追球。
- 那条狗是白色的,正在绕圈子跑。
对于英语,这可以通过简单地连接短语部分来解决,或者可能在资源文件中包含一些可以根据参数选择的标记填充字符串。但是,一旦您需要针对其他语言进行本地化或拥有更多参数,这些解决方案将无法工作或很快变得丑陋。在上面的示例中,假设狗的外观是唯一始终存在的部分,则本地化资源实现可能包含以下资源字符串:
AppearanceOnly: The dog is %appearance%.
ActivityOnly: The dog is %appearance% and is %activity%.
AssessoryOnly: The dog is %appearance% and has %accessory%.
AccessoryActivity: The dog is %appearance%, has %accessory% and is %activity%.
虽然这可行,但所需的字符串数量会根据参数的数量呈指数增长。
一直在广泛寻找可能有助于我应对这一挑战的最佳实践。我找到的唯一解决方案是简单地改写短语——但你会失去自然的句子结构,我真的不想这样做:
- 狗:斑点、狗窝、追球
建议、链接、想法、示例或“你疯了,改写它!” 欢迎反馈:) 谢谢!