Skip to content

Translate untranslated chapters to Polish #1760

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Sep 1, 2020
Merged

Translate untranslated chapters to Polish #1760

merged 4 commits into from
Sep 1, 2020

Conversation

unrooted
Copy link
Contributor

This translates the untranslated chapter of the Tour of Scala into Polish.

@eed3si9n
Copy link
Member

Thanks for the contribution! I can't review this myself so could you find someone who can? Fortunately Poland has no shortage of knowledgable Scala programmers so I'm sure you can find someone in no time. /cc @Krever, @romanowski, @rkrzewski, @EncodePanda

@unrooted
Copy link
Contributor Author

I added f6e4b50 to the #1758 a few days ago and it's also added in here, I guess we can close #1758 and focus on this PR since it also does include the same thing but doesn't have such a mess in logs.

Copy link

@Krever Krever left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few changes, but looks good in general, thanks!
I haven't checked the new pages ordering though, I hope its alright.

</tr>
<tr>
<td><span class="label success">Dobrze</span><br> <pre class="highlight"><code>def f(x: Any) = println(x)</code></pre><br /> <span class="label important">Źle</span><br> <pre class="highlight"><code>def f(x) = println(x)</code></pre></td>
<td>Definiowanie funkcji.<br />Błąd składni: potrzebne są typy dla każdego argumentu.</td>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this file was adjusted only on structure level but I go through it anyway, so will suggest few improvements. Feel free to ignore those though.

Suggested change
<td>Definiowanie funkcji.<br />Błąd składni: potrzebne są typy dla każdego argumentu.</td>
<td>Definiowanie funkcji.<br />Błąd składni: wymagane są typy dla każdego argumentu.</td>
</tr>
<tr>
<td><pre class="highlight"><code>def f(x: R)</code></pre> vs.<br /> <pre class="highlight"><code>def f(x: =&gt; R)</code></pre></td>
<td>Wywołanie przez wartość.<br /><br />Wywołanie przez nazwę (parametry leniwe).</td>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<td>Wywołanie przez wartość.<br /><br />Wywołanie przez nazwę (parametry leniwe).</td>
<td>Wywołanie przez wartość.<br /><br />Wywołanie przez nazwę (parametr leniwy).</td>
</tr>
<tr>
<td><pre class="highlight"><code>(1 to 5).map(_ * 2)</code></pre> vs.<br /> <pre class="highlight"><code>(1 to 5).reduceLeft(_ + _)</code></pre></td>
<td>Funkcja anonimowa: podkreślenie to argument pozycjonalny</td>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<td>Funkcja anonimowa: podkreślenie to argument pozycjonalny</td>
<td>Funkcja anonimowa: podkreślenie to argument pozycyjny</td>
</tr>
<tr>
<td><span class="label success">Dobrze</span><br> <pre class="highlight"><code>(1 to 5).map(2*)</code></pre><br /> <span class="label important">Źle</span><br> <pre class="highlight"><code>(1 to 5).map(*2)</code></pre></td>
<td>Funkcja anonimowa: związana metoda infiksowa. Możesz użyć także <code>2*_</code>.</td>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<td>Funkcja anonimowa: związana metoda infiksowa. Możesz użyć także <code>2*_</code>.</td>
<td>Funkcja anonimowa: związana metoda infiksowa. Możesz użyć także <code>2 * _</code>.</td>
} map {
_ * 2
}</code></pre></td>
<td>Funkcja anonimowa: Styl potokowy (lub ponawiasowane).</td>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<td>Funkcja anonimowa: Styl potokowy (lub ponawiasowane).</td>
<td>Funkcja anonimowa: Styl potokowy.</td>

I know english version has this addition but IMHO it makes completely no sense in polish
Original for reference: Anonymous functions: pipeline style (or parens too).

@@ -1,15 +1,92 @@
---
layout: tour
title: Packages and Imports
title: Paczki i importy
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: Paczki i importy
title: Pakiety i importy
---

