Jak już wspominałem, wygląda na to, że piszę książkę. W komentarzach pod poprzednim, a zarazem pierwszym, postem o niej sporo miejsca poświęciliście na tłumaczenie polskich terminów - i słusznie. Jak wiecie, w polskojęzycznej literaturze i pracach naukowych czasami spotyka się dość dziwne tłumaczenia (kilka przykładów poniżej), których de facto nie używa się w codziennych dyskusjach z kolegami w zespole, znajomymi ze środowiska, czy w dyskusjach widywanych na szeroko pojętej scenie informatycznej. Stąd też zasugerowałem w komentarzach, że będę spisywał co poniektóre terminy i wrzucał na bloga celem przedyskutowania z Wami której wersji tłumaczenia/spolszczenia najlepiej użyć. Niniejszy post jest pierwszym z tej serii - generalnie wszelkie sugestie i uwagi mile widziane :)

Zacznę od obiecanych kilku przykładów dziwnych tłumaczeń (podrzuconych przez kilka osób z kanału #z3s @ freenode irc.pl - thx!):
- Helion przetłumaczył "XSS" na (siedzicie?... serio, usiądźcie): "skrypty krzyżowe" *ba dum tsss*
- Z prac naukowych (tu i niżej): "fork of a project" → "projekt widelcowy"
- "router" → "traser"
- "to exploit" → "wyeksploatować"
Jeśli znacie jakieś inne zabawne tłumaczenia, plz wrzućcie w komentarze ;>

Przechodząc do listy terminów, wraz z tłumaczeniami które mi przyszły do głowy (nie zawsze dobrymi; te ku którym się skłaniam oznaczyłem boldem):

• bytecode - bajtkod, kod bajtowy
• literal - literał
• disassembler - disasembler, dezasembler
• offset - offset
• caller - "wywoływacz" brzmi bardzo źle; "funkcja-rodzic" to tłumaczenie opisowe (i nie do końca oddaje znaczenie); nie mam dobrego pomysłu
• tuple - tuple czy krotka
• breakpoint - breakpoint, punkt przerwania
• breakpoint hit (w sensie "when the breakpoint is hit, do...") - nie mam pojęcia
• false-positive - fałszywy pozytyw...? tłumaczenia ze statystyki to błąd pierwszego typu lub alfa-błąd (wg. wiki), natomiast nie słyszałem, żeby ktoś tak faktycznie mówił w IT
• whitelist - biała lista? chyba nikt tak nie mówi
• handler - brak pomysłów na dobre tłumaczenie
• callback (jako rzeczownik) - brak pomysłów
• compiled variable (rozdział o PHP) - w zasadzie mało istotne, chyba nikt tego po polsku nigdy nie tłumaczył
• wrapper - funkcja opakowująca?
• inline (szczególnie: "funkcja została zinline'owana") - inline, nie mam pojęcia ad czasownik w formie przeszłej dokonanej
• syscall - wywołanie systemowe
• brute force - brute force, metoda siłowa
• proxy - proxy
• operator/function overload - przeciążenie operatora/funkcji
• cheatsheet - tablica informatyczna, ściąga, ściągawka (termin angielski mi najbardziej pasuje)
• handle - uchwyt
• framework - no idea, termin angielski brzmi dobrze

Póki co spisałem tyle. Niektóre są proste i oczywiste (patrz: literał), ale przy innych mam nie lada zagwozdkę (np. breakpoint hit). Tak więc komentarze, sugestie, itp. będą bardzo mile widziane :)
Plan awaryjny brzmi: korzystać z angielskiego terminu lub jego bezpośrednio spolszczonej wersji.

Cheers,

EDIT: ups, #z3s jest ofc na IRCnecie, nie na freenode ;)

Comments:

2014-12-10 01:25:09 = cezar
{
@ tuple
l. poj. w języku polskim to "tupla", przy czym jest to raczej kojarzone z terminem psychologicznym. Krotka polskim tłumaczeniem angielskiego tuple, jednak jeśli chodzi o kojarzenie znaczenia któregokolwiek z tych słów to jest kiepsko. Nawet w angielskiej literaturze spotkałem się z zastąpieniem "tuple" przez "row" i używali tylko i wyłącznie w dalej w lekturze tego drugiego. Dlatego polski wiersz będzie lepszym wyborem imho.

tl;dr
Zamiast "tuple" proponuję wiersz (ang. row).

@disassembler
dezasembler brzmi i "wygląda" bardziej po polsku, szczególnie jeśli chodzi o formę czasownika tego wyrazu.

@breakpoint hit
Jeśli przetłumaczymy breakpoint na "punkt przerwania" to fragment "when the breakpoint is hit, do..." brzmi ładnie jako "kiedy osiągniemy punkt przerwania, wykonaj..."

@inline
Proponuję "wstawka", chociaż jako rzeczownik brzmi o wiele lepiej forma angielska, Natomiast "funkcja została wstawiona" brzmi o niebo lepiej.
}
2014-12-10 05:49:24 = img
{
Sprawdź czy nie ma choćby części na liście terminologicznej Microsoftu: http://www.microsoft.com/Language/en-US/Terminology.aspx
}
2014-12-10 06:56:20 = Spook
{
Użycie angielskiego terminu to nie powinien być plan awaryjny, tylko regularny. Świat programistyczny pisze po angielsku tak czy kwak, więc dobrze jest przyzwyczajać nowych programistów do tego od początku - tym bardziej, że wymienione wyrażenia powszechnie używane są w angielskiej formie również w polskich konwersacjach programistycznych.

Co najwyżej wprowadzaj za każdym razem nowy termin, a potem używaj go konsekwentnie (np. "użyjemy handlera (dalej handler - metoda obsługująca zdarzenie), aby..." lub coś w ten deseń.
}
2014-12-10 07:54:58 = Darek
{
Jeżeli chodzi o oryginalne tłumaczenia to polecam książkę "19 grzechów śmiertelnych. Jak naprawić najczęstsze usterki oprogramowania.". Już sam spis treści powala: 2. Napisy formatujące, 3. Nadmiar całkowitoliczbowy, 4. Wkłucia w SQL, 5. Wkłucia w polecenia, 7. Skrypty międzyserwisowe, 13. Wypływ informacji.
}
2014-12-10 08:25:31 = Gynvael Coldwind
{
@cezar
Dzięki za input! ;)

"tuple" jako "wiersz" pasuje do baz danych, ale jako np. tuple w kontekście Pythona - czyli (a,b,[c, d],42,) - brzmi dziwnie. To powiedziawszy, "krotka" też jest raczej terminem z baz danych, ale słyszałem już ją w użyciu.

"dezasembler" - tutaj mam zagwozdkę - wiem, że to forma "poprawniejsza", ale mam wrażenie, że disasembler się używa częściej

"breakpoint hit" - "kiedy osiągniemy punkt wstrzymania" - not bad, not bad at all

"inline" - "wstawka" / "funkcja została wstawiona" - hmm... tłumaczenie nie brzmi źle, pytanie tylko czy ktoś tak faktycznie mówi (tj. dążę do tego by stosować faktycznie używane terminy); natomiast zdanie "funkcja została wstawiona" z dodatkowym wytłumaczeniem nie brzmi źle ;)

