塔:使用意外字典进行本地化

时间:2014-04-30 16:16:26

标签: web clojure localization http-accept-language

我在我的网络应用程序中使用Tower库为i18n和l10n。

我遇到了必须本地化“及时”的问题,即使用意料之外的字典,特别是未预料到的支持的语言环境。

我收到HTTP请求,我可以从中按优先顺序提取接受的语言环境,例如:

[:de :en-UK :en :fr-FR :fr]

另一方面,我必须从以下形式从数据库中提取的微词典进行本地化: {:fr "En Français" :en "In English" :en-Uk "In English from UK"}

我想在我的计划中做的是找到这两个元素的最佳匹配翻译(在示例中,它是:en-UK;请注意我可能事先不知道:de不可用)。

我还没有找到一种方法来使用Tower库(我想避免重新发明轮子)。

有谁知道我怎么办?

提前致谢!

2 个答案:

答案 0 :(得分:1)

根据此处的讨论,只需在Tower v2.1.0-SNAPSHOT中为任意区域设置回退添加原生支持:https://github.com/ptaoussanis/tower/issues/43#issuecomment-42014418

现在可以请求(t [:fr-FR :en-US] :example/foo)等翻译。

干杯! : - )

答案 1 :(得分:0)

您可以从地图中获取一系列键,获取两个序列共有的所有值,然后根据符合您要求的逻辑选择任何首选值。