晚上好,今天我遇到了一个问题。我将直接进入它。所以基本上我有一个用来创建膳食的表单。膳食表(迁移)看起来像这样:
$table->uuid('id')->primary();
$table->uuid('restaurant_id')->nullable();
$table->string('name_lt', 100);
$table->string('name_en', 100);
$table->string('name_ru', 100);
$table->smallInteger('prep_time');
$table->string('image', 150);
$table->boolean('visibility')->default(0);
$table->boolean('deleted')->default(0);
$table->timestamps();
$table->foreign('restaurant_id')->references('id')->on('restaurants')->onDelete('cascade');
除此之外,还有很多其他的东西,比如配料和其他的东西,它们都与特定的一餐有关。在表单页面中,我有3种不同的语言表单,分别是我的母语立陶宛语、英语和俄语。有一些选项卡按钮可以将表单更改为其他语言,它所做的只是隐藏当前的表单并显示另一个(一页中有3个相同的表单)。
我想要实现的是,如果我填写立陶宛语的输入,我希望英语和俄语的输入也被填写(这可以用jquery或javascript change函数实现),但它应该填写翻译文本。
简单举例:
在第一个表单中,我填写了文本name_lt = 'Obuolys'
,因此name_en
和name_ru
也应该填写,但使用不同的语言,在本例中为name_en = 'Apple'
、name_ru = 'яблоко'
我从来没有使用过翻译API的,所以我想知道什么是最好的方式,我在考虑使用DeepL,因为它是相当便宜。
如果有人能给我一些建议或简单的例子会很好,我可以从这一点继续下去。
2条答案
按热度按时间wfsdck301#
如果你想使用javascript,你可以在提交表单之前使用一个按钮的click事件来填写其他字段。如果我理解正确的话,你有3个表单(每个标签1个)。
您可以对每个表单执行类似的操作。
给定一个接受文本输入的函数,原始语言和要翻译的语言
js部分可能如下所示
或者,如果您想在服务器端执行,您可以尝试在验证输入数据或将模型保存到数据库之前,使用laravel提供的
Http
facade调用最终使用的任何转换API。khbbv19g2#
您使用的是PHP还是JavaScript?
DeepL提供了一个NodeJS library(用于后端)和一个PHP library,以方便您进行翻译。例如,要在PHP中进行翻译,您可以在安装库后使用以下代码片段:
要在用户填写一些文本时执行此操作,您需要编写适当的Laravel代码。请注意,在前端执行此操作是不安全的,因为它需要您公开您的
$authKey
。