# Packages and Imports
# Paczki i importy
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Paczki i importy
# Pakiety i importy
class User
```

Jednym z założeń jest nadanie paczce takiej samej nazwy, jak katalog zawierający plik Scali. Jednak Scala jest niezależna od układu plików. Struktura katalogów projektu SBT dla użytkowników pakietu (`package users`) może wyglądać następująco:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Jednym z założeń jest nadanie paczce takiej samej nazwy, jak katalog zawierający plik Scali. Jednak Scala jest niezależna od układu plików. Struktura katalogów projektu SBT dla użytkowników pakietu (`package users`) może wyglądać następująco:
Jedną z konwencji jest nadawanie pakietowi takiej samej nazwy, jak nazwa katalogu zawierającego plik źródłowy. Jednak Scala jest niezależna od układu plików. Struktura katalogów projektu SBT dla `package users` może wyglądać następująco:
- test
```

Zwróć uwagę, że katalog `users` znajduje się w katalogu `scala` i jak w pakiecie znajduje się wiele plików Scali. Każdy plik Scali w pakiecie może mieć tę samą deklarację pakietu. Innym sposobem deklarowania pakietów jest użycie nawiasów klamrowych:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Zwróć uwagę, że katalog `users` znajduje się w katalogu `scala` i jak w pakiecie znajduje się wiele plików Scali. Każdy plik Scali w pakiecie może mieć tę samą deklarację pakietu. Innym sposobem deklarowania pakietów jest użycie nawiasów klamrowych:
Zwróć uwagę, że katalog `users` znajduje się w katalogu `scala`, a w pakiecie znajduje się wiele plików Scali. Każdy plik Scali w pakiecie może mieć tę samą deklarację pakietu. Innym sposobem deklarowania pakietów jest użycie nawiasów klamrowych:
}
```

Jak widać, pozwala to na zagnieżdżanie pakietów i zapewnia większą kontrolę nad zakresem i hermetyzacją. Nazwa pakietu powinna być zapisana małymi literami, a jeśli kod jest opracowywany w organizacji, która posiada witrynę internetową, powinna mieć następującą konwencję formatu: `<top-level-domain>.<domain-name>.<project-name>`. Na przykład, gdyby firma Google miała projekt o nazwie `SelfDrivingCar`, nazwa pakietu wyglądałaby następująco:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Jak widać, pozwala to na zagnieżdżanie pakietów i zapewnia większą kontrolę nad zakresem i hermetyzacją. Nazwa pakietu powinna być zapisana małymi literami, a jeśli kod jest opracowywany w organizacji, która posiada witrynę internetową, powinna mieć następującą konwencję formatu: `<top-level-domain>.<domain-name>.<project-name>`. Na przykład, gdyby firma Google miała projekt o nazwie `SelfDrivingCar`, nazwa pakietu wyglądałaby następująco:
Jak widać, pozwala to na zagnieżdżanie pakietów i zapewnia większą kontrolę nad zakresem i hermetyzacją. Nazwa pakietu powinna być zapisana małymi literami, a jeśli kod jest tworzony w organizacji, która posiada witrynę internetową, powinna mieć następującą konwencję formatu: `<top-level-domain>.<domain-name>.<project-name>`. Na przykład, gdyby firma Google miała projekt o nazwie `SelfDrivingCar`, nazwa pakietu wyglądałaby następująco:
Copy link

@Krever Krever left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Would be good if one more person could look at it, but if not should still be ok.

Copy link

@rkrzewski rkrzewski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, I've added some edit suggestions for the consideration of translation's author.

language: pl
---

_Parametry przekazywane według nazwy_ są ewaluowane za każdym razem gdy są używane. Nie zostaną w ogóle wyewaluowane jeśli nie będą używane. Jest to podobne do zastępowania parametrów według nazwy przekazanymi wyrażeniami. Są przeciwieństwem do _parametrów według wartości_. Aby utworzyć parametr wywoływany według nazwy, po prostu dodaj `=>` przed jego typem.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
_Parametry przekazywane według nazwy_ są ewaluowane za każdym razem gdy są używane. Nie zostaną w ogóle wyewaluowane jeśli nie będą używane. Jest to podobne do zastępowania parametrów według nazwy przekazanymi wyrażeniami. Są przeciwieństwem do _parametrów według wartości_. Aby utworzyć parametr wywoływany według nazwy, po prostu dodaj `=>` przed jego typem.
_Parametry przekazywane według nazwy_ są ewaluowane za każdym razem gdy są używane. Nie zostaną w ogóle wyewaluowane jeśli nie będą używane. Jest to podobne do zastępowania parametrów w ciele funkcji wyrażeniami podanymi w miejscu jej wywołania. Są przeciwieństwem do _parametrów przekazywanych według wartości_. Aby utworzyć parametr przekazywany według nazwy, po prostu dodaj `=>` przed jego typem.

Metoda `whileLoop` używa wielu list parametrów do określenia warunku i treści pętli. Jeśli `condition` (warunek) jest prawdziwy, `body` (treść) jest wykonywana a następnie wykonywane jest rekurencyjne wywołanie `whileLoop`. Jeśli `condition` jest fałszywy, treść nigdy nie jest ewaluowana, ponieważ dodaliśmy `=>` do typu `body`.

Teraz, kiedy przekażemy `i>0` jako nasz `condition` (warunek) i `println(i); i-= 1` jako `body`, nasze wyrażenie zachowuje się jak standardowa pętla while w wielu językach.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Teraz, kiedy przekażemy `i>0` jako nasz `condition` (warunek) i `println(i); i-= 1` jako `body`, nasze wyrażenie zachowuje się jak standardowa pętla while w wielu językach.
Jeśli przekażemy `i>0` jako nasz `condition` (warunek) i `println(i); i-= 1` jako `body`, nasze wyrażenie zachowuje się jak standardowa pętla while w wielu językach.

Teraz, kiedy przekażemy `i>0` jako nasz `condition` (warunek) i `println(i); i-= 1` jako `body`, nasze wyrażenie zachowuje się jak standardowa pętla while w wielu językach.

Ta możliwość opóźnienia ewaluacji parametru do czasu jego użycia może zwiększyć wydajność, jeśli ewaluacja parametru wymaga intensywnych obliczeń lub dłużej działającego bloku kodu, takiego jak pobieranie adresu URL.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Ta możliwość opóźnienia ewaluacji parametru do czasu jego użycia może zwiększyć wydajność, jeśli ewaluacja parametru wymaga intensywnych obliczeń lub dłużej działającego bloku kodu, takiego jak pobieranie adresu URL.
Ta możliwość opóźnienia ewaluacji parametru do czasu jego użycia może zwiększyć wydajność, jeśli ewaluacja parametru wymaga intensywnych obliczeń lub dłużej działającego bloku kodu, takiego jak pobieranie treści spod adresu URL.

Scala udostępnia obiekty pakietu jako wygodny kontener wspóldzielony w całym pakiecie.

Obiekty pakietu mogą zawierać dowolne definicje, nie tylko definicje zmiennych i metod. Na przykład, są często używane do przechowywania aliasów typów dla całego pakietu i niejawnych konwersji. Obiekty pakietu mogą nawet dziedziczyć klasy i cechy (traits) Scali.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Obiekty pakietu mogą zawierać dowolne definicje, nie tylko definicje zmiennych i metod. Na przykład, są często używane do przechowywania aliasów typów dla całego pakietu i niejawnych konwersji. Obiekty pakietu mogą nawet dziedziczyć klasy i cechy (traits) Scali.
Obiekty pakietu mogą zawierać dowolne definicje, nie tylko definicje zmiennych i metod. Na przykład, są często używane do przechowywania aliasów typów i niejawnych konwersji. Obiekty pakietu mogą nawet dziedziczyć klasy i cechy (traits) Scali.

Obiekty pakietu mogą zawierać dowolne definicje, nie tylko definicje zmiennych i metod. Na przykład, są często używane do przechowywania aliasów typów dla całego pakietu i niejawnych konwersji. Obiekty pakietu mogą nawet dziedziczyć klasy i cechy (traits) Scali.

Z założenia, kod źródłowy obiektu pakietu jest zwykle umieszczany w pliku źródłowym o nazwie `package.scala`.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Z założenia, kod źródłowy obiektu pakietu jest zwykle umieszczany w pliku źródłowym o nazwie `package.scala`.
Zgodnie z konwencją, kod źródłowy obiektu pakietu jest zwykle umieszczany w pliku źródłowym o nazwie `package.scala`.

## Import

Deklaracje `import` służą do uzyskiwania dostępu do członków (members, tzn.: klasy, cechy, funkcje itp.) w innych pakietach. Aby uzyskać dostęp do członków tego samego pakietu, nie jest wymagana deklaracja `import`. Deklaracje `import` są selektywne.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Deklaracje `import` służą do uzyskiwania dostępu do członków (members, tzn.: klasy, cechy, funkcje itp.) w innych pakietach. Aby uzyskać dostęp do członków tego samego pakietu, nie jest wymagana deklaracja `import`. Deklaracje `import` są selektywne.
Deklaracje `import` służą do uzyskiwania dostępu do elementów składowych (members, tzn.: klasy, cechy, funkcje itp.) w innych pakietach. Aby uzyskać dostęp do elementów tego samego pakietu, nie jest wymagana deklaracja `import`. Deklaracje `import` są selektywne.
```
import users._ // zaimportuj wszystko z pakietu użytkowników
import users.User // zaimportuj klasę User
import users.{User, UserPreferences} // zaimportuj tylko wybranych członków

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import users.{User, UserPreferences} // zaimportuj tylko wybranych członków
import users.{User, UserPreferences} // zaimportuj tylko wybrane elementy
import users.{UserPreferences => UPrefs} // zaimportuj i zmień nazwę dla wygody
```

Jedną z różnic w Scali od Javy jest to, że `import` można używać wszędzie:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Jedną z różnic w Scali od Javy jest to, że `import` można używać wszędzie:
Jedną z różnic w Scali od Javy jest to, że deklarację `import` można umieścić w dowolnym miejscu:
}
```

