所以我试图根据用户的语言在HTML中选择一个表单来显示文本,我使用的是Laravel,我有一个简单的方法:
Lang::get('texts.whatever');
这就是texts.php文件,它可以改变任何'正确的文字。
此外,我有一个像这样的关联数组:$dropdown = ['1'=>'France','2'=>'Germany', '3'=>'Greece', '4'=>'Portugal', '5'=>'Spain', '6'=>'United Kingdom'];
这样的事情:
@foreach($dropdown as $id=>$name)
<?php
$newArray[$id]=Lang::get('texts.'.$name);
?>
@endforeach
<?php
$dropdown = $newArray;
?>
之后,我在我选择的表单中使用$ dropdown,它显示文本以及$ name中的任何内容。它没有&#34;得到&#34; texts.php中的文字。但是,如果我更改了文字。&#39;。$ name to&#39; texts.yeah&#39; (例如)它正确填充选择。
我尝试了eval()
,exec()
等等,我不知道还能做些什么。也许我没有正确使用它们。
任何提示或建议?提前谢谢。
答案 0 :(得分:1)
您的texts.php
文件看起来如何?
我做了一个小测试用例,它对我来说很好用
<强>郎/ EN / countries.php 强>
return array(
'France' => 'France in english',
'Germany' => 'Germany in english',
'Spain' => 'Spain in english',
);
<强> routes.php文件强>
Route::get('countries', function()
{
$countries = [1 => 'France', 2 =>'Germany', 3 => 'Spain'];
$dropdown = [];
foreach ($countries as $key => $value) {
$dropdown[$key] = Lang::get('countries.'.$value);
}
dd($dropdown);
});
返回:
array (size=3)
1 => string 'France in english' (length=17)
2 => string 'Germany in english' (length=18)
3 => string 'Spain in english' (length=16)
更简单的routes.php示例
Route::get('countries', function()
{
$countries = Lang::get('countries');
$dropdown = [1 => $countries['France'], 2 => $countries['Germany'], 3 => $countries['Spain']];
dd($dropdown);
});
返回:
array (size=3)
1 => string 'France in english' (length=17)
2 => string 'Germany in english' (length=18)
3 => string 'Spain in english' (length=16)