2010-07-28 27 views

Trả lời

78

Xem getLanguage in JFactory:

$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(); 
+0

Thanx vì đã giúp công việc của mình – leonyx

+0

làm thế nào để lấy mã ngôn ngữ? –

+0

@Ivan Slaughter: Tôi đã cập nhật câu trả lời của mình. – MvanGeest

0

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(); 
    
Các vấn đề liên quan