@img
Dzięki za link!

Przejrzałem ichni słownik - moje komentarze poniżej:
• bytecode - kod bajtowy
• literal - literał
• disassembler - dezasembler (chociaż tylko w złożeniu znalazłem)
• offset - (tylko jako verb, "przesunąć")
• caller - funkcja wywołująca (no tak, obviously ;>)
• tuple - spójna kolekcja (uh, uh... nope; zbyt opisowe)
• breakpoint - punkt przerwania
• breakpoint hit (w sensie "when the breakpoint is hit, do...") - (brak)
• false-positive - wynik fałszywie dodatni (nope, nie słyszałem, żeby ktokolwiek tak mówił)
• whitelist - (brak)
• handler - (tylko w złożeniach) "cośtam obsługi czegośtam" (opisowe, too long)
• callback (jako rzeczownik) - funkcja wywołania zwrotnego (nope, nie słyszałem, żeby ktoś faktycznie tak mówił)
• compiled variable (rozdział o PHP) - (brak)
• wrapper - (tylko w złożeniach) "otoka" (nope, nope, nope)
• inline (szczególnie: "funkcja została zinline'owana") - (brak; są złożenia, ale w innych znaczeniach)
• syscall - (brak)
• brute force - (w złożeniu "brute force attack") atak siłowy (to trochę by wskazywało, że "metoda siłowa" ma jakiś sens; natomiast nadal pozostaje pytanie czy ktoś tak faktycznie mówi)
• proxy - proxy (występuje w złożeniach, ale nigdzie nie jest tłumaczone - good)
• operator/function overload - przeładowanie operatora/funkcji (hmmm, nope)
• cheatsheet - (break)
• handle - dojście (nope, nope, nope)
• framework - framework (good)

@Spook
Generalnie zgoda, natomiast jeśli istnieje jakiś zwrot, który faktycznie się używa w dyskusjach w zespole / na scenie (tj. nie jest tylko martwym wpisem w słowniku), to nie ma chyba powodu, żeby tego nie użyć.
Natomiast skłaniam się ku temu co piszesz, tj. "jeśli są wątpliwości --> używam terminu angielskiego".

@Darek
Just wow ;)
}
2014-12-10 09:17:11 = translator
{
bytecode - kod bajtowy,
literal - literał,
disassembler - deasembler,
offset - adres,
caller - funkcja wołająca,
tuple - kolekcja,
breakpoint - pułapka,
breakpoint hit - osiągnięta pułapka,
false-positive - błędna detekcja, błędne rozpoznanie
handler - obsługa, funkcja obsługująca,
callback - funkcja zwrotna,
wrapper - otoczka funkcji,
inline - funkcja wkomponowana (function is inlined into caller function) - funkcja jest wkomponowana w funkcję wołającą),
syscall - funkcja systemowa,
proxy (function, server) - pośrednik, funkcja pośrednicząca,
cheatsheet - ściągawka,
framework - bibilioteka

Zapraszam do hejtowania ;)
}
2014-12-10 09:56:05 = green
{
Bez względu na to, które z tłumaczeń wybierzesz, proponuję, żebyś przy polskich słowach i tak w nawiasach podawał ich angielskie odpowiedniki :)
}
2014-12-10 10:22:11 = Dracoborg
{
@Green
Ja bym raczej proponował używanie angielskich zwrotów, tudzież w przypisie przy pierwszym użyciu podać jakie zwroty mogą być polskimi odpowiednikami - z tym, że należy zaznaczyć, że są stosowane raczej rzadko.

@Gynv
false-positive - zostaw po angielsku, uważam, że to bardziej zrozumiałe niż polski odpowiednik. Podobnie zostawił bym caller lub nazwał "funkcją nadrzędną" - ale mogę się mylić (szybkie skojarzenie).
Whitelist - spotkałem się na uczelni z określeniem białej listy. Ale raczej jako wytłumaczenie koncepcji po czym wykładowca przechodził na bardziej naturalny zwrot angielski.
callback - jako rzeczownik to chyba funkcja wywołania zwrotnego - Wikipedia nie pomaga;D

Zaznaczam, że to moje subiektywne skojarzenia. Jeśli nie jesteś pewien - nie tłumacz na siłę. Należy pamiętać, że w IT i tak się rzuca terminami angielskimi i warto się do nich przyzwyczajać. Przykładowo weźmy przykład proxy. Jak mi napiszesz proxy będę wiedział od razu o co kaman. Jak napiszesz pośrednik, będę musiał się podrapać po głowie:)

@translator
framework - tu się nie zgodzę, że biblioteka. Zawsze mi się wydaje, że jest jakaś różnica między nimi, być może błędnie.
}
2014-12-10 10:42:40 = adam
{
Kiedy setki lat temu tłumaczyłem kilka rzeczy dla Helionu to był tam Mistrz GrammarNazi, Hitler języka i Goebbels propagandy w jednym, który dbał o poprawność polszczyzny. Miodek z Bańko i Bralczykiem mogli czytać sobie do poduszki instrukcję vima i nie dostawać spazmów, za to przeciętny użytkownik robił w głowie "inżynierię wsteczną" tłumaczenia, by dojść do tego, co autor miał na myśli. Są miejsca, gdzie piękno języka musi oddać pola użyteczności publikacji i jednym z nich pewnie będzie Twoja książka. Zatem choć sam próbuję tego podejścia unikać w swoich tekstach, to whitelist, framework, breakpoint, proxy, wrapper, callback i caller powinny śmiało zagościć na łamach publikacji. jeśli są jakiekolwiek wątpliwości co do powszechności jednoznacznego zrozumienia tłumaczenia, lepiej pozostać przy oryginale.
}
2014-12-10 11:04:11 = ged_
{
U nas mowilo sie na wrapper 'opakowanie'.
false positive - fałszywy wynik pozytywny
tuple - krotka (kolekcja funkcjonuje w innym znaczeniu)
function/operator overload - przeciążanie f-cji/operatorów (przeciążona f-cja/op)
syscall - wywolanie systemowe
inline - wklejka? ;)
caller - f-cja wolajaca (lepiej mi to brzmi)
breakpoint - pułapka
bp hit - wyzwolenie pułapki, schwytanie w pułapkie ;)

}
2014-12-10 11:12:47 = Tomasz Tybulewicz
{
cross compiler -> kompilator skrośny
}
2014-12-10 11:20:30 = n0_clues
{
false-positive - fałszywy pozytyw (np. oznaczenia fałszywie pozytywne), spotkałem się z takim określeniem zwłaszcza w środowisku akademickim
breakpoint - punkt przerwania
breakpoint hit - osiągnięcie punktu przerwania
callback - funkcja zwrotna
cheatsheet - myślę, że zależne od kontekstu
}
2014-12-10 11:26:51 = GDR!
{
inline -> inline lub funkcja inline, nie ma co tworzyć sztucznych zwrotów
breakpoint -> breakpoint, nie słyszałem żeby ktoś używał tłumaczenia
breakpoint hit -> kiedy wykonanie programu dotrze do breakpointa
tuple -> krotka, spotykałem się wiele razy w rozmowie (głównie w świecie Pythona)
handler -> handler, nie słyszałem żeby ktoś mówił inaczej, chyba że tłumacząc początkującemu programiście - "to jest handler czyli funkcja która jest wywoływana kiedy wystąpi zdarzenie blablablabla"
callback -> callback tak samo jak handler

Generalnie wielki szacunek za dążenie do używania faktycznie używanych zwrotów a nie martwych helionizmów w stylu "tablica mieszająca" czy to co przytoczyłeś.
}
2014-12-10 11:50:05 = Tomek Z.
{
disassembler - deasembler
offset - adres, przesunięcie, offset
caller - metoda wołająca, funkcja nadrzędna
tuple - krotka
breakpoint hit - trafienie breakpointa
false-positive - błędne potwierdzenie, fałszywie dodatni (wynik, odczyn)
inline - rozwinięcie, funkcja została rozwinięta w miejscu
cheatsheet - ściągawka brzmi dobrze
}
2014-12-10 12:05:49 = piatkosia
{
Jako że czytam sporo polskich książek i artów, spróbuję też napisać to co widziałam.
offset - przesunięcie
caller - zwykle zostawiam - czasami jako "wywołujący"
breakpoint - pułapka (i tego trzeba szukać w spolszczonych debugerach:) ),
breakpoint hit - złapanie (//tutaj nastąpiło złapanie pułapki ustawionej na cośtam...)
false-positive - widziałam w jednym z artykułów jako "przedobrzenie", acz chyba najbezpieczniej będzie zostawić oryginał
handler - zazwyczaj się widzi jako "uchwyt"
callback - funkcja zwrotna (i nie chce być inaczej)
wrapper - widziałam nawet jako "opakowanie" - nie skomentuję
inline - funkcja rozwinięta, wkomponowana, "wprost" (w cudzysłowie)
syscall - funkcja systemowa, wywołanie systemowe
proxy - pośrednik
cheatsheet - ściągawka, niezbędnik (jak chociażby została nazwana ta kartka http://www.uz.zgora.pl/~jgramack/files/C_Linux/vi.pdf )
bytecode - bajtkod, kod bajtowy, kod wewnętrzny, często nawet jako "kod pośredni" w kontekście javy chociażby (choć to bardziej by było intermediate code)
disassembler - disasembler, dezasembler, chociaż i deasembler i inne potworki się zdarzały.
brute force - poza metodą siłową innego spolszczenia nie słyszałam
operator/function overload - przeciążenie/przeładowanie operatora/funkcji
framework - platforma/szablon.
}
2014-12-10 12:21:38 = MDobak
{
W prawdziwym życiu to wygląda tak ;-)
offset - ołset/owset/ofset
caller - kałler/kaler/kołler
handler - handler/hendler
callback - kołlbak/kołlbek/kalbak/kolbak/kolbek/kelbek
wrapper - wrołper/wroper/wraper
inline - inlajn/anlajn
syscall - syskal/syskol/syskel
proxy - proksy/prołksy/praksy
operator - operejtor/operałtor
router - ruter/roter/rełter
}
2014-12-10 12:24:09 = cezar
{
@translator
IMHO wypaczyłeś tłumaczeniami znaczenia "breakpoint" i "framework"

@Gynv
Faktycznie jeśli chodzi o tuple to mówiłem w odniesieniu do baz danych. W komentarzach kilka propozycji padło, które imo są lepsze, bo tupla jest cokolwiek dziwnym stwierdzeniem.

U mnie na uczelni wykładowca używał stwierdzenia metoda siłowa/atak siłowy.

Co do inline, translator zaproponował całkiem niezły zamiennik, jednak myślę, że to jest nieco sztuczne tłumaczenie. Wykładowca u mnie używał angielskiego słowa i faktycznie odnośnie czasownika użył tego co zaproponowałem (funkcja została wklejona).

handler jako uchwyt brzmi bardzo dobrze
}
2014-12-10 12:24:14 = cezar
{
@translator
IMHO wypaczyłeś tłumaczeniami znaczenia "breakpoint" i "framework"

@Gynv
Faktycznie jeśli chodzi o tuple to mówiłem w odniesieniu do baz danych. W komentarzach kilka propozycji padło, które imo są lepsze, bo tupla jest cokolwiek dziwnym stwierdzeniem.

U mnie na uczelni wykładowca używał stwierdzenia metoda siłowa/atak siłowy.

Co do inline, translator zaproponował całkiem niezły zamiennik, jednak myślę, że to jest nieco sztuczne tłumaczenie. Wykładowca u mnie używał angielskiego słowa i faktycznie odnośnie czasownika użył tego co zaproponowałem (funkcja została wklejona).

handler jako uchwyt brzmi bardzo dobrze
}
2014-12-10 13:05:17 = translator
{
@cezar
1. "Pułapka" oznacza "breakpoint'a" odkąd pamiętam.

Niech link do wyroczni w postaci polskiej wersji dokumentu na MSDN osłodzi Twoje zaznajomienie się z terminem ;).

http://msdn.microsoft.com/pl-pl/library/cc676541.aspx

2. "Wklejenie" funkcji jest oczywiście szybsze i łatwiejsze niż "wkomponowanie", wydaje mi się jednak, że nie oddaje w pełni charakteru operacji. Wklejenie może oznaczać skopiowanie czegoś w inne miejsce zachowując formę oryginalną, natomiast funkcje inline poddawane są dalszym optymalizacjom w kontekście funkcji w które zostały one wkomponowane.

3. "Biblioteka" faktycznie klei ze sobą terminy library i framework, ale faktem jest, że i po angielsku te terminy są często mylnie wykorzystywane: np. "framework do obsługi czegoś". Powinna być to raczej "biblioteka do obsługi czegoś", ponieważ framework to pewien system na bazie którego można zbudować coś większego, a nie jedynie włączyć to do własnego projektu. To raczej framework włącza nasz projekt do siebie.

Z kolei "uchwyt" tylko jako "handle" brzmi dobrze, "handler" to już jest coś innego ;).
}
2014-12-10 14:32:15 = kaapa
{
W książce "High Performance JavaScript" Zakasa przetłumaczono "Web workers" jako "Wątki robocze Web" :D
}
2014-12-10 15:11:22 = Mafi
{
@cezar
Zgadzam się handler jako uchwyt brzmi bardzo dobrze :)
}
2014-12-10 17:16:38 = akuku
{
Zgadzam się z @adam i @Dracoborg, a także Twoimi propozycjami. Nie ma sensu spolszczać na siłę, książki takiej nie będzie raczej czytał ktoś kto nie jest obeznany z podstawami języka używanego w branży, a jak będzie to im wczesniej zacznie używać zwrotów powszechnie używanych w środowisku to tym lepiej.
Co do słówka disassembler to mam podobne odczucie jak Ty i zostawiłbym disasembler, pomimo iż może nie jest "najpoprawniejsze" to słyszy się je dużo częściej niż to drugie.
}
2014-12-10 17:54:24 = Zzz
{
A czy na koncu ksiazki bedzie zalacznik ze slowniczkiem PL->ANG? Bo ja czuje, ze inaczej moze byc ciezko ze zrozumieniem nawet "poprawnie wybranych terminow polskich".
Pamietam jak kiedys znajomy biegal po calej firmie i szukal dokumentacji do jakiegos API po angielsku, bo firma sie wysilila i przyslala nam wersje polska i ni ch... nie dalo sie dojsc o co chodzi (ale przynajmniej byla zabawna).
}
2014-12-10 20:11:26 = sebas86
{
W sumie tłumaczenie pojedynczych wyrazów (bez kontekstu) mija się trochę z celem, bo część tłumaczeń będzie brzmiała zbyt ogólnie.

inline - rozwinięcie w miejscu wywołania
cheatsheet - jak najbardziej ściąga/ściągawka
breakpoint - pułapka, dawno nie widziałem tego określenia ale też mi się wydaje, że sporo osób powinna kojarzyć takie tłumaczenie
breakpoint hit/trigger - wyzwolenie/wyzwalacz (prowokator ;)) pułapki
framework - rama robocza, platforma używana jest raczej w kontekście sprzętu lub systemu operacyjnego
offset - przesunięcie,
false-positive/false-negative - nieprawidłowy/fałszywy [wynik] pozytywny/negatywny
trace - ślad
stacktrace - ślad stosu brzmi trochę dziwnie ale wydaje mi się, że można spotkać
wrapper - coś opakowującego - np. klasa opakowująca, otoczka
handler - coś obsługujące coś - np. EventHandler - klasą obsługi zdarzeń, jedno wyrazowo najbliżej pasuje „odbiorca” albo „konsument” ale wydaje się za bardzo z czapy

I nie ma linkera (konsolidatora) na liście? :)
}
2014-12-10 20:27:58 = WhiteLightning
{
Proxy offset i disasembler sa ok:) Dezasembler juz brzmi dziwnie.

Overload i overwrite - IMHO tutaj ktos zrobil od poczatku "kupe" jezykowa, ktora zostaje utrwalona na studiach, przeciez mozna to bylo nazwac doslownie czyli overload - <b>przeładowanie</b> bo to zdecydywanie lepiej oddaje o co chodzi, albo pojsc nieco dalej i uzyc slowa <b>przedefiniowanie</b>

A overriding (spotkalem sie tez z overwrite) - mozna bylo przeniesc jako nadpisanie metody (bo chyba tak najlepiej oddaje o co chodzi).

Krotka - uzywalo sie na studiach, ale poza zajeciami na studiach nie slyszalem by ludzie uzywali. Najczesciej jest wiersz albo rekord.


framework nie jest biblioteka jak ktos pisal. Moze bardziej srodowisko? Bardzo czesto na frameworki testowe mowi sie ze to srodowiska testowe (nie mylic z test harness czyli jarzmem testowym)

false-positive - moze falszywe rozpoznanie, tutaj pytanie jak sie to nazywa w medycynie?

ściągawka jest ok, ew tabelka, tablica czy w jakim to formacie będzie i do czego się odniesie.

A whitelist - moze lista zaufania? :)

Swoja droga nasunal mi sie pomysl - moze sprobujesz wlasne slowa stworzyc bazujac na tym jak sie oryginaly wymawia? Np. sycall - syskal Ciekawe cyz by to przeszlo?
}
2014-12-11 00:50:53 = Michał Lipek
{
Framework - mi zawsze podobało się tłumaczenie, które widziałem chyba w książkach Jana Bieleckiego, czyli zręb. Było tak absurdalnie oderwane od rzeczywistego świata IT i tak całkowicie polskie, że bardzo przypadło mi do gustu :)

Handler to ogarniacz oczywiście. ;)

A tak już całkiem na serio, chyba lepiej jest używać zwrotów angielskich, jeżeli nie ma utartych polskich odpowiedników. Może zrobić do tego dodatkowy słowniczek?
}
2014-12-11 11:39:07 = Dracoborg
{
Jak tak czytam komentarze i przywołuje własne doświadczenia z publikacjami dotyczącymi IT to trudno nie zdodzić się z dwoma rzeczami. Pierwsze dotyczy tego co napisał @adam i o czym ja już prawdopodobnie wspominałem pod innym wątkiem. Prawdą jest, że publikacje heliona często tracą na tym, że tłumaczą na siłę angielskie zwroty. Wielu znajomy właśnie z tego powodu nie sięga po książki techniczne tego wydawnictwa. Druga sprawa to oczywiście fakt, że w IT często angielskie zwroty są chętniej wykorzystywane. Wiąże się to zapewne z tym, że większość treści i tak powstaje w języku angielskim. Ja osobiście najpierw szukam angielskich publikacji, a dopiero jak mam problemy ze zrozumieniem jakiegoś zagadnienia, próbuje ewentualnie poszukać czegoś po polsku - a potem i tak wracam do anglojęzycznych treści, bo są dla mnie bardziej wiarygodne. Dlatego najlepiej jak nie wiesz jak coś przetłumaczyć, zostań przy angielskim zwrocie. Tudzież oznacz gwiazdką przy pierwszym użyciu i w przypisie podaj polskie, rzadziej używane określenia:)
}
2014-12-11 11:49:10 = translator
{
W takim razie goodluckuje przy readowaniu booków traktujących o programming activities lub też code exploitation.

To, że większość aktualnych wyjadaczy sięga najpierw po publikacje zagraniczne, to nie znaczy, że przyszłe pokolenia też muszą to robić. No, chyba, że ktoś kieruje się zasadą: "ja miałem trudno, to inni też będą mieć trudno" ;).
}
2014-12-11 11:52:23 = Gynvael Coldwind
{
Woah, niezły odzew ;) Postaram się poodpisywać na komentarze wieczorem.
}
2014-12-11 14:11:48 = Dracoborg
{
@translator
Ja wcale nie uważam, że miałem trudno, a wręcz łatwiej. Naprawdę dużo więcej rzetelnych materiałów powstaje w języku angielskim. Ponadto pójdź do którejkolwiek firmy IT z CV, gdzie masz wpisane język obcy angielski - z pewnością usłyszysz, że to wcale nie jest język obcy. Po co wprowadzać terminologie polskie, których nikt nie używa. Jeśli młody programista nauczy się tych terminów, będzie mu bardzo trudno odnaleźć się w środowisku, gdzie się ich nie używa. Nie lepiej ułatwić mu sprawę? Jak mówiłem książki z Helionu są uważane za mało rzetelne właśnie za takie "bezmyślne" tłumaczenie wszystkich terminów angielskich na polskie odpowiedniki i wychodzą z tego niezłe kwiatki, o czym niejedna osoba już wspomniała. Język techniczny to język angielski, nie tylko w IT - trzeba się z tym pogodzić:)
}
2014-12-11 22:08:30 = WhiteLightning
{
Tutaj jeszcze fajny przykład jak można wybrnąć z terminologii:

http://niebezpiecznik.pl/post/lockpicking-recenzja-kursu-otwierania-zamkow/
}
2014-12-12 18:33:33 = Westen
{
Osobiście wolę angielskie tłumaczenia. Ale jak już chciałbyś by były to polskie zwroty to mam jedną prośbę. Gdy użyjesz wyrażenia "Overload function" nie tłumacz jako przeciążenie funkcji(albo co gorsza przeciążenie metody). "Przeciążyć" to może się człowiek, system, maszyna, ale nie funkcja. Przeciążenie kojarzy się , że coś właśnie się zepsuło. Zamiast tego polecam "przeładowanie funkcji". Brzmi lepiej i nawet ma logiczny sens.
}
2014-12-12 19:02:16 = Gynvael Coldwind
{
OK, tylko 24h opóźnienia, nie jest źle ;)

Po pierwsze - bardzo duże "dzięki!" dla wszystkich komentujących za propozycje i udział w dyskusji. Nawet jeśli nie wybrałem danej propozycji, to i tak bardzo cenne jest dla mnie rzucić na nią okiem (w końcu zawsze lepiej jest podjąć tzw. "poinformowaną decyzję").

Najpierw terminy:

*** bytecode
Z nowych propozycji padło "kod wewnętrzny" oraz "kod pośredni". Z tym pierwszym się chyba nigdy nie spotkałem, a ten drugi nie do końca wyraża to samo (tzn. bytecode wcale nie musi być kodem pośrednim - ale tu by można długie dyskusje przy herbacie/piwie prowadzić ;>).
Jeszcze się zastanowię, ale prawdopodobnie zostanę przy dwóch oryginalnych propozycjach - "bajtkod" i "kod bajtowy" - obie mi się nie podobają w tym samym stopniu, ale chyba są w na tyle OK, by ich używać ;)

