我想本地化通过fcm发送的推送通知。
考虑一个发送有关待办事项状态变化的消息的示例。待办事项有标题和州(OPEN
/ IN_PROGRESS
/ DONE
)。我希望能够发送包含以下内容的消息:
<string name="todo_status_changed">Status of %1$s changed to %2$s.</string>
其中第一个参数是待办事项名称,第二个参数是待办事项状态。
该消息应显示给用户,如“真空吸尘状态已更改完成”。 “吸尘”是未翻译的标题,“完成”是DONE
状态的翻译。
这是我用fcm api得到的距离:
"body_loc_key": "todo_status_changed",
"body_loc_args": [
"vacuuming",
"DONE" // I need to translate this
]
我没想到的问题是如何翻译来自body_loc_args
的字符串。
所以问题是,如何使用以下内容完成此工作?
当然,有一种更好的方法,就是为每个todo状态创建一条消息会变得非常重复(尽管现在我认为它会让人们更多地翻译消息关于句子的内容,并且可能会更好地用于绑定等等):
<string name="todo_status_changed_to_in_progress">Status of %1$s changed to in progess.</string>
<string name="todo_status_changed_to_done">Status of %1$s changed to done.</string>
... messages for all other possible statuses