Php 是否可以将gettext与来自mysqli_查询的数据一起使用?
静态内容工作正常,但当我使用:Php 是否可以将gettext与来自mysqli_查询的数据一起使用?,php,database,mysqli,gettext,poedit,Php,Database,Mysqli,Gettext,Poedit,静态内容工作正常,但当我使用: $r = mysqli_query($dbc,"select name from table"); while($row = mysqli_fetch_array($r)){ echo gettext($row['name']); } Poedit无法识别我完全理解的动态内容。 但是有解决方法吗?gettext的工作流程基于这样一个事实,即您使用定义的函数调用标记源代码,例如gettext(“要本地化的字符串”)。此源代码可以自动解析,所有可本地化字
$r = mysqli_query($dbc,"select name from table");
while($row = mysqli_fetch_array($r)){
echo gettext($row['name']);
}
Poedit无法识别我完全理解的动态内容。
但是有解决方法吗?gettext的工作流程基于这样一个事实,即您使用定义的函数调用标记源代码,例如
gettext(“要本地化的字符串”)
。此源代码可以自动解析,所有可本地化字符串都可以提取到POT文件中。显然,正如您所说的,如果您想要本地化的字符串实际上不在源代码中,那么这是行不通的。在这种情况下,您需要手动桥接提取步骤
您真正需要做的就是以POT格式生成一个包含所有字符串的文件。用一个简短的PHP脚本读取数据库内容并将相关条目输出到POT文件中,这应该相对容易。由于POT是一种广泛支持的格式,因此有许多PHP库可以轻松地为您生成此输出;您主要只需要编写一个数据库查询并循环它。搜索你最喜欢的开源存储库,你会找到适合你需要的东西
从那里,您可以将该POT文件转换为其他POT文件,也可以将其作为单独的翻译文件保存。当然,您应该注意使用适当的gettext工作流,以确保您的更改不会覆盖任何内容: