Skip to main content

Wikipedia - skromne udogodnienie (interwiki)

Czasem wygodnie jest przejść do angielskiej wersji danego artykułu Wikipedii bo ta jest znacznie obszerniejsza. Czasem z angielskiej wersji artykułu, wygodnie jest przejść do polskiej wersji bo tę łatwiej zrozumieć :-). Czasem z jakiegoś blogu, z angielskojęzycznego wpisu nieangielskojęzycznego autora trafiamy na link do artykułu w Wikipedii, który on przez pomyłkę podlinkował do wersji w swoim egzotycznym nierzadko języku (dobrze jeśli z kontekstu wpisu wynika jaki jest angielski tytuł artykułu, bo czasem nie wynika). W każdej z powyższych sytuacji trzeba zjechać na dół strony i w sekcji W innych językach (lub languages w wersji angielskiej) i wyszukać link do artykułu w wersji po polsku lub po angielsku. Czasem tych linków jest nawet kilkadziesiąt - to zajmuje zbyt dużo czasu. Czy można to jakoś ułatwić?

W tym artykule opisałem w skrócie dodatek Greasemonkey. Poniżej opis mojego skryptu dla tego dodatku, który może być odpowiedzią na powyższy problem - ułatwia poruszanie się po różnych wersjach językowych Wikipedii. Generalnie dość krótko - tylko by zobrazować jak proste jest pisanie tych skryptów z użyciem biblioteki jQuery.

Wyrażenie definiujące dla jakich adresów uruchamiać skrypt, wyglądać powinno tak:
http://*.wikipedia.org/wiki/*
Pierwsza gwiazdka zapewnia nam działanie na wszystkich wersjach językowych, druga dla wszystkich stron Wikipedii.
Poniżej treść skryptu. By zadziałał należy na jego początku, we wskazanym miejscu wkleić ściągniętą stąd treść biblioteki jQuery. Zachęcam by zawsze korzystać w tego typu sytuacjach z oryginalnego źródła, tak jest dużo bezpieczniej. Najświeższa wersja mojego skryptu znajduje się w pobieralni.

  1. //
  2. // pamiętaj by wkleić tu treść biblioteki jQuery
  3. //
  4.  
  5.  
  6. var enLink = $("li.interwiki-en").html();
  7. var plLink = $("li.interwiki-pl").html();
  8. var newContent = "";
  9.  
  10. if (enLink != null) {
  11. enLink = enLink.replace(">English<", ">en<")
  12. }
  13. if (plLink != null) {
  14. plLink = plLink.replace(">Polski<", ">pl<")
  15. }
  16.  
  17. if (enLink != null || plLink != null) {
  18. var divStart = "<div style='float: left; font-size: x-small; margin-right: 5px;'>";
  19. var divEnd = "</div>";
  20. if (enLink != null) {
  21. newContent += divStart + enLink + divEnd;
  22. }
  23. if (plLink != null) {
  24. newContent += divStart + plLink + divEnd;
  25. }
  26.  
  27. newContent += $("h1.firstHeading").html();
  28. $("h1.firstHeading").html(newContent);
  29. }

W wierszach 6 i 7, skrypt wyszukuje tzw. linki interwiki, czyli linki prowadzące do odpowiedników aktualnie wyświetlanego artykułu w innych językach. Poznaje je po tym, że mieszczą się w znacznikach (tagach) elementu listy: <li> o klasach odpowiednio interwiki-en i interwiki-pl dla angielskiego i dla polskiego. Następnie zapisuje zawartość całego znacznika w zmiennej.

W wierszach 11 i 14 podmieniana jest nazwa języka na jego skrócona wersję by link zajmował mniej miejsca.

W liniach od 18 do 25, linki interwiki obudowywane są <div>'em by ustawić im odpowiedni wygląd i zapewnić i odpowiednie układanie się w treści strony.

W wierszach 27 i 28 podmieniana jest treść nagłówka zawierającego tytuł strony, tak by zawierał zminiaturyzowane wersje linków interwiki.

Poniżej kilka obrazków prezentujących wynik działania tego skryptu.

Wikipedia polskojęzyczna: Na polskiej wersji Wikipedii pokazuje się jedynie link interwiki do wersji angielskiej.Wikipedia polskojęzyczna: Na polskiej wersji Wikipedii pokazuje się jedynie link interwiki do wersji angielskiej.

Wikipedia angielskojęzyczna: Na angielskie jedynie link interwiki do wersji polskiejWikipedia angielskojęzyczna: Na angielskie jedynie link interwiki do wersji polskiej

Wikipedia japońskojęzyczna: Dla pozostałych wersji językowych, będą pojawiać się linki interwiki do obu wersji językowych. Oczywiście pod warunkiem, że istnieją odpowiedniki oglądanego artykułu w obu językach i że są one podlinkowane w treści artykułu jako wersje tego samego artykułu w innych językach.Wikipedia japońskojęzyczna: Dla pozostałych wersji językowych, będą pojawiać się linki interwiki do obu wersji językowych. Oczywiście pod warunkiem, że istnieją odpowiedniki oglądanego artykułu w obu językach i że są one podlinkowane w treści artykułu jako wersje tego samego artykułu w innych językach.