我正在创建一个网站,我想为不同的国家显示多种语言,但这是我第一次这样做,不知道什么是最佳做法。
因此,对于代码中的所有静态文本,我只是将其 Package 在translate函数中,poedit能够提取字符串。
然后,对于通过php从db生成的所有动态文本,当我在后端向db添加新内容时,我还执行 file_put_contents()
所以我有那些字符串要翻译。
所以我数据库里的所有东西都是英文的,但都会被添加到我的po文件中。问题是我还有一个搜索栏。这将搜索我的数据库中的各种项目,但只能搜索英语。
我目前正试图做的是这样的事情,我使用google translate api翻译实际输入并用英语搜索:
$term = $_POST['search_text'];
$result = $translate->translate($term, [
'target' => 'en'
]);
$translation = $result['text'];
$new_term = '%'.$translation.'%';
$params = [$new_term];
$sql = "SELECT * FROM products WHERE product_name LIKE ?";
$stmt = DB::run($sql,$params);
显然这并不完美,因为我依赖google来翻译搜索词,但它通常会得到正确的结果。
有没有更好的办法?我好像走错了方向。
1条答案
按热度按时间vatpfxk51#
我最后做的是用英语搜索,搜索翻译,并将结果合并,这样它就有希望获得所有信息。