*** literal
Tu sprawa prosta - literał.

*** disassembler
Propozycje są trzy: disasembler, dezasembler i deasembler. Przerzuciłem te terminy jeszcze przez kilka osób zajmujących się RE zawodowo, trochę powróżyłem z fusów i ostatecznie zostane przy disasembler.

*** offset
Oprócz offset padły jeszcze: adres i przesunięcie. Adres ma trochę inne znaczenie i nie zawsze jest wymienny ze słowem "offsetem" (patrz http://pl.wikipedia.org/wiki/Offset_(informatyka) - fd: spora część tego wpisu na wiki jest mojego autorstwa). Natomiast przesunięcie brzmi trochę dziwnie w niektórych kontekstach (np. "pole iAbc znajduje się na przesunięciu 4"), ale w innych można je użyć.
Decyzja: offset

*** caller
Pojawiły się "funkcja wywołująca", "funkcja wołająca", "funkcja nadrzędna", "wywołujący". Hmmm... "funkcja nadrzędna" w pewnych kontekstach jest niejednoznaczna (np. jeśli język dopuszcza funkcje zagnieżdżone, jak np. Python); przy doprecyzowaniu kontekstu (tj. "chodzi o call-stack") brzmi OK.
"Funkcja wołająca" mi osobiście nie pasuje. Call w programowaniu raczej jest "wywołaniem" niż "wołaniem".
"Wywołujący" - w niektórych kontekstach jest OK, chociaż niekoniecznie jako bezpośredni odpowiednik "callera".
Ostatecznie zostaje "funkcja wywołująca", chociaż coś mi mówi, że będę ją przeplatał z "funkcją nadrzędną" w niektórych przypadkach. Ew. jeszcze rozważę używanie angielskiego "caller".
(nie ma to jak bycie zdecydowanym ;p)

*** tuple
OK, tutaj mój błąd - nie doprecyzowałem kontekstu. Chodziło mi o "tuple" w rozumieniu Pythonowego (1,2,3,), a nie w rozumieniu wiersza z bazy danych - w tym ostatnim przypadku planuje pisać po prostu "wiersz".
Jeśli chodzi o "kolekcje", która się pojawiła tu i tam, to kolekcja jest bardzo ogólnym terminem i nie odnosi się stricte do tuple.
Padło również "tupla", która jest bezpośrednim spolszczeniem "tuple".
Generalnie chyba zostanie krotka, lub po prostu tuple pisane italiciem.

*** breakpoint
Częstym pomysłem była "pułapka" - i faktycznie kojarzę, że kiedyś tak się mówiło. Ale hmm, to chyba wyszło z mody (a przynajmniej ja dawno tego nie słyszałem).
Coś mi mówi, że zostanie breakpoint z uwagi na moje osobiste preferencje.
Co do breakpoint hit, to coś czuje, że skończy się na opisowym "kiedy nastąpi przerwanie działania na pierwszym breakpoincie", etc.

*** false-positive
Huhu, tutaj jest sporo rzeczy do wyboru. Raczej nie planuje iść w kierunku "błędu pierwszego stopnia" czy "fałszywe rozpoznanie". Chyba zostawie "false-positive", ew. bezpośrednie tłumaczenie (fałszywy pozytyw), o ile nie znajdę jakiejś informacji, że jest to bardzo nieprawidłowe.

*** whitelist
"Lista zaufania" może nie, chociaż "zaufana lista" by jakoś już brzmiała. Natomiast tak się chyba nie mówi.
Zostanę raczej przy angielskojęzyczny terminach "whitelist" i "blacklist".

*** handler
Kilka razy pojawiło się "handler"=="uchwyt" - spieszę więc ze sprostowaniem, że uchwyt to handle (bez "r" na końcu). Handler to funkcja/klasa/metoda/moduł/cokolwiek co coś obsługuje (zazwyczaj jakiś event).
Padły propozycje "funkcja/metoda/klasa obsługująca", natomiast raczej nie pójdę w tą stronę, ponieważ angielskojęzyczny termin "handler" nie wymaga precyzowania czy chodzi o funkcję, czy może o klasę, etc, a czasami jest to wygodne.
Zostanę więc przy angielskojęzycznym "handler.

*** callback
Padło "funkcja zwrotna" i "funkcja wywołania zwrotnego". Hmm, ale tak jak pisaliście - raczej się tak nie mówi. Zostanie więc callback.

*** wrapper
Padły propozycje: "otoka", "otoczka funkcji", "opakowanie", "funkcja opakowująca". Zostanę jednak przy angielskim "wrapper" ;)

*** inline
Propozycje: "wstawka" ("funkcja została wstawiona"), funkcja wkomponowana ("funkcja została wkomponowana"), "wklejka", "funkcja rozwinięta", "funkcja "wprost"", "rozwinięcie" ("funkcja została rozwinięta"), "funkcja rozwinięta", "rozwinięcie w miejscu wywołania".
Bardzo dobra propozycje (szczególnie funkcja wkomponowana brzmi fajnie). Natomiast głównym kryterium jest "czy tak się mówi", iii... chyba nigdy tego nie słyszałem. Natomiast słyszałem, że mówi się "funkcja X będzie rozwinięta" (z drugiej strony słyszałem też "pętla zostanie rozwinięta" (unrolled), więc jest pewna niejednoznaczność, chociaż łatwa do rozwiązania mając kontekst) - jest to trochę opisowe, ale w czasem się nada. Natomiast jako rzeczownik zostawię po prostu "inline".

*** syscall
"Funkcja systemowa", "wywołanie systemowe", ew po prostu "syscall". "Funkcja systemowa" jest trochę niejednoznaczna - równie dobrze może dotyczyć API systemowego jak i faktycznie syscalli. Zostanę prawdopodobnie przy "syscall" czasami wspierając się "wywołaniem systemowym".

