Mat*_*Mat 4 php grep pattern-matching
我正在开发一个需要多语言的php网站.出于这个原因,我实现了一个具有以下标题的翻译功能:
function t($string, $replace_pairs = array(), $language = NULL)
Run Code Online (Sandbox Code Playgroud)
基本上,这个函数在我的项目的多个文件中被调用如下:
echo '<p>' . t('Hello world!') . '</p>';
$hello_String = t("Hello @name!", array('@name'=>$username));
Run Code Online (Sandbox Code Playgroud)
我还没有生成翻译字符串,我想自动生成多个翻译文件(每种语言一个).
我正在寻找的是一个bash程序(或单个命令,例如使用grep),它将查找对此t()函数的每次调用并生成具有以下结构的php文件:
<?php
/* Translation file "fr.php" */
$strings['fr']['Hello world!'] = '';
$strings['fr']['Hello @name!'] = '';
Run Code Online (Sandbox Code Playgroud)
有没有人遇到这种情况,可以帮助我吗?
非常感谢你.
亲切的问候,
马蒂厄
dec*_*eze 11
是的,你并不是第一个遇到这个问题的人.:)
你可以使用古老的gettext系统,你不需要发明自己的函数.然后你就可以使用xgettext,这是一个命令行实用程序,可以使用该_()函数提取字符串.
如果你想出于任何原因推出自己的系统,最好的办法是编写一个PHP脚本,用于token_get_all标记源代码,然后通过标记查找T_FUNCTION带有值的s t.