[ Pobierz całość w formacie PDF ]
.Zgodnie z ustaleniami Free Software Foundation oznacza to, że każdy program skonsolidowany z libintl musi być rozpowszechniany zgodnie z zasadami licencji GPL.Sposób użycia catgets(3) jest bardzo podobny do użycia gettext(3), z wyjątkiem tego, że API jest mniej klarowny.Jest to dobrze udokumentowane na stronach podręcznika systemowego GNU libc.W skład podsystemu iconv(3) wchodzą funkcje używane przy konwersji kodów w ramach tego samego zestawu znaków.Jest to nowocześnie zaprojektowany moduł wykorzystujący powtórne wejścia i z dobrą obsługą wyjątków.Oznacza to, że zestawy znaków zgodne ze sobą nawet w niewielkim stopniu (np.ASCII i EBCDIC) mogą być przekształcane na siebie nawzajem.Podsystem iconv(3) ułatwia także tworzenie aplikacji, w których wymagana jest np.transliteracja (np.liter cyrylicy na kombinacje liter łacińskich).Funkcje tego podsystemu zapewniają możliwość efektywnej konwersji zarówno na zestaw Unicode, jak i z tego zestawu na inny (a więc np.między Unicode i UTF-8).Są one stosowane głównie w celu zapewnienia zgodności z archiwalnymi plikami i przekształcania danych wprowadzanych przez użytkowników.Obecnie zaleca się, aby pliki danych i dane tworzone przez użytkownika były przechowywane w kodowaniu Unicode lub UTF-8 (jeśli rozmiary plików są istotne, to można sprawdzić, że plik zawierający dane w formacie Unicode i skompresowany za pomocą ogólnie znanego algorytmu, np.gzip, będzie miał taki sam rozmiar, jak ten sam plik w formacie ASCII skompresowany za pomocą takiego samego programu).Moduł iconv ułatwia wykorzystanie Unicode lub UTF-8 do zewnętrznej reprezentacji tekstu, niezależnie do umiejscowienia.Rozszerzenia GNU lib dla modeli POSIX i X/OpenBiblioteka GNU libc w wersji 2.i nowszych w pełni korzysta z modeli POSIX i X/Open.W wersji 2.1 tej biblioteki były wprawdzie jakieś problemy z funkcjami obsługującymi znaki o kodach z ustaloną długością w językach azjatyckich, ale powinno to być poprawione już w wersji 2.2.Najważniejszą dodatkową właściwością tej biblioteki jest dostarczenie API dla katalogów komunikatów.Interfejs ten ma nazwę „GNU gettext” i został utworzony przez Ulricha Dreppera.Problem w zastosowaniu interfejsu catget(3) polega na tym, że wymaga on utrzymywania uporządkowanego odwzorowania wszystkich komunikatów łącznie z numerem indeksu.Funkcja catget(3) korzysta z tego indeksu w celu uzyskania dostępu do katalogu.Bardzo utrudnia to zarządzanie katalogiem, ponieważ jeśli nowy komunikat ma być umieszczony między komunikatami o numerach 1 i 2, to trzeba byłoby nadać mu numer 3.Dlatego właśnie programista jest zmuszony do utrzymywania rejestru numerów komunikatów, co prowadzi do wielu konfliktów, szczególnie w rozproszonych środowiskach programowania, takich jak np.CVS.Dwaj programiści przeglądający ten sam katalog powinni widzieć taki sam „następny” indeks, a więc potrzebny jest jakiś mechanizm przydzielania indeksów.Oprócz tego, jeśli jakiś katalog dla danego umiejscowienia nie zostanie zaktualizowany lub nie istnieje, to należy użyć w programie zakodowanego na stałe napisu awaryjnego, który wcale nie musi być taki sam, jak napis w odpowiednim katalogu obsługującym rodzimy język programu (zazwyczaj angielski).Moduł gettext w wersji GNU (wywodzący się z prac grupy Uniforum kierowanych przez Sun Microsystems) grupuje awaryjne napisy i numery indeksów do postaci pojedynczych obiektów.Zastosowano tu prostą metodę polegającą na użyciu tabeli asocjacyjnej indeksowanej przez napisy awaryjne.Zoptymalizowano tu także spotykany powszechnie w aplikacjach przypadek stosowania oddzielnego katalogu komunikatów dla każdego języka, zezwalając na globalne użycie katalogu.Oznacza to, że wywołanie catgets(3) wymaga podania czterech argumentów (katalog, numer zestawu w katalogu, numer komunikatu i komunikat domyślny), zaś gettext(3) wymaga zwykle podania tylko jednego argumentu — komunikatu domyślnego.Poważną zaletą modułu gettext jest to, że przeróbka programu polegająca na przystosowaniu go do korzystania z tego modułu jest stosunkowo łatwa [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • matkasanepid.xlx.pl