*** brute force
Zostaje brute force, chociaż czasami będę wspomagał się "metodą siłową".

*** proxy
Prosta sprawa - zostaje proxy.

*** *.* overload
Chyba zostanę przy "przeciążeniu", głównie dlatego, że faktycznie się tego używa.

*** cheatsheet
Zostaje "ściąga" i/lub "ściągawka" z "cheatsheet" w nawiasie przy pierwszym użyciu lub jeśli to będzie bardzo istotne.

*** handle
Rzucę monetą, i albo będę zawsze pisał "handle", albo "uchwyt", albo będę mieszać obie wersje (tak, wiem, mam dziwne monety).

*** framework
Zdecydowałem się na "zręb".
...
...
...
Hehe OK OK, spokojnie. Będzie "framework" ;)
Jeśli chodzi o inne propozycje (szablon, biblioteka, platforma), to mają one inne znaczenia (translator fajnie to opisał na przykładzie biblioteka vs framework).


A teraz odpowiedzi na kilka komentarzy:

@green
Jak najbardziej będą wyjaśnienia, inne używane terminy lub tłumaczenia, ew. angielskie odpowiedniki (w przypadku polskich terminów) w nawiasie przy pierwszym wystąpieniu. Rozważam poświęcenie strony lub dwóch na słowniczek z wyjaśnieniem czemu wybrałem konkretne tłumaczenie a nie inne (tj. taki jak był w polskich tłumaczeniach Harrego Pottera).

@adam
Hehe zgoda ;)

@ged_
Hmmm, kurcze, nadal mówisz "postawić pułapkę"? Wiem, że kiedyś się tak mówiło, ale serio nie kojarzę, żeby to przetrwało.

@Tomasz Tybulewicz
Hah, świetne ;)

@GDR!
"Helionizmy", a to Ci dobre ;)
Ale mam wrażenie, że Helion nie może pełnych zasług za to sobie przypisać.

@MDobak
Uh huh ;)
Cóż, in the end lepszy źle wymówiony angielski niż brak takowego ;)

@kaapa
Huh. Mogli poprzestać na "wątkach roboczych" i by całkiem OK tłumaczenie z tego wyszło ;)

@Zzz
Rozważam ten pomysł (patrz moja odpowiedź na komentarz greena) ;)

@sebas86
Zgoda, natomiast troszkę celowo nie podałem kontekstu w większości przypadków - tj. starałem się znaleźć nie-opisowe tłumaczenia (mając kontekst bardzo łatwo pokusić się o tłumaczenie opisowe zamiast bezpośrednie). Oczywiście "tuple" aka "krotka" okazała się dobrym przykładem tego, że kontekst mogłem jednak podać ;)

Ad linker: linker będzie linker. Konsolidator mnie nigdy nie przekonywał i jeśli już tak pisałem, to tylko żeby udawać, że mi zależy na polskich terminach ;p

@WhiteLightning
Ad "overload" - zgoda. Przy czym szczerze, to i angielski termin "overload" jest niezbyt szczęśliwy. Szczerze, to mi osobiście by bardziej "specjalizacja" tam pasowała (jak w przypadku template'ów, chociaż też jakiś cichy głos w mojej głowie mówi, że to nie do końca to samo).

Co do własnych słów - he he he - kusi żeby sprawdzić, czy udało by mi się zanieczyścić kogoś język na resztę jego życia (<mroczny śmiech; grom w tle>). Ale nie, brzmi to nieetycznie ;) Jednak wolałbym aby początkujący czytelnicy poznali faktycznie użyteczne i używane terminy.

@Michał Lipek
"Ogarniasz" haha, dobre ;)

@Dracoborg
Zasada, którą się staram kierować, brzmi: "używać terminów których się używa", tj. nie tłumaczyć na siłę, ale i nie używać angielskich słów jeśli ma się równie dobry polski odpowiednik (np. "wskaźnik" zamiast "pointer").
Oczywiście powyższe i tak będzie "zbiasowane" przez moje własne preferencje ;)

@translator
Ugh, brzmi jak moja wypowiedź zlinkowana w poprzednim poście o książce (http://niebezpiecznik.pl/post/nowe-zabezpieczenie-supervisor-mode-execution-protection/#comment-36903) ;p


Oraz podziękowania za propozycje tłumaczeń dla (shoutout!):
cezar, img, translator, Dracoborg, ged_, n0 clues, GDR!, Tomek Z., piątkosia, Mafi, akuku, sebas86, WhiteLightning oraz Michała Lipka.


Pisząc kolejne fragmenty będę kontynuował spisywanie tłumaczeń, więc prędzej czy później kolejna część trafi na bloga.
}
2014-12-12 19:05:31 = Gynvael Coldwind
{
@Westen
Cholercia, z tym "overload" czuje, że będę miał zagwozdkę. Coś czuje, że po poświęcę z akapit w książce na wytłumaczenie się z terminu, który ostatecznie wybiorę. Problem z "przeciążeniem" jest taki, że chyba jest najpopularniejszym tłumaczeniem i faktycznie jest używane (pomimo tego, że jest niepoprawne).
Pomyślę co mogę z tym zrobić.
}
2014-12-12 21:20:51 = sebas86
{
Mimo porzucenia wielu terminów, które IMO dadzą się sensownie przetłumaczyć i tak podziwiam Cię za podjęcie rękawicy. :)

Kiedyś wyszperałem książeczkę z terminami informatycznymi w jakimś antykwariacie wydaną nakładem Polskiego Komitety Normalizacyjnego i sporo z przytoczonych tutaj określeń próżno tam szukać. Co prawda wydanie jest cholernie stare (1999) ale sporo z tych określeń ma jeszcze dłuższą brodę…

