<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="pl" xml:lang="pl" xmlns="http://www.w3.org/1999/xhtml">

	<head>
<?php 
// authors should fill in these assignments:
$directory = 'questions/'; // the directory path below /International up to but not including the file name: must end in a slash! 
$filename = 'qa-bidi-css-markup'; // the file name WITHOUT extensions
$topicIndex = 'resource-index?topic=bidi'; // path after /International/ to the appropriate place in the topic index
$techIndex = 'techniques/bidi'; // path after /International/ to the appropriate place in the techniques index
$authors = 'Richard Ishida, W3C'; // author(s) and affiliations
$modifiers = ''; // people making substantive changes, and their affiliation
$searchString = 'qa-bidi-css-markup'; // blog search string - usually the filename without extensions
$firstPubDate = '2003-07-13'; // date of the first publication of the document (after review)
$lastSubstUpdate = '2007-08-29 12:27';  // date of latest substantive changes to this document

// authors AND translators should fill in these assignments:
$clang = 'pl'; // the language extension for articles in this language (use 'en' for English)
$isTranslation = 'yes';  // set to 'yes' if this is a translation !
$copyrightYear = '2003-2008'; // this year, but may also be a range, eg. 2002-2006
$thisVersion = '2008-10-03 11:52'; // date of latest edits to this document/translation

// translators should fill in these assignments:
$translators = '<a href="http://fortheweb.info/">Sebastian Backstone</a>'; // translator(s) and their affiliation - a elements allowed, but use double quotes for attributes
$enVersion = '2007-08-29 12:27';  // date of the English original on which the translation is based (see last substantive change date at bottom of file)

$additionalLinks = '';
?>
<?php
include($filename.'-trans.php');
// authors should check that the following point to /International/php/bp/... - must be relative path
include('../php/bp/nativetext.php'); 
include('../php/bp/boilerplate-'.$clang.'2.php'); 
?>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>W3C I18N FAQ: Obsługa bidi - style CSS czy znaczniki?</title>
		<meta name="keywords"
		 content="i18n internacjonalizacja lokalizacja tłumaczenie style CSS dwukierunkowy znacznik bidi"/>
		<meta name="description"
		 content="W3C I18N FAQ: Czy w językach HTML i opartych na składni XML do poprawnego formatowania tekstu w algorytmie dwukierunkowym (bidi) Unicode należy stosować style CSS czy znaczniki?"/>
<?php echo $basicLinks;?>
<?php echo $langLinks; ?>

		<style type="text/css" media="all" title="standardsStylesheet">
		<?php echo $standardsStylesheet ?>
		.visualascii { font-weight: bold; }</style>
<?php echo $scriptIncludes; ?>

	</head>

	<body bgcolor="white">
		<span id="version-info" style="display: none;"><!-- #BeginDate format:IS1m -->2008-11-02  16:10<!-- #EndDate --></span> <?php echo $topOfPage; ?>

		<h1>FAQ: Obsługa bidi - style CSS czy znaczniki?</h1>
<div id="navigation"> 
			<p><?php echo $onthispage?><?php echo $questionLink?>&nbsp;- <?php echo $backgroundLink?>&nbsp;- <?php echo $answerLink?>&nbsp;- <?php echo $btwLink?>&nbsp;-
				<?php echo $readingLink?></p>
		</div>
		<div class="section"><a id="contentstart" name="contentstart" tabindex="1"></a> 
			<div id="audience"> 
				<!--<p><?php echo $intendedAudience?> users, XHTML/HTML coders (using editors or scripting), script developers (PHP, JSP, etc.), CSS coders,
					schema developers (DTDs, XML Schema, RelaxNG, etc.), XSLT developers, Web project managers, and anyone who is new to internationalization and needs
					guidance on topics to consider and ways to get into the material on the site. </p>-->
			</div>

			<h2><?php echo $questionHead?></h2>
			<div class="section2"> 
				<p class="question">Czy w językach HTML i opartych na składni XML do poprawnego formatowania tekstu w algorytmie dwukierunkowym (bidi) Unicode należy stosować style CSS czy znaczniki?</p>
		  </div>
		</div>
		<p class="background-link noprint"><?php echo $skiptoAnswer?></p>
		<div class="section"> 

			<h2><?php echo $backgroundHead?></h2>
			<p>W tekstach pisanych po arabsku lub hebrajsku zapis czytany jest przeważnie od prawej do lewej (RTL), pozostałe sposoby zapisu są odzyczytywane od lewej do prawej (LTR). Większość pracy algorytm Unicode bidi poświęca odpowiedniemu ukierunkowaniu tekstu, w oparciu o właściwości zastosowanych znaków. Niemniej musi też istnieć możliwość zaznaczenia:</p>
