我使用translate.rainlab
插件进行本地化,但不知道如何为ajax表单翻译flash消息。
function onMailSend() {
Mail::sendTo('[email protected]', 'contact.form', post());
Flash::success('Message has been sent');
}
您可以坚持使用Translate插件的功能,无需使用其他翻译机制。
use RainLab\Translate\Models\Message;
function onMailSend() {
Mail::sendTo('[email protected]', 'contact.form', post());
Flash::success(Message::trans('Message has been sent'));
}
这假设“已发送消息”是默认语言环境中的字符串。
translate插件用于翻译内容前端,但是为了在代码中翻译消息,最好使用locale lang消息。
假设这是您的网站:http://octdev.local.com/demo/ajax(默认lang设置为en)
然后你可以创建插件,在lang/en/lang.php
文件中你可以定义翻译消息
en lang文件将在那里,默认内容将如下所示
// lang/en/lang.php
<?php return [
'plugin' => [
'name' => 'TestPlugin',
'description' => ''
]
];
您可以在任何地方访问此消息
\Flash::success(\Lang::get('hardiksatasiya.testplugin::lang.plugin.name'));
Heartichthatiaia.tastplugin => Caxspoi Kakssupoi
lang.plugin.name =>像数组一样工作
plugin auther name
代表文件名(语言)然后得到pluginname
然后它的关键lang
所以在我们的例子中它将把TestPlugin
现在你可以使用新的url:plugin array
吧
所以你可以在你的插件目录name
中创建新的lang文件,并将上面的php代码与翻译的消息放在一起
http://octdev.local.com/de/demo/ajax
它会起作用。如果您需要整个文档,可以使用此参考:lang/de/lang.php
更新,如果你认为我只需要在一个地方做你可以做这样的事情(但不是首选的方式)
// lang/de/lang.php
<?php return [
'plugin' => [
'name' => 'TestPlugin In de',
'description' => ''
]
];