Co do „dziwności” brzmień pozwolę sobie powiedzieć tylko tyle, że to kwestia nie używanie i nie obcowania z tymi określeniami. Ja tam daje ukłon w stronę Helionu za chociażby próby tłumaczenia terminów, które siłą rzeczy będą brzmieć niezrozumiale i dziwnie bo nie miały nawet szans zaistnieć, a co dopiero porządnie się utrzeć w naszym środowisku. :)
}
2014-12-17 09:21:20 = Ciapol
{
Moje propozycje tłumacze (znaczna część pokrywa się z Twoimi):

• bytecode - bajtkod, kod bajtowy
• literal - literał
• disassembler - disasembler
• offset - offset
• caller - funkcja wywołująca
• tuple - no idea
• breakpoint - breakpoint
• breakpoint hit - wpaść w breakpoint :)
• false-positive - false-positive
• whitelist - whitelist
• handler - procedura/funkcja obsługi, trochę sztucznie do brzmi
• callback (jako rzeczownik) - callback, wywołanie zwrotne?
• compiled variable (rozdział o PHP) - zostaw nietłumaczone
• wrapper - funkcja opakowująca, albo zostaw oryginał, wszyscy mówią/piszą wrapper
• inline - zostaw inline
• syscall - wywołanie systemowe
• brute force - brute force, metoda siłowa
• proxy - proxy, serwer pośredniczący
• operator/function overload - przeciążenie operatora/funkcji
• cheatsheet - tablica informatyczna, ściąga
• handle - uchwyt
• framework - framework

}
2014-12-20 17:57:57 = MDW
{
Ja dodam od siebie tylko:

pipeline - linorurka
}
2014-12-21 23:55:09 = Majster szef
{
A ja mysle, ze zbyt bardzo sie przejmujesz tlumaczeniem na jezyk polski :) Ci ci beda zainteresowani twoja ksiazka i tak znaja podstawowe angielskie zwroty uzywane w informatyce. Swoja droga to uwazam, ze moglbys wydac ksiazke w calosci napisana po angielsku. Wiekszy rynek i wieksze mozliwosci zarobkowe.
}
2015-01-02 08:38:33 = brii
{
Białe listy wiele razy spotykałem i nikt nie miał wątpliwości o co chodzi. Pośrednik też jest zrozumiały i dobrze pasuje.
}
2015-02-03 14:42:57 = Razo
{
Framework - szkielet (coś na czym budujemy, bazujemy)
}
2016-06-30 06:51:10 = bezimienny
{
• bytecode – kod bajtowy („bajtkod” raczej gwarowe, brzydka kalka z angielskiego)
• disassembler – zdecydowanie dezasembler (opcjonalnie deasembler)
• offset – przesunięcie; adres jest zbyt ogólny (por. segment+offset, czyli segment i przesunięcie [względem niego]); ktoś wspomina, że w tablicach jest sztuczne: otóż pozycja i przesunięcie pokrywają się, gdy rozpatrujemy je względem początku tablicy (pierwszego elementu); przesunięcie jest względne, pozycja bezwzględna
• caller – wywołujący (z opcjonalnym uściśleniem rodzaju, np. funkcji); callee – wywoływany (jak obok)
• tuple – zdecydowanie i krótko: krotka
• breakpoint – raczej punkt przerwania; dużo trudniejsze są „line breakpoint” lub „method breakpoint”! (wierszowy[!] punkt przerwania? a drugie? może „metodowy”? bez sensu… zatem może punkt przerwania wiersza/metody? może i lepsze, ale nadal… no to może lepiej na zasadzie „breakpoint/breakline/breakmethod”?: „punkt/wiersz/metoda przerwania”? no nadal nie do końca…!)
• breakpoint hit – hit w pozostałych znaczeniach oznacza trafienie (np. w wyszukiwaniu); ktoś trzeźwo zaproponował „osiągnięcie” — oboma rękami za
• false-positive – „fałszywy pozytyw”!?! raczej ze statystyki to błąd pierwszego typu lub alfa-błąd (wg. wiki), natomiast nie słyszałem, żeby ktoś tak faktycznie mówił w IT
• whitelist – otóż właśnie biała lista; to że nikt tak nie mówi (a szkoda), pokazał już ktoś wcześniej (cytując sposób wysławiania); na razie wszyscy tłumacz ątak
• handler – tu zdecydowanie jest trudno; „handle” to obsługa, można próbować „posługacza” (jest taki wyraz), ale nie jest on dość popularny, choć krótki — może takie tłumaczenie spowodowałoby jego odkurzenie? ogólnie „obsługa” nie wydaje się zupełnie złym pomysłem (przy czym „to support” to raczej „umożliwiać”, a nie „obsługiwać”, więc „support”… ech… ech!)
• callback (jako rzeczownik) – zwrotka: krótko i przyjemnie
• compiled variable (rozdział o PHP) – w zasadzie czemu nie zmienna kompilowana? co w tym złego mało istotne, chyba nikt tego po polsku nigdy nie tłumaczył
• wrapper – funkcja opakowująca; śmielej! :) (choć nie musi to być funkcja – może opakowanie?)
• inline (szczególnie: "funkcja została zinline'owana") – pojawiło się kilka ciekawych propozycji; wstawianie to raczej odpowiednik „insert”; sam używam „wplecenie”, „wpleciony”
• syscall – wywołanie systemowe (no chyba jedyne, choć długie)
• brute force – metoda siłowa (anglicyzm niepotrzebny!)
• proxy – pełnomocnik; lepsze niż pośrednik, bo działa w dwóch kontekstach: jako serwer i jako wzorzec projektowy
• operator/function overload – przeciążenie operatora/funkcji — tak, zdecydowanie nie przeładowanie!
• framework – ktoś wspominał „zręb”;wg mnie całkiem dobrze: proponuję jednak „zrąb”

ogólnie większość nazw angielskich pasuje bardziej, bo jesteśmy przyzwyczajeni i rozleniwieni; trochę to przykre, że programiści nie szanują swojego języka…
}

Add a comment:

Nick:
URL (optional):
Math captcha: 3 ∗ 8 + 2 =