我有一个PHP网页,我正在使用gettext _("STRING_TO_TRANSLATE")
进行翻译。
我的数据库中有一个包含我网站所有用户个人资料的表格。我把它们放在选择框中选择一个。
现在我要翻译个人资料名称。
有没有办法翻译(使用GETTEXT)来自数据库的个人资料名称?
我的选择框的代码示例:
while($row = mysqli_fetch_array($result_user_type))
{
echo "<option $selected value=\"".$row['id']."\">".$row['designation']." </option>";
}
答案 0 :(得分:1)
你不会......
while($row = mysqli_fetch_array($result_user_type))
{
echo "<option $selected value=\"".$row['id']."\">"._($row['designation'])." </option>";
}
我不确定,但是从来没有使用过gettext或者其他东西,但是如果它只是一个带参数的函数并返回一个已翻译的字符串,那么就应该这样做。
答案 1 :(得分:1)
你无法翻译PHP变量! gettext
不执行PHP,它只是扫描你的代码以获得简单的字符串。
你应该看一下这个例子http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong/
干杯
答案 2 :(得分:0)
要翻译我的user_type数组,我创建了一个类,将数据库中的结果打印到文件translate.php
:
public function createArrayType()
{
$filePHP = fopen("translate.php", "a");
$initial = true;
if (!is_resource($filePHP))
return false;
$sql_activity = "SELECT id, name FROM user_type";
$result_activity = mysqli_query( $this->mysqli , $sql_activity );
fwrite($filePHP, "\n \$user_types = array(");
while($row = mysqli_fetch_array($result_activity))
{
if(!$initial)
fwrite($filePHP, ",");
fwrite($filePHP, "'".$row['id']."' => _('".$row['name']."')" );
$initial = false;
}
fwrite($filePHP, "); \n");
fclose($filePHP);
}
然后只需使用poEdit翻译并使用$ user_types数组:
while($row = mysqli_fetch_array($result_user_type))
{
echo "<option $selected value=\"".$row['id']."\">".$user_types[$row['id']]." </option>";
}
我不知道它是否是最佳选择,但这些选项可以解决我的问题。