<ul>
				<li> 
					<p>że ogólne zorientowanie zawartości i układu strony (jak np. kierunek w komórkach tabeli) powinien mieć wartość RTL (LTR jest wartościa domyślną), ponieważ dany dokument jest w znacznej części napisany pismem arabskim lub hebrajskim</p>
	</li>
				<li> 
					<p>że część dokumentu oznaczona jako LTR należy traktować jako RTL i vice versa</p>
	</li>
				<li> 
					<p>jakiego ukierunkowanie tekstu oczekuje się, jeśli <a href="http://www.unicode.org/reports/tr9/">dwukierunkowy algorytm Unicode</a> nie jest w stanie poprawnie ułożyć przyległych linii tektu biegnącego w różnych kierunkach</p>
	</li>
				<li> 
					<p>że ukierunkowanie określone przez algorytm bidi Unicode należy obejść.</p>
	</li>
			</ul>
			<div class="insidenote"> 
				<p>Prezentujemy przykłady użycia tekstu w zapisie od prawej do lewej oraz jednocześnie w zapisie ASCII (agielski tekst zapisany jest małymi literami, a arabaski i hebrajski dużymi). Kolejność i pozycja znaków odwierciedla kolejność i pozycje oryginału.</p>
		  </div>
			<div class="example"> 
				<div class="box-header">Przykład:</div>
				<p>Aby lepiej objaśnić trzeci punkt poniższy przykład przedstawia wynik, jaki można otrzymać opierając się wyłącznie na algorytmie dwukierunkowym. Wynik ten jest niepoprawny. Ponieważ cały cytat jest po hebrajsku, więc czyta się go od prawej do lewej, to tekst &quot;W3C&quot; oraz przecinek powinny pojawić się po lewej stronie (tzn. na końcu) tekstu hebrajskiego. </p>
		  <blockquote> 
					<p>Tytuł po hebrajsku "פעילות הבינאום, W3C&quot;.</p>
<p><span class="visualascii">Wersja ASCII:</span> 
						<br/>
						Tytuł po hebrajsku "YTIVITCA NOITAZILANOITANRETNI, w3c"</p>
				</blockquote>
				<p>Poprawny rezultat powinien po wyświetleniu wyglądać tak:</p>
		  <blockquote> 
					<p>Tytuł po hebrajsku "<span dir="rtl">פעילות הבינאום, W3C</span>". </p>
<p><span class="visualascii">Wersja ASCII:</span> 
						<br/>
						Tytuł po hebrajsku "w3c ,YTIVITCA NOITAZILANOITANRETNI".</p>
				</blockquote>
			</div>
			<p>Język XHTML/HTML posiada znaczniki, które można stosować w takich przypadkach. Są to:</p>

	  <table class="inband">
				<tbody>
					<tr>
						<th>Znacznik</th>
						<th>Działania</th>
					</tr>
					<tr>
						<td><code>dir</code> atrybut</td>
						<td>Ustawia kierunek zapisu dla elementu, do którego jest dołączony oraz dalszch elementów. Możliwe wartości atrybutu to: <code>rtl</code> oraz
							<code>ltr</code>. </td>
				  </tr>
					<tr>
						<td><code>bdo</code> element</td>
						<td>Umożliwia obejście ukierunkowania tekstu określonego przez algorytm bidi Unicode.</td>
				  </tr>
				</tbody>
			</table>

			<p>Możliwości obsługi ukierunkowania tekstu w CSS:</p>

