[ Pobierz całość w formacie PDF ]
.Po drugie, stanowi to punkt zaczepienia dla metod mog¹cych dowolnieprzetwarzaæ dane wejœciowe.Przydaje siê to np.w jêzykach azjatyckich, wktórych trzeba przegl¹daæ zewnêtrzne s³owniki i interaktywnie wybieraæodpowiednie znaki, gdy¿ tysi¹com znaków nie mo¿na przydzieliæ ani oddzielnychklawiszy, ani nawet unikatowych kombinacji klawiszy.Te punkty zaczepienia(uchwyty) zosta³y unormowane i nosz¹ nazwê X Input Methods (XIM).Formatowanie danych wyjœciowychOczywiste jest stwierdzenie, ¿e jedne kroje pisma wygl¹daj¹ lepiej ni¿ inne, aniektóre jêzyki opisuj¹ce krój daj¹ lepsze wyniki przy wyœwietlaniu znaków ni¿inne.To wielki wstyd, ¿e tak d³ugo trzeba by³o czekaæ na pojawienie siêwsparcia dla TrueType w systemie X.Nikt nie wspomaga tak¿e bardzo dobrzejêzyka arabskiego, który korzysta z mniej ni¿ setki znaków.Ka¿dy znakprzyjmuje jednak inny kszta³t zale¿ny od po³o¿enia w wyrazie (inny na pocz¹tku,inny na koñcu i inny w œrodku).Oprócz tego, w piœmie arabskim stosuje siê³¹czenie znaków zale¿ne od ich rodzaju.Krój pisma arabskiego o wysokiejjakoœci zawiera tysi¹ce glifów, dziêki którym mo¿na obs³u¿yæ poprawnie jegowszystkie kontekstowe w³aœciwoœci.Nie stanowi to jednak problemu dlaprogramistów: wystarczy wywo³aæ funkcjê printf z argumentami kontroluj¹cymirozmiar i po³o¿enie napisu — model X11 pozwala na takie dzia³anie.Kompozycjaelementów interfejsu graficznego stwarza inny problem: u¿ytkownicy pos³uguj¹cysiê pismem czytanym od prawej do lewej (np.hebrajskiego i arabskiego) oczekuj¹zazwyczaj, ¿e etykiety bêd¹ umieszczone z lewej strony tych elementów, którychdotycz¹.W jêzyku angielskim sytuacja jest dok³adnie odwrotna.Na szczêœcie dosz³o do umowy miêdzy zwolennikami krojów pisma TrueType i AdobeType 1, którzy utworzyli nowy format OpenType ³¹cz¹cy w sobie w³aœciwoœcika¿dej z tych grup.Rozwi¹zanie to prawdopodobnie wystarczy na kilkanajbli¿szych lat.OpenType umo¿liwia wyœwietlanie tekstu z wysok¹ jakoœci¹.Pomimo tego, ¿e nie rozwi¹zano tu problemu pisma czytanego od prawej do lewej(co w zasadzie oznacza koniecznoœæ czytania dwukierunkowego, bo liczby w jêzykuarabskim i hebrajskim oraz wtr¹cenia zachodnie s¹ czytane od lewej do prawej),to w X11R6 wprowadzono tzw.X Output Method (XOM).Podobnie jak X11R6, tak¿e istandard XOM stanowi czêœæ definicji X11.Jest on wygodnym punktem zaczepieniadla specjalistów opracowuj¹cych metody obs³ugi danych wyjœciowych pomocnym wobs³udze skryptów prawoczytelnych i glifów zale¿nych od kontekstu.W normalnychsytuacjach problemy te nie s¹ dostrzegalne dla programisty tworz¹cegoaplikacje, jeœli podsystem XOM zostanie zainicjowany.Rozwa¿a siê wprowadzenietego w takich pakietach narzêdziowych, jak Motif i GTK+.Wprowadzanie danych przez u¿ytkownikaKa¿dy, kto walczy³ ze standardowymi funkcjami scanf(3), wie, ¿e obs³uga danychwyjœciowych to po prostu bu³ka z mas³em.Prawdziwy programista musi po prostumieæ smyka³kê do obs³ugi wejœcia.Dotyczy to równie¿ wejœcia I18N.Mówi¹cdok³adnie, to nie samo wejœcie stwarza problemy; problemem jest rozpoznawanieznaczenia strumienia danych.Wczytanie danych wejœciowych do bufora jestwykonywane tylko raz, ale program mo¿e potrzebowaæ kilku przejœæ przezposzczególne segmenty strumienia wejœciowego, aby odpowiednio go przetworzyæ.Dlatego w³aœnie zaprzysiêgli programiœci jêzyka C nie martwi¹ siêograniczeniami fscanf(3), ale po prostu korzystaj¹ albo z fgets(3), albo zfread(3).Dziêki temu program mo¿e wypróbowaæ kilka ró¿nych konwersji danychwprowadzonych przez u¿ytkownika, a nie od razu zak³adaæ np.poprawnoœækonwersji za pomoc¹ formatu %d.Angielskojêzyczni programiœci próbuj¹cyodczytaæ liczbê mog¹ byæ ca³kowicie pewni, czy jest ona zakodowana jako ASCII.W wielu innych jêzykach istnieje jednak np.kilka metod zakodowania liczby„jeden” (Japoñczycy stosuj¹ co najmniej trzy sposoby).W najprostszej sytuacji obs³uga „miêdzynarodowych” danych wejœciowych jestzadaniem banalnym, poniewa¿ realizuje j¹ sprzêt.Istniej¹ przecie¿ specjalneklawiatury dla jêzyka francuskiego lub hebrajskiego.Po naciœniêciuodpowiedniego klawisza taka klawiatura wysy³a do procesora kod znaku z zestawuISO-8859-1 (w przypadku klawiatury francuskiej) lub ISO-8859-8 (dla klawiaturyhebrajskiej)
[ Pobierz całość w formacie PDF ]