Jak zmienić język social plugin'ów Facebook'a

Język dla gadżetu Facebook'a jest wybierany automatycznie. Jednak czasami może zdarzyć się sytuacja, kiedy chcemy wymusić język w jakim będzie wyświetlany nasz widżet. Można to zrobić zarówno osadzając go iframe albo jako znacznik XFBML.



Nazwy i lista dostępnych języków

Nazwy języków są zapisywane zgodnie z POSIX'owym standardem znanym jako locale. Zakładam jednak, że Facebook nie zna wszystkich języków świata, więc czasami warto sprawdzić, czy są one obsługiwane. Na Facebook'u listę języków znajdziemy w stopce - może to być albo nazwa aktualnego języka (np. Polski), albo np. na stronie głównej znaczek ».


Kody poszczególnych języków odczytamy z kodu źródłowego - najlepiej najechać na link i z podręcznego menu kliknąć 'Zbadaj element' (w przypadku kiedy mamy Firebug'a na Firefox'ie lub pracujemy na Chrome lub Safari). Pierwszym parametrem dla funkcji wykonującej się na zdarzeniu onclick jest kod języka. Możemy też w ten sposób uniknąć szukania kodów języków po różnych innych serwisach czy wikipedii.

XFBML

W przypadku XFBML'a informacja o języku jest zapisana w adresie URL dla skryptu JS. Domyślnie jest on ustawiony na en_US. A oto przykład dla Like Box'a:
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<fb:like-box href="http://www.facebook.com/platform"></fb:like-box>
Jeżeli chcemy wymusić język polski na widżetcie wówczas musimy zmienić z en_US na pl_PL.

IFrame

Osadzając ramkę musimy dodać do adresu URL parametr locale. Taki przypadek jest podany w dokumentacji Facebook'a, ale tylko dla przycisku 'Lubię to'. Okazuje się, że działa także na wszystkie inne Social Pluginy, które mogą być osadzane wykorzystując <iframe>. I znów przykład dla Like Box'a, ale tym razem z językiem ustawiony na francuski (fr_FR):
<iframe src="http://www.facebook.com/plugins/likebox.php?
  href=http%3A%2F%2Fwww.facebook.com%2Fpages%2FJS-CodeBlocks%2F403116485292&amp;
  width=155&amp;
  colorscheme=light&amp;
  connections=2&amp;
  stream=false&amp;
  header=true&amp;
  height=280&amp;
  locale=fr_FR"
  scrolling="no" frameborder="0"
  style="border:none; overflow:hidden; width:155px; height:280px;"
  allowTransparency="true">
</iframe>
Mam nadzieję, że teraz ustawienie języka konkretnego pluginu nie będzie już sprawiało problemów.

Prześlij dalej:

6 komentarzy:

Anonimowy pisze...

dzięki - dzisiaj twój wpis był mi bardzo pomocny podczas tworzenia serwisu z social pluginami :)

Kamil pisze...

O, nie wiedziałem o tym. Ostatnio robiąc stronkę w dwóch językach zleceniodawca zwrócił mi uwagę na język Facebookowego Like'a - w angielskiej wersji językowej strony było polskie 'Lubię to!'. Odpowiedziałem, że nie da się tego zamienić i tekst widżetu zależy od ustawień facebooka i osoby aktualnie zalogowanej. :-) Także dobrze wiedzieć.

Marcin pisze...

Dzięki wielkie, męczyłem się z tym trochę :)

Anonimowy pisze...

ja mam odwrotny problem ... na polskiej stronie mam wersje angielska ...zmieniam na pl_PL i nic wciaż jest "Like" .dodalem nawet link z polskim przedrostkiem pl-pl ...i nic.
oczywiscie strona na facebooku jest po Polsku


src="http://connect.facebook.net/pl_PL/all.js#xfbml=1"

href="http://pl-pl.facebook.com/pages/O%C5%9Bwietlenie-LED-wwwzarowkiledowecom/134331619970360"

width="250" height="308" show_faces="true" stream="false" header="false" colorscheme="light"

Michał Biniek pisze...

Zasadniczo powinno wyświetlać komunikat po polsku - czy na stronie jest może osadzona jeszcze raz biblioteka Facebookowa? Np. do jakiegoś buttona 'lubię to' czy innego elementu. Wówczas tamte ustawienia mogą być brane pod uwagę, a nie te w bibliotece definiowanej tuż przed interesującym nas widżetem

Anonimowy pisze...

Przydatne informacje, dzięki.

Prześlij komentarz