Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
"Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\n"msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%d день назад"
msgstr[1] "%d дня назад"
msgstr[2] "%d дней назад"3) mo — бинарный формат, поэтому отслеживать изменения посредством систем контроля версий не получится
Файл messages.mo в Windows кэшируется, и изменения в нем видны только после перезагрузки Apache.
<xsl:template match="site">
<div class="box" id="SiteSummary">
<h1><xsl:value-of select="/page/nls/text[@id='SiteTitle']"/><xsl:value-of select="@domain"/>!</h1>
<p><xsl:value-of select="/page/nls/text[@id='SiteSubtitle']"/></p>
</div>
...
</xsl:template><?xml version="1.0" encoding="utf-8"?>
<language id="ru">
<text id="SiteTitle"><![CDATA[Заголовок]]></text>
<text id="SiteSubtitle"><![CDATA[Подзаголовок]]></text>
...
</language>private function load_nls()
{
$xml_nls = new DOMDocument('1.0', 'utf-8');
if (!$xml_nls->load(BASE_DIR . '/' . STATIC_DIR . 'language_ru.xml'))
die('unable to load NLS data');
$root = $xml_nls->documentElement;
if ($root->nodeName != 'language')
die('invalid NLS XML data');
$nls_storage = $this->template->data->createElement('nls');
foreach ($root->getElementsByTagName('text') as $e_text)
$nls_storage->appendChild($this->template->data->importNode($e_text, TRUE));
$this->template->data->documentElement->appendChild($nls_storage);
} $xsl = new DOMDocument('1.0', 'utf-8');
$xslt = new XSLTProcessor;
$xsl->loadXML($xsl_contents, LIBXML_NOCDATA);
$xslt->importStyleSheet($xsl);
echo $xslt->transformToXML($this->data);А как формируется языковой XML?
Как переводчику понять, где используется ключ SiteTitle?
<xsl:value-of select="/page/nls/text[@id='Это заголовок сайта']"/>), но тут потребуется некоторая доработка кода, хотя и незначительная.Как за 7 дней научить переводчика писать валидный XSL.
Что со склонением, множественным числом и переводом параметризируемых фраз?
И как, черт возьми, быть с тем фактом, что 82% разработчиков не понимают XSL?
Локализация интерфейса сайта с использованием PHP, Smarty и Gettext