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

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

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

13.4.4. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ придСтся ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ символов ΠΈ ΠΈΡ… прСдставлСниями. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΌΠΈΡ€ быстро становится Β«Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ сообщСством», ΠΈ Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, стоит Π·Π½Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² символов, Π° Ρ‚Π°ΠΊΠΆΠ΅ способах ΠΈΡ… влияния Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ вашСй систСмы. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΡƒΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· поставщиков дистрибутивов GNU/Linux устанавливаСт для систСм Π² Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π¨Ρ‚Π°Ρ‚Π°Ρ… локаль ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

en_US.UTF-8
.

13.5. РСкомСндуСмая Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

1.Β Π‘, A Reference Manual, 5th edition, by Samuel P. Harbison III and Guy L. Steele, Jr., Prentice-Hall, Upper Saddle River, New Jersey, USA, 2002. ISBN: 0-13-089592-X.

ΠœΡ‹ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ эту ΠΊΠ½ΠΈΠ³Ρƒ Ρ€Π°Π½ΡŒΡˆΠ΅. Она Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΈ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ описаниС развития ΠΈ использования возмоТностСй стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚Π½Ρ‹ΠΌΠΈ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌΠΈ символами. Π­Ρ‚ΠΎ особСнно Ρ†Π΅Π½Π½ΠΎ для соврСмСнных систСм, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… C99, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Ρ‹Π»Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π° для стандарта Π‘ 1999 Π³.

2.Β GNU gettext tools, by Ulrich Drepper, Jim Meyering, FranΓ§ois Pinard, and Bruno Haible. Π­Ρ‚ΠΎ руководство ΠΏΠΎ GNU

gettext
. На систСмС GNU/Linux Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию Ρ‡Π΅Ρ€Π΅Π· '
info gettext
'. Или Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ (ΠΏΠΎ адрСсу
ftp://ftp.gnu.org/gnu/gettext/
).

13.6. РСзюмС

β€’Β Π˜Π½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ локализация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ΄ ΠΎΠ±Ρ‰Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка. Π¨ΠΈΡ€ΠΎΠΊΠΎ распространСнными сокращСниями ΡΠ²Π»ΡΡŽΡ‚ΡΡ i18n, l10n ΠΈ NLS. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ являСтся понятиС Π»ΠΎΠΊΠ°Π»ΠΈ, которая позволяСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ символов, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‹, Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Ρ… ΠΈ числовых Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ Π² соотвСтствии с принятыми для Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ странС Π½ΠΎΡ€ΠΌΠ°ΠΌΠΈ.

β€’Β Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ устанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

setlocale()
. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ доступ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²ΠΈΠ΄Π°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ локаль ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² Π»ΠΎΠΊΠ°Π»ΠΈ Β«Π‘Β», которая Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ для систСм Unix Π΄ΠΎ NLS Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹: 7-разрядный ASCII, английскиС названия мСсяцСв ΠΈ Π΄Π½Π΅ΠΉ ΠΈ Ρ‚.Π΄. Π›ΠΎΠΊΠ°Π»ΡŒ Β«POSIXΒ» эквивалСнтна Π»ΠΎΠΊΠ°Π»ΠΈ Β«Π‘Β».

β€’Β Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΠΈ осущСствляСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ

strcoll()
ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ
strxfrm()
ΠΈ
strcmp()
. ВозмоТности Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ доступ ΠΊ свСдСниям ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈ (
localeconv()
ΠΈ
nl_langinfo()
), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ спСцифичСского для Π»ΠΎΠΊΠ°Π»ΠΈ форматирования (
strfmon()
,
strftime()
ΠΈ
printf()
).

β€’Β ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ стороной получСния относящСйся ΠΊ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ являСтся Π²Ρ‹Π²ΠΎΠ΄ сообщСний Π½Π° мСстном языкС. МодСль

catgets()
System V, хотя ΠΈ стандартизована POSIX, Ρ‚Ρ€ΡƒΠ΄Π½Π° для использования ΠΈ поэтому Π½Π΅ рСкомСндуСтся. [151] ВмСсто этого GNU
gettext
Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ замысСл Solaris.

β€’Β ΠŸΡ€ΠΈ использовании

