Używam codeigniter, a język jest określany przez sesję.Jak udostępnić stronę facebookowi/twitterowi w innym języku?
I wrrite meta danych, facebook/twitter chwycić dane i dzielić strony:
echo "<meta name='twitter:card' content='summary' />";
echo "<meta property='og:title' content='" . $video->{set_lang("title")} . "' />";
echo "<meta property='og:description' content='" . $video->{set_lang("description")} . "' />";
echo "<meta property='og:image' content='" . (isset($video->image_url) ? site_url("thumbnail/" . $video->image_url) : $video->thumbnail) . "' />";
Funkcja set_lang jest sprawdzenie sesji tak: praca funkcja
function set_lang($var) {
$CI = & get_instance();
$lang = $CI->session->userdata('site_lang');
if ($lang == "english") {
return $var;
} else if ($lang == "zh_tw") {
return $var . "_tw";
} else if ($lang == "zh_cn") {
return $var . "_cn";
}
}
Udział dobrze w przeglądarce, jednak chciałbym udostępnić link także za pomocą aplikacji mobilnej. Ponieważ aplikacja nie zawiera sesji, nie można sprawdzić języka. Ponadto, jeśli wstawię parametr do linku, np.
http://example.com/video/view/1/english
Wtedy mój związek akcji będzie również rozwiązać język.
Wszelkie pomysły? Wielkie dzięki za pomoc.
Działa to wyłącznie w przypadku artykułów Open Graph. W przypadku zwykłych postów, które zawierają link, nie działa - post będzie zawsze wyświetlał szczegóły łącza w języku, który uzyskał Facebook, żądając szczegółów łącza, alternatywne ustawienia lokalne nie są brane pod uwagę w tym kontekście. (Zostało to potwierdzone przez inżynierów Facebooka.) – CBroe
Czy próbowałeś wstępnie zeskrobać wiele lokalizacji na połączonej stronie? Czy to miało znaczenie? –
Tak, nie ma znaczenia. Jak już powiedziałem, w przypadku normalnych postów nie jest on teraz wdrażany, co potwierdza pracownik FB. – CBroe