<table class="inband">
				<tbody>
					<tr>
						<th>Właściwość</th>
						<th>Wartości</th>
						<th>Działanie</th>
					</tr>
					<tr>
						<td rowspan="2"><code>unicode-bidi</code> </td>
						<td><code>embed</code></td>
						<td>Tekst przyjmie ukierunkowanie określone przez właściwość <code>direction</code>. </td>
				  </tr>
					<tr>
						<td><code>bidi-override</code></td>
						<td>W tekście nastąpi obejście algorytmu bidi Unicode zgodnie z wartością wskazaną przez właściwość <code>direction</code>. </td>
				  </tr>
					<tr>
						<td rowspan="2"><code>direction</code></td>
						<td><code>ltr</code></td>
						<td>Kierunek tekstu określanego przez właściwość <code>unicode-bidi</code> ustawiony zostaje na LTR.</td>
				  </tr>
					<tr>
						<td><code>rtl</code></td>
						<td>Kierunek tekstu określanego przez właściwość <code>unicode-bidi</code> ustawiony zostaje na RTL.</td>
				  </tr>
				</tbody>
			</table>

			<p> Należy zadać sobie pytanie czy powinno się stosować znaczniki lub style CSS do określania kierunku tekstu w języku HTML oraz w językach opartych na składni XML.</p>
	</div>
		<div class="section"> 

			<h2><?php echo $answerHead?></h2>
			<div class="sidenoteGroup"> 
				<p>Jeżeli tylko jest to możliwe, w opisie zawartości należy stosować dedykowane znaczniki bidi. Style CSS mogą, choć nie muszą, być wtedy wymagane do opisania znacznika. Wszystko zależy od tego, czy pracuje się nad zawartością obsługiwaną przez agenta użytkownika taką jak kod HTML lub XML. (Uwaga:  <a href="/International/articles/serving-xhtml/#mime">XHTML może być obsługiwany jako obydwa</a>!) </p>
			  <div class="sidenote">Zawsze należy pamiętać, że ani znaczniki ani style CSS nie powinne być stosowane 
					<a href="http://www.w3.org/TR/i18n-html-tech-bidi/#ri20030726.132037950">bez powodu</a>. Zadane wcześniej pytanie odnosi się do sytuacji, w których algorytm bidi Unicode jest niewystarczający, lub ukierunkowania nie można ustawić za pomocą właściwości <code>&amp;lrm;</code> i <code>&amp;rlm;</code>.</div>
		  </div>
			<p>Przyjżyjmy się temu problemowi dokładniej.</p>
	  <div class="section2"> 

				<h3><a href="#markup" name="markup" id="markup">Stosowanie dedykowanych znaczników</a></h3>
		<p>Ponieważ kierunek tekstu stanowi integralny element struktury dokumentu, do określenia kierunku tekstu w całym dokumencie lub jego fragmencie, a także do identyfikacji miejsc w tekście, w których dwukierunkowy algorytm Unicode jest niewystarczający do uzyskania oczekiwanych rezultatów należy stosować <strong>znaczniki</strong>.</p>
		<p>Niektórzy ludzie, aby uzyskać oczekiwany kierunek tekstu z prawej do lewej lub jego dwukierunkowość, stosują po prostu style CSS do każdego akapitu lub wcięcia tekstu zawierających dany tekst. Jednak style określone przez CSS nie są stałe. Można je obejść, wyłączyć, zmienić/zamienić w różnych kontekstach, a nawet mogą zostać całkowicie nierozpoznane. Chociaż znaczniki bidi wymagane są tylko przy wyświetlaniu graficznym tekstu, to nie pełnią one jedynie funkcji dekoracyjnej. Znaczniki pozostają na stałe zintegrowane z zawartością dokumentu. Dodatkowo stosowanie dedykowanych znaczników bidi pozwala na uzyskanie większej czytelności zawartości.</p>
		<p>Należy zatem stosować dedykowane znaczniki bidi tam, gdzie jest to możliwe. Błedem jest uzyskiwanie oczekiwanych rezultatów poprzez zwykłe przypisanie stylów CSS do wybranych elementów.</p>
		<p>Warto zauważyć, że zakładamy tu, iż dokumenty napisane w językach znacznikowych zawsze odwołują się do znaczników dedykowanych specjalnie do obslugi tekstu w zmiennych kierunkach zapisu. Osoby stosujące DTD lub Schema mogą śmiało dodawać elementy i atrybuty z tym związane.</p>
		  </div>
			<div class="section2"> 

				<h3><a href="#html" name="html" id="html">HTML lub XHTML obsługiwane jako <code>text/html</code></a></h3>
				<p>Należy stosować wyłącnie <strong>znaczniki</strong>. Rekomendacja CSS2 zaleca użycie znaczników do formatowania tekstu bidi w dokumentach HTML. W rzeczywistości można nawet powiedzieć, że zgodny ze standardami agent użytkownika HTML może zignorować właściwości bidi stylów CSS. Dzieje się tak, ponieważ specyfikacja HTML wyraźnie określa oczekiwane zachowania agenta użytkownika związane ze znacznikami bidi.</p>
		  </div>
			<div class="section2"> 

				<h3><a href="#xhtml" name="xhtml" id="xhtml">XHTML obsługiwany jako<code>application/xhtml+xml</code></a></h3>
			  <p>XHTML 1.0 obsługiwany jako <code>application/xhtml+xml</code> powinien wykorzystywać tą samą semantykę co HTML. Sensowne jest więc stosowanie wyłącznie znaczników i nie używanie stylów CSS.</p>
		  </div>
			<div class="section2"> 

				<h3><a href="#xml" name="xml" id="xml">Ogólna składnie  XML i XHTML obsługiwana jako <code>application/xml</code> lub
					<code>text/xml</code></a></h3>
			  <p>Zazwyczaj agent użytkownika nie będzie w stanie automatycznie rozpoznać ani przetworzyć jakiegokolwiek znacznika bidi użytego w dokumentach XML. Do określenia oczekiwanego formatowania tekstu w dokumencie należy więc zastosować właściwości stylów <strong>CSS</strong>.</p>
			  <p>Style CSS powinny jednak zawsze być połączone z dedykowanymi znacznikami bidi w tekście.</p>
			  <p>XHTML obsługiwany jako <code>application/xml</code> lub <code>text/xml</code> jest przez agenta użytkownika traktowany jako XML a nie HTML.</p>
			  <p>Poniższy przykład pokazuje dlaczego style CSS powinno się wykorzystać przy zbiorze znaczników dostępnych w XHTML:</p>
		  <div class="example"> 
					<p><code>*[dir="ltr"] { direction: ltr; unicode-bidi: embed } </code></p>
					<p><code>*[dir="rtl"] { direction: rtl; unicode-bidi: embed } </code></p>
					<p><code>bdo[dir="ltr"] { direction: ltr; unicode-bidi: bidi-override }</code></p>
					<p><code>bdo[dir="rtl"] { direction: rtl; unicode-bidi: bidi-override } </code></p>
				</div>
			</div>
		</div>
		<div class="section"> 

			<h2><?php echo $btwHead?></h2>
			<p>W językach XHTML/HTML i zapewne innych językach opartych na składni XML mogą zdarzyć się sytuacje, w których tekst pojawia się w obrębie atrybutu lub elementu obsługującego wyłącznie dane w postaci znaków. Do modyfikowania kierunku tekstu atrybutu lub lub  <em>części tekstu</em> w elemencie obsługującym wyłącznie dane w postaci znaków nie można wykorzystywać ani znaczników ani stylów CSS. W takich przypadkach należy zastosować kody kierunkowego foramtowanie Unicode. (Patrz FAQ
				<a href="/International/questions/qa-bidi-controls.html">(X)HTML &amp; bidi formatting codes vs. markup</a>)</p>
		  <p>W językach opartych na składni XML style bidi powinny być zdefiniowane w oddzielnym arkuszy stylów, a sam arkusz należy dołączycdo innych arkuszy stylów w dokumencie. Upraszcza to późniejsze prace nad arkuszami i podkreśla różnicę pomiędzy bidi a innymi stylami. Dobrze jest myśleć o arkuszu stylów bidi jako o części schematu informacji, który definiuje znaczenie konkretnych znaczników bidi, a nie pełni tylko funkcję dekoracji, które mogą istnieć w wielu różnych wariantach.</p>
	</div>
<?php echo $survey;?>
		<div class="section noprint"> 

			<h2><?php echo $readingHead?></h2>
			<ul id="full-links">
				<li> 
					<p><a href="/TR/html40/struct/dirlang.html#h-8.2">HTML 4 specification, section 8.2, Specifying the direction of text and tables: the
						dir attribute</a> <span class="uri">http://www.w3.org/TR/html40/struct/dirlang.html#h-8.2</span></p>
				</li>
				<li> 
					<p><a href="/TR/REC-CSS2/visuren.html#direction">Cascading Style Sheets, level 2 (CSS2) Specification, section 9.10, Text direction:
						the 'direction' and 'unicode-bidi' properties</a> <span class="uri">http://www.w3.org/TR/REC-CSS2/visuren.html#direction</span></p>
				</li>
				<li> 
					<p><a href="/International/questions/qa-bidi-controls">FAQ: (X)HTML &amp; bidi formatting codes vs. markup</a> <span
						class="uri">/International/questions/qa-bidi-controls</span></p>
				</li>
			</ul>
		</div>
<?php echo $bottomOfPage; ?>

	</body>
</html>
