我正在开发一个多语言应用程序。现在支持英语和法语。
有一个创建活动的表单,它还支持创建的Event的搜索功能。 例如,我的活动名称是“活动旅游”。如果我搜索它,则返回相同的事件。
现在我的问题是,如果我将我的应用程序的语言改为法语,事件“事件之旅”将转换为“Visite de l'événement”。所以现在如果我想搜索“活动之旅”,则不会返回活动之旅。如果我在“événement”中搜索“eve”,那么也不会返回事件。
但如果我搜索有效字段,搜索工作正常,例如搜索“Visite de”等。
我该怎么做这个搜索。因为我的键盘不支持“é”字符。 处理此类情景的策略应该是什么。对于我将来支持的任何其他语言都可能发生。
答案 0 :(得分:0)
我认为这可能已被回答here,但我将重新审视其中的内容。
您应该能够在不区分大小写的排序规则中强制进行比较。
如果您执行如下查询(不确定您的架构)
SELECT *
FROM events
WHERE
event_name COLLATE Latin1_general_CI_AI Like '%eve%' COLLATE Latin1_general_CI_AI
然后événement
会回来。
然而,您将无法搜索翻译(因为这不是真正的SQL问题),所以您可以做的另一件事是保留一个翻译表并通过该表进行查找。