I’m using PoEdit on smarty templates (phtml and tpl files) with the following Poedit configuration for PHP parser :
Extensions:
*.php;*.phtml;*.tpl
Parser command :
xgettext --language=PHP --force-po -o %o %C %K %F
If i’m using gettext inside PHP tags <?php _('test'); ?> Poedit detect that translation as expected. But i’m using Smarty {_('test')} for displaying the translation, Poedit don’t detect it.
Is there a way to make Smarty detect { and } characters as PHP tags ?
Advertisement
Answer
Recently I got to work with Yii used with Smarty and gettext. but poedit not support the syntax of smarty.
https://github.com/Garefild/PoeditSmarty
And here comes the use of PoeditSmarty allowed Poedit recognize the syntax of Smarty.
{t}Text to be localized{/t}
{"Text to be localized"|_}
{_("Text to be localized")}
Very simple to use, PoeditSmarty creates a “pot” file which Poedit know to read.
For example, I have a file “Header.tpl”
<form class="login" method="post" id="login">
<h2>{__('login')}</h2>
<div class="wrap">
<input type="text" autofocus="" placeholder="{__('Username')}" class="form-control" name="username">
<br>
<input type="password" placeholder="{__('Password')}" class="form-control" name="password">
<div class="captcha">
<img alt="" src="" id="codeImage">
<label class="checkbox">
<span class="pull-right">
<a href="#" id="code" class="forgot">{__('Get a new code')}</a>
</span>
</label>
<input type="text" placeholder="{__('verify Code')}" class="form-control" name="verifyCode">
</div>
<button type="submit" class="btn login-btn" name="submitLogin">
<i class="fa fa-lock"></i>
{__('Log me in')}
</button>
<hr>
<div class="password">
<p>{__('Do you not remember your password')} ?</p>
<a data-toggle="modal" class="forgot">{__('Password Recovery')}</a>
</div>
<hr>
<h3 class="logo">{__('siteName')}</h3>
</div>
</form>
I’ll run the PoeditSmarty via cmd
java -jar "C:Program FilesPoeditGettextToolsbinPoeditSmarty.jar" -o C:UsersMikeDesktopxxxtempPot.pot -c UTF-8 -k __ -f header.tpl
The result of pot file
# [email protected]. # Garefild <[email protected]>, 2015-2020. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSIONn" "Report-Msgid-Bugs-To: n" "POT-Creation-Date: 2015-12-29 16:47n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONEn" "Last-Translator: FULL NAME <[email protected]>n" "Language-Team: LANGUAGE <[email protected]>n" "Language: n" "MIME-Version: 1.0n" "Content-Type: text/plain; charset=CHARSETn" "Content-Transfer-Encoding: 8bitn" #: header.tpl:48 msgid "Password Recovery" msgstr "" #: header.tpl:36 msgid "Get a new code" msgstr "" #: header.tpl:29 msgid "Username" msgstr "" #: header.tpl:39 msgid "verify Code" msgstr "" #: header.tpl:51 msgid "siteName" msgstr "" #: header.tpl:27 msgid "login" msgstr "" #: header.tpl:47 msgid "Do you not remember your password" msgstr "" #: header.tpl:31 msgid "Password" msgstr "" #: header.tpl:43 msgid "Log me in" msgstr ""
via Poedit