Skip to content

Commit 2f21740

Browse files
#diacritical-marks-and-normalization
1 parent 8d6c4b8 commit 2f21740

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

1-js/05-data-types/03-string/article.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Łańcuchy
1+
# Stringi - ciągi znaków
22

3-
W JavaScript dane tekstowe są przechowywane jako łańcuchy (ciągi znaków). Nie ma oddzielnego typu dla pojedynczego znaku.
3+
W JavaScript dane tekstowe są przechowywane jako stringi - ciągi znaków, lub też łańcuchy znaków. Nie ma oddzielnego typu dla pojedynczego znaku.
44

55
Wewnętrzny format ciągów to zawsze [UTF-16](https://pl.wikipedia.org/wiki/UTF-16), nie jest on powiązany z kodowaniem strony
66

@@ -598,62 +598,62 @@ alert( '𝒳'.charCodeAt(1).toString(16) ); // dcb3, pomiędzy 0xdc00 i 0xdfff
598598
599599
Więcej sposobów radzenia sobie z parami zastępczymi znajdziesz w rozdziale <info:iterable>. Istnieją do tego specjalne biblioteki, ale żadna z nich nie jest na tyle znana, aby można było ją tutaj zasugerować.
600600
601-
### Diacritical marks and normalization
601+
### Znaki diakrytyczne i normalizacja
602602
603-
In many languages there are symbols that are composed of the base character with a mark above/under it.
603+
W wielu językach istnieją symbole, które składają się ze znaku bazowego oraz znaku diakrytycznego.
604604
605-
For instance, the letter `a` can be the base character for: `àáâäãåā`. Most common "composite" character have their own code in the UTF-16 table. But not all of them, because there are too many possible combinations.
605+
Na przykład, litera `a` może być znakiem bazowym dla: `ąàáâäãåā`. Większośc popularnych "kompozycji" znaków posiada swój własny kod w tabeli UTF-16. Ale nie wszystkie, ze względu na dużą liczbę kombinacji.
606606
607-
To support arbitrary compositions, UTF-16 allows us to use several unicode characters: the base character followed by one or many "mark" characters that "decorate" it.
607+
Aby obsługiwać dowolne kompozycje, UTF-16 pozwala nam na użycie kilku znaków Unicode: znaku podstawowego, po którym następuje jeden lub więcej "znaków specjalnych".
608608
609-
For instance, if we have `S` followed by the special "dot above" character (code `\u0307`), it is shown as Ṡ.
609+
Na przykład, jeśli dodamy znak "kropka powyżej" (kod `\u0307`) bezpośrednio po `S`, to będzie on wyświetlany, jako `Ṡ`.
610610
611611
```js run
612612
alert( 'S\u0307' ); //
613613
```
614614
615-
If we need an additional mark above the letter (or below it) -- no problem, just add the necessary mark character.
615+
Jeśli potrzebujemy dodatkowego oznaczenia nad literą (lub pod nią) -- nie ma problemu, wystarczy dodać niezbędny znak oznaczenia.
616616
617-
For instance, if we append a character "dot below" (code `\u0323`), then we'll have "S with dots above and below": `Ṩ`.
617+
Na przykład, jeśli dodamy znak "kropka poniżej" (code `\u0323`), otrzymamy "S z kropkami powyżej i poniżej": `Ṩ`.
618618
619-
For example:
619+
Na przykład:
620620
621621
```js run
622622
alert( 'S\u0307\u0323' ); // Ṩ
623623
```
624624
625-
This provides great flexibility, but also an interesting problem: two characters may visually look the same, but be represented with different unicode compositions.
625+
Zapewnia to dużą elastyczność, ale także interesujący problem: dwie postacie mogą wizualnie wyglądać tak samo, ale być reprezentowane za pomocą różnych kompozycji Unicode.
626626
627-
For instance:
627+
Na przykład:
628628
629629
```js run
630-
let s1 = 'S\u0307\u0323'; // Ṩ, S + dot above + dot below
631-
let s2 = 'S\u0323\u0307'; // Ṩ, S + dot below + dot above
630+
let s1 = 'S\u0307\u0323'; // Ṩ, S + kropka powyżej + kropka poniżej
631+
let s2 = 'S\u0323\u0307'; // Ṩ, S + kropka poniżej + kropka powyżej
632632

633633
alert( `s1: ${s1}, s2: ${s2}` );
634634

635-
alert( s1 == s2 ); // false though the characters look identical (?!)
635+
alert( s1 == s2 ); // false pomimo tego, że znaki wyglądają identycznie (?!)
636636
```
637637
638-
To solve this, there exists a "unicode normalization" algorithm that brings each string to the single "normal" form.
638+
Aby rozwiązać ten problem, istnieje algorytm "normalizacji Unicode", który sprowadza każdy ciąg do pojedynczej "normalnej" postaci.
639639
640-
It is implemented by [str.normalize()](mdn:js/String/normalize).
640+
Jest zaimplementowany przez metodę [str.normalize()](mdn:js/String/normalize).
641641
642642
```js run
643643
alert( "S\u0307\u0323".normalize() == "S\u0323\u0307".normalize() ); // true
644644
```
645645
646-
It's funny that in our situation `normalize()` actually brings together a sequence of 3 characters to one: `\u1e68` (S with two dots).
646+
To zabawne, że w naszym przypadku `normalize()` łączy sekwencję 3 znaków w jeden: `\u1e68` (S z dwoma kropkami).
647647
648648
```js run
649649
alert( "S\u0307\u0323".normalize().length ); // 1
650650

651651
alert( "S\u0307\u0323".normalize() == "\u1e68" ); // true
652652
```
653653
654-
In reality, this is not always the case. The reason being that the symbol `` is "common enough", so UTF-16 creators included it in the main table and gave it the code.
654+
W rzeczywistości taka sytuacja nie zawsze ma miejsce. Znak `` jest "dość powszechny", więc twórcy UTF-16 uwzględnili go w głównej tabeli i przypisali mu kod.
655655
656-
If you want to learn more about normalization rules and variants -- they are described in the appendix of the Unicode standard: [Unicode Normalization Forms](http://www.unicode.org/reports/tr15/), but for most practical purposes the information from this section is enough.
656+
Jeśli chcesz dowiedzieć się więcej o regułach i wariantach normalizacji – są one opisane w załączniku standardu Unicode: [Unicode Normalization Forms](http://www.unicode.org/reports/tr15/). Jednakże do większości praktycznych celów wystarczą informacje z tego rozdziału.
657657
658658
## Summary
659659

0 commit comments

Comments
 (0)