W przypadku konfliktu nazw i konieczności zaimportowania czegoś z katalogu głównego projektu, poprzedź nazwę pakietu przedrostkiem `_root_`:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
W przypadku konfliktu nazw i konieczności zaimportowania czegoś z katalogu głównego projektu, poprzedź nazwę pakietu przedrostkiem `_root_`:
W przypadku konfliktu nazw i konieczności podania pełnej ścieżki w hierarchii nazw pakietów, poprzedź nazwę pakietu przedrostkiem `_root_`:
| `x.isInstanceOf[String]` | sprawdzenie typu (w czasie wykonania) |
| `x.asInstanceOf[String]` | rzutowanie typu (w czasie wykonania) |
| `x: String` | oznaczenie typu (w czasie kompilacji) |
<table>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Markdown code was replaced by HTML here. Was that intended?

@unrooted
Copy link
Contributor Author

Yes, it was intended. I did it to make it consistent with the English version of the cheat sheet.

@SethTisue
Copy link
Member

Is this ready for merge?

@unrooted
Copy link
Contributor Author

unrooted commented Sep 1, 2020

Yes, it is. I've added all requested changes, it is ready for merge.

@SethTisue SethTisue merged commit 1b7701e into scala:master Sep 1, 2020
@SethTisue
Copy link
Member

thank you, @unrooted and reviewers, for this substantial contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
5 participants