Tôi chỉ muốn tạo ra một mã mà sẽ phát hiện ngôn ngữ hiện tại của websit của tôi trong joomla + phpCách phát hiện ngôn ngữ hiện tại của một Joomla! trang mạng?
Trả lời
$lang = JFactory::getLanguage();
echo 'Current language is: ' . $lang->getName();
Một khi bạn có ngôn ngữ, bạn cũng có thể lấy ngôn ngữ/ngôn ngữ mã (ví dụ: en-US
). Joomla! ngôn ngữ có thể có nhiều ngôn ngữ, do đó bạn sẽ nhận được một mảng.
$lang = JFactory::getLanguage();
foreach($lang->getLocale() as $locale) {
echo 'This language supports the locale: ' . $locale;
}
Nếu vì lý do nào đó, bạn chỉ quan tâm đến ngôn ngữ đầu tiên, bạn có thể chỉ cần lấy phần tử đầu tiên. Bạn có thể sẽ cần một mảng, như thế này:
$lang = JFactory::getLanguage();
$locales = $lang->getLocale();
echo 'This language\'s first locale is: ' . $locales[0];
Nếu bạn chỉ muốn để có được thẻ ngôn ngữ được chọn (ví dụ pt-PT), bạn có thể sử dụng getTag()
$lang = JFactory::getLanguage();
echo 'Current language is: ' . $lang->getTag();
Trong Joomla 3.4 trở lên , câu trả lời của @MvanGeest vẫn hoạt động. Dưới đây là danh sách các chức năng hữu ích mà tồn tại trên đối tượng ngôn ngữ:
Nhận một tay cầm ở ngôn ngữ hiện tại thông qua một đối tượng kiểu
JLanguage
$currentLanguage = JFactory::getLanguage();
Lấy tên ngôn ngữ hiện tại:
$currentLanguageName = $currentLanguage->get('name'); //OR $currentLanguageName = $currentLanguage->getName();
Kiểm tra xem RTL (đây là trường hợp của ngôn ngữ Ả Rập và một số ngôn ngữ khác)
$isRTL = $currentLanguage->get('rtl'); //OR $isRTL = $currentLanguage->isRtl();
Lấy thẻ ngôn ngữ hiện tại:
$currentTag = $currentLanguage->get('tag'); //OR $currentTag = $currentLanguage->getTag();
Nhận một danh sách tất cả các ngôn ngữ biết:
$arrLanguages = $currentLanguage->getKnownLanguages();
mà ngôn ngữ đang nói gì vậy? Ngôn ngữ lập trình hoặc nói hoặc trình duyệt? – Sarfraz