gettext()
ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ строка сообщСния Π½Π° английском дСйствуСт Π² качСствС ΠΊΠ»ΡŽΡ‡Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ получаСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки. КаТдоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ тСкстовый Π΄ΠΎΠΌΠ΅Π½ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹
gettext()
ΠΌΠΎΠ³Π»Π° Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ (извСстный ΠΊΠ°ΠΊ «список сообщСний»). ВСкстовый Π΄ΠΎΠΌΠ΅Π½ устанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
textdomain()
. ΠŸΡ€ΠΈ тСстировании ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ надобности мСстополоТСниС списка сообщСний ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
bindtextdomain()
.

β€’Β 

gettext()
ΠΈ Π΅Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ доступ ΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°ΠΌ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… тСкстовых Π΄ΠΎΠΌΠ΅Π½Π°Ρ… ΠΈΠ»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… катСгориях Π»ΠΎΠΊΠ°Π»Π΅ΠΉ. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, функция
ngettext()
ΠΈ Π΅Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ мноТСствСнных чисСл, Π½Π΅ пСрСгруТая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ полоТСния Π² спСцификаторС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°
printf()
Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… строк, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ порядкС, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² строкС.

‒ На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ GNU ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… строк Π² исходных Ρ„Π°ΠΉΠ»Π°Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

gettext.h
ΠΈ макросы
_()
ΠΈ
N_()
. Вакая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° обСспСчиваСт ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ исходного ΠΊΠΎΠ΄Π° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, прСдоставляя Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя прСимущСства ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

β€’Β GNU

gettext
прСдоставляСт многочислСнныС инструмСнты для создания ΠΈ управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² (пСрСносимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²) ΠΈ ΠΈΡ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ эквивалСнтами (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ сообщСний).

‒ НаконСц, стоит Π±Ρ‹Ρ‚ΡŒ Π² курсС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠ² символов ΠΈ ΠΈΡ… прСдставлСний. ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ большС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ хотят Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ лишь Π½Π° ΠΎΠ΄Π½ΠΎΠΌ языкС.

УпраТнСния

1.Β ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ ваша систСма Π»ΠΎΠΊΠ°Π»ΠΈ? Если Π΄Π°, какая локаль ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ?

2.Β ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ страницу locale(1), Ссли ΠΎΠ½Π° Ρƒ вас Π΅ΡΡ‚ΡŒ. Бколько имССтся Π»ΠΎΠΊΠ°Π»Π΅ΠΉ, Ссли Π²Ρ‹ посчитаСтС ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ '

locale -a | wc -l
'?

3.Β ΠŸΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ с

ch13-strings.с
,
ch13-lconv.c
,
ch13-strfmon.с
,
ch13-quoteflag.c
ΠΈ
ch13-times.c
Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… локалях. Какая ΠΈΠ· Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π»ΠΎΠΊΠ°Π»Π΅ΠΉ самая «нСобычная» ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ?

4.Β Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π˜Π½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π΅ с использованиСм GNU

gettext
. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ, ΠΊΡ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ пСрСвСсти для вас сообщСния. ΠžΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈ протСстируйтС Π΅Π³ΠΎ, использовав
bindtextdomain()
. Какова Π±Ρ‹Π»Π° рСакция вашСго ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈ Π²ΠΈΠ΄Π΅ использования ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°?

Π“Π»Π°Π²Π° 14

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ интСрфСйсы

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ нСсколько Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… API. Они сходны ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ с описанными Ρ€Π°Π½Π΅Π΅ Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности. НСкоторыС ΠΈΠ· Π½ΠΈΡ… Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π±Ρ‹Π»ΠΎ свободно ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±Ρ‹Π»ΠΈ освСщСны ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ прСдставлСния здСсь соотвСтствуСт порядку Π³Π»Π°Π² Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΠΊΠ½ΠΈΠ³ΠΈ. Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ‚Π΅ΠΌΡ‹ Π½Π΅ связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠœΡ‹ освСщаСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы: динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠΉ памяти; Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ²; ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… со значСниями Π΄ΠΎΠ»Π΅ΠΉ сСкунды; ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для сохранСния ΠΈ получСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠ΅, всС API Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² стандарт POSIX.

14.1. Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠΉ памяти:

posix_memalign()
ΠΈ
memalign()

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π·Π°Π΄Π°Ρ‡ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят стандартныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ выдСлСния памяти β€”

malloc()
,
realloc()
ΠΈ Ρ‚.Π΄. Но ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠ°ΠΌΡΡ‚ΡŒ, которая Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π° Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ способом. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, адрСс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° являСтся ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ числа. (НапримСр, Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ памяти осущСствляСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π±ΡƒΡ„Π΅Ρ€Π°, Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π΅ слова.) Π’Π°ΠΊΡƒΡŽ слуТбу ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: