# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR < [email protected]>, YEAR.
#
#, fuzzy
msgid "" /* ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ */
msgstr "" /* ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊ */
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2003-07-14 18:46-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME < [email protected]>\n"
"Language-Team: LANGUAGE < [email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: ch13-echodate.c:19 /* ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ */
msgid "Enter a Date/time as YYYY/MM/DD HH:MM:SS : " /* ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ */
msgstr "" /* ΠΠ΄Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ */
#: ch13-echodate.Ρ:32 /* To ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ */
#, Ρ-format
msgid "Got: %s"
msgstr ""
ΠΡΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ², ΠΈ ΠΏΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ, Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .pot (portable object template β ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½):
$ mv echodate.ΡΠΎ echodate.pot
He Π²Π»Π°Π΄Π΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ²ΠΈΠ½ΡΠΊΠΈΠΉ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠΉ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°. ΠΡΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»Π° ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°:
$ cp echodate.pot piglat.po
$ vi piglat.po /* ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΡΠ±ΠΈΠΌΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ */
ΠΠΌΡ ΠΏΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ·ΡΠΊ.po, Π³Π΄Π΅ ΡΠ·ΡΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΌ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Π΄Π²ΡΡ ΠΈΠ»ΠΈ ΡΡΠ΅Ρ Π±ΡΠΊΠ² Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°. ΠΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠ° ΡΠ·ΡΠΊ_ΡΡΡΠ°Π½Π°.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 < [email protected]> 2004
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: echodate 1.0\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2003-07-14 18:46-0700\n"
"PO-Revision-Date: 2003-07-14 19:00+8\n"
"Last-Translator: Arnold Robbins < [email protected]>\n"
"Language-Team: Pig Latin < [email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
#: ch13-echodate.Ρ:19
msgid "Enter a Date/time as YYYY/MM/DD HH:MM:SS : "
msgstr "Enteray A Ateday/imetay asay YYYY/MM/DD HH:MM:SS : "
#: ch13-echodate.c:32
#, c-format
msgid "Got: %s"
msgstr "Otgay: %s"
Π₯ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠΈΡΠΊ Π±ΡΠ» Π±Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² gawk ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 350 ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π° Π² GNU Coreutils β ΡΠ²ΡΡΠ΅ 670. ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΡΠΎΡΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π±ΡΠ» Π±Ρ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ. ΠΠΎΡΡΠΎΠΌΡ GNU gettext ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ msgfmt, Π²ΡΠ΄Π°Π²Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
$ msgfmt piglat.po -ΠΎ piglat.mo
ΠΡΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ: Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅, Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² .ΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΡΠ°ΡΠ΅ΡΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° msgmerge ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ .pot. ΠΠ°ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½. ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
$ msgmerge piglat.po echodate.pot -o piglat.new.po /* ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ */
$ mv piglat.new.po piglat.po /* ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ */
$ vi piglat.po /* ΠΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ */
$ msgfmt piglat.po -o piglat.mo /* ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠ» .mo */
ΠΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ .mo ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ°ΠΉΠ» base/locale/category/textdomain.mo. ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ GNU/Linux base ΡΠ²Π»ΡΠ΅ΡΡΡ /usr/share/locale. locale ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 'es', 'fr' ΠΈ Ρ.Π΄. category ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ; Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΡΠΎ LC_MESSAGES. textdomain ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ echodate. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π² /usr/share/locale/es/LC_MESSAGES/coreutils.mo Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ GNU Coreutils Π½Π° ΠΈΡΠΏΠ°Π½ΡΠΊΠΈΠΉ.
Π€ΡΠ½ΠΊΡΠΈΡ bindtextdomain() ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π² ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ°ΡΡΡ base. Π ch13-echodate.c ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π΅ Π½Π° '.'. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠ΄Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π° ΡΠ²ΠΈΠ½ΡΠΊΠΈΠΉ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠΉ:
$ mkdir -Ρ en_US/LC_MESSAGES /* ΠΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π»ΠΎΠΊΠ°Π»Ρ */
$ cp piglat.mo en_US/LC_MESSAGES/echodate.mo /* ΠΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» Π² Π½ΡΠΆΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ */
ΠΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅Π°Π»ΡΠ½Π°Ρ Π»ΠΎΠΊΠ°Π»Ρ[148]; ΠΌΡ Β«ΠΏΡΠΈΡΠ²ΠΎΡΡΠ΅ΠΌΡΡΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ "en_US". Π Π°Π·ΠΌΠ΅ΡΡΠΈΠ² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ LC_ALL, ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π΅ΠΌ ΠΏΠ°Π»ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
$ LC_ALL=en_US ch13-echodate /* ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ */
Enteray A Ateday/imetay asay YYYY/MM/DD HH:MM:SS : 2003/07/14 21:19:26
Otgay: Mon Jul 14 21:19:26 2003
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ GNU gettext ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° GNU gettext.[149]
ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» Π»ΠΈΡΡ ΡΠ»Π΅Π³ΠΊΠ° ΠΊΠΎΡΠ½ΡΠ»ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. GNU gettext ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°ΠΌΠΈ, ΠΈ Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΠΌ, Π½ΠΎ ΡΡΠΎΠΌΠΈΡΠ΅Π»Π΅Π½. ΠΡΠ° Π·Π°Π΄Π°ΡΠ° Π»Π΅Π³ΠΊΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ make; Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, GNU gettext Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ Autoconf ΠΈ Automake, ΡΠ½ΠΈΠΌΠ°Ρ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π³ΡΡΠ· ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ GNU gettext, ΡΡΠΎΠ±Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ± ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊ ΠΈ ΠΎ GNU gettext Π² ΠΎΠ±ΡΠ΅ΠΌ.
13.4. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠΎΠΈΠ·Π½Π΅ΡΡΠΈ ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎ Π±ΡΠΊΠ²Π°ΠΌ?
Π ΡΠ°ΠΌΡΠ΅ ΡΠ°Π½Π½ΠΈΠ΅ Π΄Π½ΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π°Π·Π½Π°ΡΠ°Π»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π³Π»ΠΈΡΠ°ΠΌΠΈ (glyphs) β ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊ Π±ΡΠΊΠ²Ρ, ΡΠΈΡΡΡ ΠΈ Π·Π½Π°ΠΊΠΈ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π»ΡΠ΄ΡΠΌΠΈ. Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π΄Π²Π° ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°: ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° EBCDIC, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ IBM ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌΠΈ Π΅ΠΉ ΠΌΡΠΉΠ½ΡΡΠ΅ΠΉΠΌΠ°ΠΌΠΈ, ΠΈ ASCII, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΡΠΉΠ½ΡΡΠ΅ΠΉΠΌΠΎΠ², ASCII ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΌΠΈΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ASCII Π΄ΠΎΡΡΠ°ΡΠΎΡΠ΅Π½ Π΄Π»Ρ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΎΠ³ΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π½Π°ΠΊΠΎΠ² ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ $, Π½ΠΎ Π½Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π΄Π»Ρ Β«ΡΠ΅Π½ΡΠ°Β»). ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½, ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½Ρ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°Π±ΠΎΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ASCII Π½Π΅ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΡΠΎΠΌΠ°Π½ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Ρ Π½Π°Π΄ΡΡΡΠΎΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈΡΡ Π² ΠΠ²ΡΠΎΠΏΠ΅, Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π°Π·ΠΈΠ°ΡΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΡΡΡΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠ»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ° ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΠΈΠ»ΡΠ΅Ρ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π° ΡΡΠΈ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΠΈΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ API Π‘.
ΠΠ°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (character set)
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ΅Π»ΡΠΌ Π²Π΅Π»ΠΈΡΠΈΠ½Π°ΠΌ; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ A ΡΠ°Π²Π½ΠΎ 65. ΠΡΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ Π²ΠΎΡΡΠΌΠΈ Π±ΠΈΡΠΎΠ² Π½Π° ΡΠΈΠΌΠ²ΠΎΠ», Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (character set encoding)
ASCII ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π°Π±ΠΎΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Unicode[150], ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠ΄ΠΈΠ½, Π΄Π²Π° ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΠΈ ΡΡΠ°ΡΡΠΈΡ Π±Π°ΠΉΡΠ° ΡΠ΅Π»ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π° Π΄ΠΈΡΠΊΠ΅ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ 16- ΠΈΠ»ΠΈ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ ΡΠ΅ΡΡΠΈ Π±Π°ΠΉΡΠΎΠ² Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π² ΡΠ΅Π»ΠΎΠΌ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
Π―Π·ΡΠΊ
ΠΡΠ°Π²ΠΈΠ»Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠ°Π²ΠΈΠ»Π° Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΡΠ°Π½ΡΡΠ·ΡΠΊΠΎΠΌ Π΅, Γ© ΠΈ Γ¨ Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ d ΠΈ f, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΡΡΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°Π·Π½Π°ΡΠΈΡΡ (ΠΈ Π½Π°Π·Π½Π°ΡΠ°ΡΡ) ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π³Π»ΠΈΡΠ°ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.