【问题标题】:PHP/SQL - Searching a DB in a different languagePHP/SQL - 用不同的语言搜索数据库
【发布时间】:2018-12-01 21:32:34
【问题描述】:

我在我的网站上有一个简单的产品搜索,如下所示:

$params = [$term];
$sql = "SELECT * FROM products WHERE MATCH(product_name) AGAINST(?)";
$stmt = DB::run($sql,$params);
$resultCount = $stmt->rowCount();
if($resultCount > 0){
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        //get search results
    }
}

我的网站全是英文,我的数据库全是英文,但根据我的分析,我们有来自葡萄牙的人在网站上用葡萄牙语搜索,但他们没有得到任何结果,即使那里有翻译的结果他们搜索的版本。

有没有办法绕过这个问题或检测他们输入的语言并进行翻译,而无需支付谷歌翻译或类似费用。

【问题讨论】:

    标签: php sql search translate


    【解决方案1】:

    我想他是这样用葡萄牙语搜索的:óà

    你可以:

    1. 添加内容的翻译并在其中搜索
    2. 将非英文字母转换为英文,然后进行搜索。

    【讨论】:

    • 我认为仅仅改变字母是行不通的,我需要完整翻译我的产品名称。我真正需要的是谷歌翻译 API 的替代品(未付费),这样当我将新产品添加到数据库时,我可以将翻译添加到另一列,而不必手动翻译它们。如果我必须在数据库中存储每种语言的翻译,这可能会有点尴尬。我真正想要的是能够检测用于搜索和翻译的语言,然后在我现有的数据库中搜索该翻译。
    • 您可以将翻译存储在不同的列中,例如:text_es、text_de、text_pt 并在其中搜索。您还可以为所有翻译创建一个表格:文本、语言和搜索。如果您对每个请求都使用 Translations API,它可能会很慢。您可以为所有文本运行翻译并将它们存储在数据库中。在数据库中搜索之后。您可以搜索免费的 Google 替代品
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    相关资源
    最近更新 更多