Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 202

Автор Роббинс ΠΡ€Π½ΠΎΠ»ΡŒΠ΄

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ ΠΊ созданию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ², ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом являСтся ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… строк. Π­Ρ‚ΠΎ осущСствляСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ

xgettext
:

$ <b>xgettext --keyword=_ --keyword=N_ \</b>

&gt; <b>--default-domain=echodate ch13-echodate.с</b>

ΠžΠΏΡ†ΠΈΠΈ

--keyword
сообщаСт
xgettext
, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ макросы
_()
ΠΈ
N_()
. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ строки ΠΈΠ·
gettext()
ΠΈ Π΅Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·
gettext_noop()
.

Π’Ρ‹Π²ΠΎΠ΄

xgettext
называСтся пСрСносимым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ. Имя Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
messages.Ρ€ΠΎ
, Ρ‡Ρ‚ΠΎ соотвСтствуСт тСкстовому Π΄ΠΎΠΌΠ΅Π½Ρƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
&quot;messages&quot;
. ΠžΠΏΡ†ΠΈΡ
--default-domain
ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ тСкстовый Π΄ΠΎΠΌΠ΅Π½ для использования Π² ΠΈΠΌΠ΅Π½ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, Ρ„Π°ΠΉΠ» Π½Π°Π·Π²Π°Π½
echodate.Ρ€ΠΎ
. Π’ΠΎΡ‚ Π΅Π³ΠΎ содСрТаниС:

# SOME DESCRIPTIVE TITLE. /* Π¨Π°Π±Π»ΠΎΠ½, Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ */

# Copyright (Π‘) YEAR THE PACKAGE'S COPYRIGHT HOLDER

# This file is distributed under the same license as the PACKAGE package.

# FIRST AUTHOR &lt;[email protected]&gt;, YEAR.

#

#, fuzzy

msgid &quot;&quot; /* ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация */

msgstr &quot;&quot; /* ЗаполняСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ */

&quot;Project-Id-Version: PACKAGE VERSION\n&quot;

&quot;Report-Msgid-Bugs-To: \n&quot;

&quot;POT-Creation-Date: 2003-07-14 18:46-0700\n&quot;

&quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&quot;

&quot;Last-Translator: FULL NAME &lt;[email protected]&gt;\n&quot;

&quot;Language-Team: LANGUAGE &lt;[email protected]&gt;\n&quot;

&quot;MIME-Version: 1.0\n&quot;

&quot;Content-Type: text/plain; charset=CHARSET\n&quot;

&quot;Content-Transfer-Encoding: 8bit\n&quot;

#: ch13-echodate.c:19 /* ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сообщСния */

msgid &quot;Enter a Date/time as YYYY/MM/DD HH:MM:SS : &quot; /* ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  сообщСниС */

msgstr &quot;&quot; /* Π—Π΄Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ */

#: ch13-echodate.с:32 /* To ΠΆΠ΅ самоС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния */

#, с-format

msgid &quot;Got: %s&quot;

msgstr &quot;&quot;

Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, это шаблон для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ², ΠΈ ΠΏΠΎ соглашСнию, для отобраТСния этого Ρ„Π°ΠΊΡ‚Π° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ

.pot
(portable object template β€” пСрСносимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ шаблон):

$ <b>mv echodate.Ρ€ΠΎ echodate.pot</b>

He владСя свободно нСсколькими языками, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ пСрСвСсти сообщСния Π½Π° свинский латинский. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом являСтся созданиС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ осущСствляСтся ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° шаблона ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°:

$ <b>cp echodate.pot piglat.po</b>

$ <b>vi piglat.po</b> /* Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ */

Имя ΠΏΠΎ соглашСнию Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ

<i>язык</i>.po
, Π³Π΄Π΅
<i>язык</i>
являСтся стандартным ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ сокращСниСм ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ… Π±ΡƒΠΊΠ² для обозначСния языка. Иногда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°
<i>язык_страна</i>.po
: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
pt_BR.po
для ΠΏΠΎΡ€Ρ‚ΡƒΠ³Π°Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π² Π‘Ρ€Π°Π·ΠΈΠ»ΠΈΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ свинский латинский Π½Π΅ являСтся настоящим языком, ΠΌΡ‹ Π½Π°Π·Π²Π°Π»ΠΈ Ρ„Π°ΠΉΠ»
piglat.Ρ€ΠΎ
. [147] Π’ΠΎΡ‚ содСрТаниС послС добавлСния ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°:

# echodate translations into pig Latin

# Copyright (C) 2004 Prentice-Hall

# This file is distributed under the same license as the echodate package.

# Arnold Robbins &lt;[email protected]&gt; 2004

#

#, fuzzy

msgid &quot;&quot;

msgstr &quot;&quot;

&quot;Project-Id-Version: echodate 1.0\n&quot;

&quot;Report-Msgid-Bugs-To: [email protected]\n&quot;

&quot;POT-Creation-Date: 2003-07-14 18:46-0700\n&quot;

&quot;PO-Revision-Date: 2003-07-14 19:00+8\n&quot;

&quot;Last-Translator: Arnold Robbins &lt;[email protected]&gt;\n&quot;

&quot;Language-Team: Pig Latin &lt;[email protected]&gt;\n&quot;

&quot;MIME-Version: 1.0\n&quot;

&quot;Content-Type: text/plain; charset=ASCII\n&quot;

&quot;Content-Transfer-Encoding: 8bit\n&quot;

#: ch13-echodate.с:19

msgid &quot;Enter a Date/time as YYYY/MM/DD HH:MM:SS : &quot;

msgstr &quot;Enteray A Ateday/imetay asay YYYY/MM/DD HH:MM:SS : &quot;

#: ch13-echodate.c:32

#, c-format

msgid &quot;Got: %s&quot;

msgstr &quot;Otgay: %s&quot;

Π₯отя ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ произвСсти Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск Π² пСрСносимом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Ρ‚Π°ΠΊΠΎΠΉ поиск Π±Ρ‹Π» Π±Ρ‹ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ. НапримСр, Π²

gawk
имССтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 350 ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сообщСний, Π° Π² GNU Coreutils β€” ΡΠ²Ρ‹ΡˆΠ΅ 670. Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск Π² Ρ„Π°ΠΉΠ»Π΅ с сотнями сообщСний Π±Ρ‹Π» Π±Ρ‹ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ GNU
gettext
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для быстрого поиска сообщСний Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ осущСствляСт
msgfmt
, выдавая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» сообщСний: