2015-05-03 1 views
1

Я настраиваю moodle в новом проекте. Я хочу добавить свои ограниченные строки в свой специальный языковой файл, чтобы вызвать его в любом месте. Поэтому мне нужно добавить новый файл в языковые пакеты, например. bahar.phpMoodle: Как добавить новый независимый файл глобального языка?

  • Куда можно поместить этот файл?
  • Как я могу назвать функцию get_translate ?

ответ

1

Для локального плагина папка

/local/yourpluginname/lang/en/local_yourpluginname.php 

Затем файл должен содержать

defined('MOODLE_INTERNAL') || die(); 
$string['pluginname'] = 'Your plugin name'; 
$string['mycustomstring'] = 'A custom string'; 

Затем получить строку, используя

echo get_string('mycustomstring', 'local_yourpluginname'); 

По умолчанию вам будет нужно имеют папку en с английскими строками.

Но тогда вы также можете добавить дополнительные языки, используя код iso. Например, чтобы добавить персидский/фарси код fa. Таким образом создать дополнительную папку:

/local/yourpluginname/lang/fa/local_yourpluginname.php 

Затем в файле добавьте:

defined('MOODLE_INTERNAL') || die(); 
$string['pluginname'] = 'نام افزونه شما'; 
$string['mycustomstring'] = 'رشته های سفارشی'; 

Вам также необходимо установить языковой пакет фарси. Перейдите на сайт admin -> языковые пакеты или просто перейдите прямо к yourmoodlesite.com/admin/tool/langimport/index.php и выберите Farsi.

Если вы хотите перевести существующие строки Moodle, лучше перевести их через AMOS. Тогда все получат пользу от переводов. https://docs.moodle.org/dev/Contributing_a_translation

0

Я объясню, как это сделать для общего PHP-проекта, который также должен работать для Moodle. Сначала создайте отдельную папку с именем lang в вашем проекте. Эта папка может использоваться для размещения ваших языковых пакетов и библиотек обработчиков юникодов. Для обработки unicode сохраните следующий файл в формате Portable-utf8.php в папке lang.

portable-utf8.php

Ваши языковые файлы пакета можно назвать bahar.php, tamil.php и т.д., и сохранен в том же месте. Пример файла должен выглядеть так: с строкой ключевого слова, за которой следует перевод.

<?php 

function get_translate($value){ 

$translations=array(

     "yourstring1"=>"விஷேட அம்சங்கள்", 
     "yourstring2"=>"பின் செல்ல", 
     "yourstring3"=>"தொலைபேசி எண்", 
     "yourstring4"=>"தேர்ந்தெடுக்கப்பட்ட பண்ணை", 
     "yourstring5"=>"கிராமம்", 
      ); 


return utf8_html_encode($translations[$value]); 
}     
?> 

Затем вам нужно изменить строки в файлах, которые вы должны с этим:

<?php echo get_translate("your_string");?> 

Пожалуйста, обратите внимание, что эта строка должна совпадать со строкой в ​​вашем файле пакета языка. Язык по вашему выбору передается со страницы на страницу с помощью метода GET. Поэтому вам нужно будет передать его, когда при соединении. При желании, если вы хотите сделать динамический перевод нажатием кнопки, вы можете просто использовать этот код jQuery.

$("#yourid").on('click', function(e) { 
      var split = location.search.replace('?', '').split('='); 
     if(split[1]=='yourlang1'){ 
      window.location.href="yourdir/yourfile1.php?lang=yourlang1"; 
      } 
     else if (split[1]=='yourlang2'){ 
      window.location.href="yourdir/yourfile2.php?lang=yourlang2"; 
      } 
     else if (split[1]=='yourlang'){ 
      window.location.href=""yourdir/yourfile3.php?lang=yourlang3"; 
      } 
     else{ 
      window.location.href="yourdir/yourfile4.php"; 
      } 
}); 

Наконец-то вызовите свой языковой пакет в верхней части PHP-файла, где должен быть выполнен перевод; как это:

<?php 
$lng=''; 
// setting up language 
require 'yourdir/lang/portable-utf8.php'; 
if(isset($_GET['lang'])){ 
$lng=$_GET['lang']; 
     if($_GET['lang']=="yourlang1"){ 

     require 'yourdir/lang/yourlang1.php'; 
     } 
     elseif ($_GET['lang']=="yourlang2") 
     { 
      require 'yourdir/lang/yourlang2.php'; 
     } 
     else{ 
     require 'yourdir/lang/yourlang3.php'; 
    } 
    }else{ 
     $lng='yourlangdefault'; 
require 'lang/yourlangdefualt.php'; 
    } 

?> 

это может выглядеть длинным на первый, но когда у вас есть сотни или возможно тысячи строк добавить, что это самый простой способ. Все, что вам нужно сделать, это добавить PHP-код в начало страницы, заменить строку, указанную выше, на одну строку кода и добавить строку в файл языкового пакета, если она не существует. Если вам требуется дополнительное объяснение, сообщите мне.