<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF80%3APHP</id>
		<title>LXF80:PHP - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF80%3APHP"/>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;action=history"/>
		<updated>2026-05-13T22:27:05Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.11.1</generator>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;diff=4930&amp;oldid=prev</id>
		<title>Yaleks: шаблон</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;diff=4930&amp;oldid=prev"/>
				<updated>2008-06-30T09:38:14Z</updated>
		
		<summary type="html">&lt;p&gt;шаблон&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 09:38, 30 июня 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;УЧЕБНИК &lt;/del&gt;PHP&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{Цикл/&lt;/ins&gt;PHP&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== ПОДРОБНО О РАСШИРЕНИЯХ ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ PHP: перевод с помощью Gettext ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== ПОДРОБНО О РАСШИРЕНИЯХ ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ PHP: перевод с помощью Gettext ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;diff=4465&amp;oldid=prev</id>
		<title>Lockal: восстановление кавычек в коде  AWB</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;diff=4465&amp;oldid=prev"/>
				<updated>2008-04-27T13:36:09Z</updated>
		
		<summary type="html">&lt;p&gt;восстановление кавычек в коде  &lt;a href=&quot;/index.php?title=Linuxformat:AutoWikiBrowser&amp;amp;action=edit&quot; class=&quot;new&quot; title=&quot;Linuxformat:AutoWikiBrowser&quot;&gt;AWB&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;amp;diff=4465&amp;amp;oldid=3610&quot;&gt;(Различия между версиями)&lt;/a&gt;</summary>
		<author><name>Lockal</name></author>	</entry>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;diff=3610&amp;oldid=prev</id>
		<title>Lockal: «LXF80:ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ PHP» переименована в «LXF80:PHP»</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;diff=3610&amp;oldid=prev"/>
				<updated>2008-03-27T21:11:01Z</updated>
		
		<summary type="html">&lt;p&gt;«&lt;a href=&quot;/index.php/LXF80:%D0%9F%D0%A0%D0%9E%D0%93%D0%A0%D0%90%D0%9C%D0%9C%D0%98%D0%A0%D0%9E%D0%92%D0%90%D0%9D%D0%98%D0%95_%D0%A1%D0%A6%D0%95%D0%9D%D0%90%D0%A0%D0%98%D0%95%D0%92_PHP&quot; title=&quot;LXF80:ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ PHP&quot;&gt;LXF80:ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ PHP»&lt;/a&gt; переименована в «&lt;a href=&quot;/index.php/LXF80:PHP&quot; title=&quot;LXF80:PHP&quot;&gt;LXF80:PHP»&lt;/a&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 21:11, 27 марта 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Lockal</name></author>	</entry>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;diff=3464&amp;oldid=prev</id>
		<title>Domostroitel: Новая: УЧЕБНИК PHP  == ПОДРОБНО О РАСШИРЕНИЯХ ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ PHP: перевод с помощью Gettext == '''''Пол Хад...</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF80:PHP&amp;diff=3464&amp;oldid=prev"/>
				<updated>2008-03-26T11:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: УЧЕБНИК PHP  == ПОДРОБНО О РАСШИРЕНИЯХ ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ PHP: перевод с помощью Gettext == '''''Пол Хад...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;УЧЕБНИК PHP&lt;br /&gt;
&lt;br /&gt;
== ПОДРОБНО О РАСШИРЕНИЯХ ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ PHP: перевод с помощью Gettext ==&lt;br /&gt;
'''''Пол Хадсон '''показывает простой способ добавить поддержку множества языков в ваши сценарии. Powodyenia!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
История всего программирования вплоть до нашего времени – это история постоянного изобретения колеса. На самом деле это довольно неприятно, так как если вы сейчас захотите посадить в каждое колесо по белке, то у вас быстро закончатся белки. Так почему же мы до сих пор продолжаем заново переписывать базовые концепции и решения?&lt;br /&gt;
&lt;br /&gt;
Если вам претит писать нечто, уже кем-то написанное (кроме случаев, когда вы хотите узнать, как это работает) – значит настало время отступить и позволить другим людям сделать работу для вас. В этой первой из посвящённых расширениям PHP статей мы рассмотрим Gettext, позволяющий создавать приложения с поддержкой множества языков. Итак, вперёд!&lt;br /&gt;
&lt;br /&gt;
'''Множество переводов'''&lt;br /&gt;
&lt;br /&gt;
В прошлой статье мы с вами убедились, что поддержка Unicode в PHP далека от совершенства, но это не значит, что программы на PHP вообще нельзя переводить на другие языки. Фактически, в PHP есть прекрасная поддержка системы GNU Gettext, которая позволяет перевести все строки в вашем проекте так, чтобы пользователи работали с ним на своём родном языке. Вероятно, вы подумали: «Ну, это не сложно, потребуется примерно такой код», – и написали нечто вроде:&lt;br /&gt;
&lt;br /&gt;
 include “lang/spanish.php”;&lt;br /&gt;
 print $welcome;&lt;br /&gt;
&lt;br /&gt;
Такая программа будет прекрасно работать, но её очень трудно поддерживать – вам потребуется великолепная память, чтобы запомнить, что же содержится в переменной '''$welcome''', особенно когда число строк, нуждающихся в переводе, перевалит за тысячу.&lt;br /&gt;
&lt;br /&gt;
Но есть способ лучше! Gettext позволяет вам использовать строковые константы на английском языке прямо внутри программы, а затем ищет их и заменяет на переводные аналоги прямо в процессе выполнения, в зависимости от настроек пользователя.&lt;br /&gt;
&lt;br /&gt;
Поддержка Gettext по умолчанию отсутствует в PHP, так что вам потребуется достать последнюю версию исходного кода и во время конфигурации указать опцию --with-gettext в числе других опций, настраивающих, какие расширения вы собираетесь использовать. После выполнения команд ''make ''и ''make install ''вы будете готовы к последней проверке. Запустите '''php -m''' и убедитесь, что модуль Gettext установлен.&lt;br /&gt;
&lt;br /&gt;
Кроме того, чтобы использовать Gettext в своих приложениях, вам потребуются пакеты '''gettext и gettext-devel'''. Модуль gettext устанавливается по умолчанию во всех дистрибутивах, которые я знаю, но утилиты для его использования в своих программах входят в '''gettext-devel''', так что вам придётся установить и его. В моём дистрибутиве SUSE 10.0 gettext-devel загадочным образом отсутствует, но я быстро нашёл нужный RPM в Google.&lt;br /&gt;
&lt;br /&gt;
Теперь давайте создадим простой сценарий, который затем будем переводить. Для этого нам потребуются несколько новых функций: setlocale() для того, чтобы подменить текущие языковые настройки пользователя, bindtextdomain() для того, чтобы указать где на жёстком диске находится файл перевода и textdomain(), чтобы приказать Gettext использовать этот перевод. Запишите следующий код в файл '''gettext_test.php''':&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 setlocale(LC_ALL, “pl_PL”);&lt;br /&gt;
 bindtextdomain(“messages”, “./locale”);&lt;br /&gt;
 textdomain(“messages”);&lt;br /&gt;
 echo gettext(“Hello, Linux Format!\n”);&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hables ingles'''&lt;br /&gt;
&lt;br /&gt;
Следующим шагом мы добавим несколько переводов нашего текста. И тут уже вступает в игру gettext-devel. Если у вас установлен этот пакет, значит, вы можете воспользоваться утилитой ''xgettext'', которая извлекает все строки из программы и создаёт файл messages.po. Это тот самый файл, в котором будет жить ваш перевод, и именно его нужно отправлять команде, отвечающей за локализацию проекта, чтобы они могли сделать свою работу.&lt;br /&gt;
&lt;br /&gt;
Поскольку у вас, скорее всего, нет под рукой команды локализации, вероятно вам придётся сделать и этот шаг самостоятельно (я надеюсь, что у вас найдётся польско-венгерский словарь). Для начала запустите&lt;br /&gt;
&lt;br /&gt;
  xgettext -n gettext_test.php&lt;br /&gt;
&lt;br /&gt;
Эта программа создаст файл '''messages.po''', в котором после некоторого количества неинтересной информации будет следующее:&lt;br /&gt;
&lt;br /&gt;
 msgid “”&lt;br /&gt;
 msgstr “”&lt;br /&gt;
 “Project-Id-Version: PACKAGE VERSION\n”&lt;br /&gt;
 “Report-Msgid-Bugs-To: \n”&lt;br /&gt;
 “POT-Creation-Date: 2006e-03-23 10:07+0000\n”&lt;br /&gt;
 “PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n”&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;“Last-Translator: FULL NAME &amp;lt;EMAIL@ADDRESS&amp;gt;\n”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;“Language-Team: LANGUAGE &amp;lt;LL@li.org&amp;gt;\n”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 “MIME-Version: 1.0\n”&lt;br /&gt;
 “Content-Type: text/plain; charset=CHARSET\n”&lt;br /&gt;
 “Content-Transfer-Encoding: 8bit\n”&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#: text1.php:6&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 msgid “Hello, Linux Format!\n”&lt;br /&gt;
 msgstr “”&lt;br /&gt;
&lt;br /&gt;
Каждой строке '''msgid''' соответствует строка в нашем PHP-сценарии. Ниже расположены строчки, начинающиеся на '''msgstr''', в которых нужно указывать переводы. Использование параметра '''-n''' привело к включению в файл комментариев, указывающих где какая строчка находится.&lt;br /&gt;
&lt;br /&gt;
Мы собираемся создать три варианта переводов: pl_PL (польский язык, на котором говорят в Польше), hu_HU (венгерский язык, на котором говорят в Венгрии) и en_GB (английский, на котором говорят в цивилизованной части мира). Мы уже указали в качестве области с текстами каталог '''locale''', а это значит, что в этом каталоге нам нужно создать по подкаталогу для каждого поддерживаемого языка. Каждый их этих каталогов должен содержать подкаталог '''LC_MESSAGES''', в котором уже будет храниться наш PO-файл с переводом.&lt;br /&gt;
&lt;br /&gt;
Итак, скопируйте файл '''messages.po''' в каждый из этих каталогов.&lt;br /&gt;
&lt;br /&gt;
Откройте файл в каталоге '''locale/pl_PL/LC_MESSAGES''' и отредактируйте его так, чтобы последними строчками были:&lt;br /&gt;
&lt;br /&gt;
 msgid “Hello, Linux Format!\n”;&lt;br /&gt;
 msgstr “Czesc, Linux Format!\n”;&lt;br /&gt;
&lt;br /&gt;
Сохраните файл и запустите команду&lt;br /&gt;
&lt;br /&gt;
 msgfmt messages.po&lt;br /&gt;
&lt;br /&gt;
Вероятно, вы получите предупреждение о неправильной кодировке, но не беспокойтесь на этот счёт – ''msgfmt ''преобразует '''messages.po''' в '''messages.mo''', который содержит бинарные версии наших строк и может быть использован gettext.&lt;br /&gt;
&lt;br /&gt;
В каталоге '''locale/hu_HU/LC_MESSAGES''' вы, вероятно, захотите указать в качестве значения msgstr '''“Szia, Linux Format!\n”''', а в '''locale/en_GB/LC_MESSAGES - “What ho, Linux Format!\n”'''. Предупреждая ваш вопрос, сразу отвечу – нет, в действительности я так не разговариваю. Запустите '''msgfmt''' в каждом из каталогов, так чтобы у вас в итоге получилась структура, показанная на рис. 1, где в качестве корня служит тот каталог, в котором вы работаете.&lt;br /&gt;
&lt;br /&gt;
Прямо сейчас вы уже можете запустить программу и увидеть работу gettext в действии. Если вы помните, в программе мы указали в качестве языка pl_PL, так что если вы запустите '''php gettext_test.php''', то получите на консоли текст ‘Czesc, Linux Format!’.&lt;br /&gt;
&lt;br /&gt;
Если вы измените файл '''gettext_test.php''' так, что вместо pl_PL там будет указано en_GB, то текст на консоли соответствующим образом изменится.&lt;br /&gt;
&lt;br /&gt;
'''Обработка множественных форм.'''&lt;br /&gt;
&lt;br /&gt;
Программисты ленивы. Я имею ввиду вот что – видели ли вы гденибудь текст наподобие '''«3 file(s) deleted»'''? Такие вещи – это обычное дело, поскольку требуется написать несколько лишних строк кода, чтобы программа говорила «files» когда речь идёт об удалении более чем одного файла и «file» в случае удаления единственного экземпляра. Но если даже потребовать от программистов аккуратности, они скорее всего напишут что-то вроде&lt;br /&gt;
&lt;br /&gt;
 if ($deleted_files == 1) {&lt;br /&gt;
 echo “1 file deleted”;&lt;br /&gt;
 } else {&lt;br /&gt;
 echo “$deleted_files deleted”;&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_79_1.jpg|frame|]]&lt;br /&gt;
&lt;br /&gt;
Да, это немного получше, но всего лишь немного. Проблема в том, что все три языка, которые мы используем, имеют разные правила образования множественного числа: в английском языке используются формы file и files, венгры используют одну единственную форму (''f jl''), идёт ли речь об одном файле или о тысячах. Польский ещё сложнее – у вас есть один ''plik'', два, три или четыре ''pliki'', а для чисел от 5 до 21 используется форма ''plik w''. Это очень сложно, но Gettext прекрасно справляется даже здесь.&lt;br /&gt;
&lt;br /&gt;
Для начала давайте добавим в наш тестовый сценарий строку, которая зависит от числа. Добавьте в конец файла '''gettext_test.php''' следующий код:&lt;br /&gt;
&lt;br /&gt;
 $file_count = 0;&lt;br /&gt;
 printf(ngettext(“%d file”, “%d files”, $file_count), $file_&lt;br /&gt;
 count);&lt;br /&gt;
 echo “\n”;&lt;br /&gt;
&lt;br /&gt;
Функция '''ngettext()''' отвечает за образование множественного числа для выбранного языка. В качестве первого его параметра передаётся текст для единственного числа, в качестве второго – какую строку использовать для множественного числа, а в качестве третьего – число, от которого зависит выбор формы. '''%d''' передаётся в gettext и не изменяется им, так что например при использовании польского языка будет возвращено '''%d pliki''', если '''$file_count''' равно 34. Затем эта строка передаётся в функцию '''printf()''', которая уже подменяет '''%d''' на значение переменной '''$file_count'''.&lt;br /&gt;
&lt;br /&gt;
Теперь нам нужно научить Gettext вычислять множественные формы для всех используемых языков. Итак, в '''en_GB messages.po''' добавьте следующую строчку прямо перед ‘Project-Id-Version’:&lt;br /&gt;
&lt;br /&gt;
 “Plural-Forms: nplurals=2; plural=n != 1\n”&lt;br /&gt;
&lt;br /&gt;
Это значит: в этом языке есть две формы множественного числа, множественное надо использовать, если значение числа не равно единице. Теперь нам надо добавить переводы для строк '''%d file''' и '''%d files''', но поскольку дело касается множественного числа, то и указывать переводы надо особым образом. Добавьте в '''messages.po''' в каталоге '''en_GB/LC_MESSAGES''' следующий текст:&lt;br /&gt;
&lt;br /&gt;
 msgid “%d file”&lt;br /&gt;
 msgid_plural “%d files”&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;msgstr[0] “I say, there is %d file!”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;msgstr[1] “I say, there are %d files!”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для венгерского языка описание множественной формы будет следующим:&lt;br /&gt;
&lt;br /&gt;
 “Plural-Forms: nplurals=1; plural=0”&lt;br /&gt;
&lt;br /&gt;
Это значит: использовать одну и ту же форму для единственного и множественного числа. Перевод в конце файла будет выглядеть так:&lt;br /&gt;
&lt;br /&gt;
 msgid “%d file”&lt;br /&gt;
 msgid_plural “%d files”&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;msgstr[0] “%d f jl”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И наконец, польский язык. У него очень сложная строка описания множественной формы, поскольку надо обработать три типа множественного числа. К счастью, дружественные к GNU местные жители, которые написали справку к Gettext, подготовили для нас правильный вариант:&lt;br /&gt;
&lt;br /&gt;
 “Plural-Forms: nplurals=3; plural=n==1 ? &amp;lt;nowiki&amp;gt;0 : n%10&amp;gt;=2 &amp;amp;&amp;amp; n%10&amp;lt;=4 &amp;amp;&amp;amp;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;(n%100&amp;lt;10 || n%100&amp;gt;=20) ? 1 : 2;\n”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А вот перевод:&lt;br /&gt;
&lt;br /&gt;
 msgid “%d file”&lt;br /&gt;
 msgid_plural “%d files”&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;msgstr[0] “%d plik”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;msgstr[1] “%d pliki”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;msgstr[2] “%d plik w”&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Осталось запустить '''msgfmt''' в каждом из каталогов с переводами и запустить сценарий на выполнение. Попробуйте менять значение '''$file_count''' и наблюдайте за результатом, особенно для польского языка.&lt;br /&gt;
&lt;br /&gt;
Gettext – это всё, что вам нужно для того, чтобы ввести многоязычность в ваши программы. Да, придётся приложить некоторые усилия, но пользователи будут вам очень благодарны.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ПОДСКАЗКИ'''&lt;br /&gt;
&lt;br /&gt;
*Если вам надоело постоянно набирать gettext(), просто используйте более короткое имя функции _().&lt;br /&gt;
&lt;br /&gt;
*Если вы хотите установит ваш вариант перевода на уровне всей системы, то не используйте файлы под названием messages.mo.&lt;br /&gt;
&lt;br /&gt;
Вместо этого используйте название своего приложения, например fuzz.mo, чтобы избежать конфликта имён. Вам потребуется изменить вызовы bindtextdomain() и textdomain(), чтобы они соответствовали новому имени файла.&lt;br /&gt;
&lt;br /&gt;
*Когда вы распространяете своё приложение для обычных пользователей, то вам не нужно включать в дистрибутивы PO файлы, вполне достаточно его скомпилированной MO версии. PO может потребоваться только тем, кто будет изменять перевод.&lt;br /&gt;
&lt;br /&gt;
*Чтобы узнать, как правильно обрабатывать множественные числа других языков, обратитесь к онлайн-документации&lt;br /&gt;
Gettext на '''http://www.gnu.org/software/manual'''.&lt;/div&gt;</summary>
		<author><name>Domostroitel</name></author>	</entry>

	</feed>