THEOUS 18 Report post Posted June 22, 2015 (edited) Доброго времени суток, дорогие пользователи форума. У многих возникали вопросы по добавлению языков в сборку, в просто народие называемых как "ланги". И так, начнём с того, как они работают. У нас есть файл site.lng Который лежит по пути lang/Russian/site.lng Для того, что бы подключить новый языковой пакет, нам нужно создать папку с файлом site.lng сделать всё нужно примерно так: вашсайт/lang/имяпапки(к примеру:English)/site.lng Далее идём в админ панель =>> настройки системы =>> Список используемых языков (название папок) Там вы увидите такой текст: Русский | Russian Это подключение вашего языкового пакета. Пишем: Английский | English Далее идём по пути: templates/шаблон/js/ И создаём папку English с файлом внутри.Можно просто создать копию папки Russian и переименовать. Всё, наш "lang" подключен. Теперь нам нужно все слова из файлов таких как tpl js php У меня есть данный код(я взял его из файла profile.tpl): [owner]<a href="/my_stats" onClick="Page.Go(this.href); return false;"><img class="icon stat_ic" src="{theme}/images/spacer.gif" alt="" /><div>Статистика страницы</div></a> <a href="/" onClick="Profile.LoadPhoto(); return false;"><img class="icon editphoto_ic" src="{theme}/images/spacer.gif" alt="" /><div>Изменить фотографию</div></a> <a href="/" onClick="Profile.DelPhoto(); return false;" id="del_pho_but" {display-ava}><img class="icon del_photo_ic" src="{theme}/images/spacer.gif" alt="" /><div>Удалить фотографию</div></a>[/owner] Теперь нам нужно слова занести в файл site.lng К тому же, не только в тот, который находить в папке Russian , а и тот, который в папке English Вот так вы должны заполнить документ.К тому же, они должны быть под одинаковым номером, что бы правильно выводились в шаблоне. 'lang_001' => 'Статистика страницы', 'lang_002' => 'Изменить фотографию', 'lang_003' => 'Удалить фотографию', Вносим слова, данным способом в оба файла site.lng, и заменяем их в profile.tpl данным образом: [owner]<a href="/my_stats" onClick="Page.Go(this.href); return false;"><img class="icon stat_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_001}</div></a> <a href="/" onClick="Profile.LoadPhoto(); return false;"><img class="icon editphoto_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_002}</div></a> <a href="/" onClick="Profile.DelPhoto(); return false;" id="del_pho_but" {display-ava}><img class="icon del_photo_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_003}</div></a>[/owner] Точнее вот таким текстом: {translate=lang_001} Где lang_001 это id вашего слова в файле site.lng Так же изменяем и в js файлах. Разобрались с js и tpl , теперь на очереди php файлы. Здесь всё немного по иному. Используется след. код: $lang['lang_001'] Возьмём этот кусочек с файла functions.php if($type == 'rec'){ if($numres == 1){ $gram_num_record = 'запись'; } elseif($numres < 5){ $gram_num_record = 'записи'; } elseif($numres < 21){ $gram_num_record = 'записей'; } elseif($numres == 21){ $gram_num_record = 'запись'; } } У вас должно выйти вот так: Сразу говорю, что данные скобки 'запись'; вам нужно убирать, и писать просто $lang['lang_001']; if($type == 'rec'){ if($numres == 1){ $gram_num_record = $lang['lang_001']; } elseif($numres < 5){ $gram_num_record = $lang['lang_002']; } elseif($numres < 21){ $gram_num_record = $lang['lang_003']; } elseif($numres == 21){ $gram_num_record = $lang['lang_004']; } } Думаю я вам помог.Будут вопросы задавайте в теме, с радостью отвечу.Удачи! Edited July 30, 2015 by Shaman 3 Share this post Link to post Share on other sites
igor2720 5 Report post Posted June 22, 2015 Доброго времени суток, дорогие пользователи форума. У многих возникали вопросы по добавлению языков в сборку, в просто народие называемых как "ланги". И так, начнём с того, как они работают. У нас есть файл site.lng Который лежит по пути lang/Russian/site.lng Для того, что бы подключить новый языковой пакет, нам нужно создать папку с файлом site.lng сделать всё нужно примерно так: вашсайт/lang/имяпапки(к примеру:English)/site.lng Далее идём в админ панель =>> настройки системы =>> Список используемых языков (название папок) Там вы увидите такой текст: Русский | Russian Это подключение вашего языкового пакета. Пишем: Английский | English Далее идём по пути: templates/шаблон/js/ И создаём папку English с файлом внутри.Можно просто создать копию папки Russian и переименовать. Всё, наш "lang" подключен. Теперь нам нужно все слова из файлов таких как tpl js php У меня есть данный код(я взял его из файла profile.tpl): [owner]<a href="/my_stats" onClick="Page.Go(this.href); return false;"><img class="icon stat_ic" src="{theme}/images/spacer.gif" alt="" /><div>Статистика страницы</div></a> <a href="/" onClick="Profile.LoadPhoto(); return false;"><img class="icon editphoto_ic" src="{theme}/images/spacer.gif" alt="" /><div>Изменить фотографию</div></a> <a href="/" onClick="Profile.DelPhoto(); return false;" id="del_pho_but" {display-ava}><img class="icon del_photo_ic" src="{theme}/images/spacer.gif" alt="" /><div>Удалить фотографию</div></a>[/owner] Теперь нам нужно слова занести в файл site.lng К тому же, не только в тот, который находить в папке Russian , а и тот, который в папке English Вот так вы должны заполнить документ.К тому же, они должны быть под одинаковым номером, что бы правильно выводились в шаблоне. 'lang_001' => 'Статистика страницы', 'lang_002' => 'Изменить фотографию', 'lang_003' => 'Удалить фотографию', Вносим слова, данным способом в оба файла site.lng, и заменяем их в profile.tpl данным образом: [owner]<a href="/my_stats" onClick="Page.Go(this.href); return false;"><img class="icon stat_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_001}</div></a> <a href="/" onClick="Profile.LoadPhoto(); return false;"><img class="icon editphoto_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_002}</div></a> <a href="/" onClick="Profile.DelPhoto(); return false;" id="del_pho_but" {display-ava}><img class="icon del_photo_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_003}</div></a>[/owner] Точнее вот таким текстом: {translate=lang_001} Где lang_001 это id вашего слова в файле site.lng Так же изменяем и в js файлах. Разобрались с js и tpl , теперь на очереди php файлы. Здесь всё немного по иному. Используется след. код: $lang['lang_001'] Возьмём этот кусочек с файла functions.php if($type == 'rec'){ if($numres == 1){ $gram_num_record = 'запись'; } elseif($numres < 5){ $gram_num_record = 'записи'; } elseif($numres < 21){ $gram_num_record = 'записей'; } elseif($numres == 21){ $gram_num_record = 'запись'; } } У вас должно выйти вот так: Сразу говорю, что данные скобки 'запись'; вам нужно убирать, и писать просто $lang['lang_001']; if($type == 'rec'){ if($numres == 1){ $gram_num_record = $lang['lang_001']; } elseif($numres < 5){ $gram_num_record = $lang['lang_002']; } elseif($numres < 21){ $gram_num_record = $lang['lang_003']; } elseif($numres == 21){ $gram_num_record = $lang['lang_004']; } } Думаю я вам помог.Будут вопросы задавайте в теме, с радостью отвечу.Удачи! А как сделать переключение между языками для пользователя? Share this post Link to post Share on other sites
THEOUS 18 Report post Posted June 22, 2015 Доброго времени суток, дорогие пользователи форума. У многих возникали вопросы по добавлению языков в сборку, в просто народие называемых как "ланги". И так, начнём с того, как они работают. У нас есть файл site.lng Который лежит по пути lang/Russian/site.lng Для того, что бы подключить новый языковой пакет, нам нужно создать папку с файлом site.lng сделать всё нужно примерно так: вашсайт/lang/имяпапки(к примеру:English)/site.lng Далее идём в админ панель =>> настройки системы =>> Список используемых языков (название папок) Там вы увидите такой текст: Русский | Russian Это подключение вашего языкового пакета. Пишем: Английский | English Далее идём по пути: templates/шаблон/js/ И создаём папку English с файлом внутри.Можно просто создать копию папки Russian и переименовать. Всё, наш "lang" подключен. Теперь нам нужно все слова из файлов таких как tpl js php У меня есть данный код(я взял его из файла profile.tpl): [owner]<a href="/my_stats" onClick="Page.Go(this.href); return false;"><img class="icon stat_ic" src="{theme}/images/spacer.gif" alt="" /><div>Статистика страницы</div></a> <a href="/" onClick="Profile.LoadPhoto(); return false;"><img class="icon editphoto_ic" src="{theme}/images/spacer.gif" alt="" /><div>Изменить фотографию</div></a> <a href="/" onClick="Profile.DelPhoto(); return false;" id="del_pho_but" {display-ava}><img class="icon del_photo_ic" src="{theme}/images/spacer.gif" alt="" /><div>Удалить фотографию</div></a>[/owner] Теперь нам нужно слова занести в файл site.lng К тому же, не только в тот, который находить в папке Russian , а и тот, который в папке English Вот так вы должны заполнить документ.К тому же, они должны быть под одинаковым номером, что бы правильно выводились в шаблоне. 'lang_001' => 'Статистика страницы', 'lang_002' => 'Изменить фотографию', 'lang_003' => 'Удалить фотографию', Вносим слова, данным способом в оба файла site.lng, и заменяем их в profile.tpl данным образом: [owner]<a href="/my_stats" onClick="Page.Go(this.href); return false;"><img class="icon stat_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_001}</div></a> <a href="/" onClick="Profile.LoadPhoto(); return false;"><img class="icon editphoto_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_002}</div></a> <a href="/" onClick="Profile.DelPhoto(); return false;" id="del_pho_but" {display-ava}><img class="icon del_photo_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_003}</div></a>[/owner] Точнее вот таким текстом: {translate=lang_001} Где lang_001 это id вашего слова в файле site.lng Так же изменяем и в js файлах. Разобрались с js и tpl , теперь на очереди php файлы. Здесь всё немного по иному. Используется след. код: $lang['lang_001'] Возьмём этот кусочек с файла functions.php if($type == 'rec'){ if($numres == 1){ $gram_num_record = 'запись'; } elseif($numres < 5){ $gram_num_record = 'записи'; } elseif($numres < 21){ $gram_num_record = 'записей'; } elseif($numres == 21){ $gram_num_record = 'запись'; } } У вас должно выйти вот так: Сразу говорю, что данные скобки 'запись'; вам нужно убирать, и писать просто $lang['lang_001']; if($type == 'rec'){ if($numres == 1){ $gram_num_record = $lang['lang_001']; } elseif($numres < 5){ $gram_num_record = $lang['lang_002']; } elseif($numres < 21){ $gram_num_record = $lang['lang_003']; } elseif($numres == 21){ $gram_num_record = $lang['lang_004']; } } Думаю я вам помог.Будут вопросы задавайте в теме, с радостью отвечу.Удачи! А как сделать переключение между языками для пользователя? По сути, ты и делаешь выбор языков.Когда ты сделаешь действия этой инструкции, то у тебя получится что то типо того: Share this post Link to post Share on other sites
viiprogrammer 179 Report post Posted June 25, 2015 Полезная тема 1 Share this post Link to post Share on other sites
THEOUS 18 Report post Posted June 25, 2015 Полезная тема спасибо Share this post Link to post Share on other sites
igor2720 5 Report post Posted June 25, 2015 Доброго времени суток, дорогие пользователи форума. У многих возникали вопросы по добавлению языков в сборку, в просто народие называемых как "ланги". И так, начнём с того, как они работают. У нас есть файл site.lng Который лежит по пути lang/Russian/site.lng Для того, что бы подключить новый языковой пакет, нам нужно создать папку с файлом site.lng сделать всё нужно примерно так: вашсайт/lang/имяпапки(к примеру:English)/site.lng Далее идём в админ панель =>> настройки системы =>> Список используемых языков (название папок) Там вы увидите такой текст: Русский | Russian Это подключение вашего языкового пакета. Пишем: Английский | English Далее идём по пути: templates/шаблон/js/ И создаём папку English с файлом внутри.Можно просто создать копию папки Russian и переименовать. Всё, наш "lang" подключен. Теперь нам нужно все слова из файлов таких как tpl js php У меня есть данный код(я взял его из файла profile.tpl): [owner]<a href="/my_stats" onClick="Page.Go(this.href); return false;"><img class="icon stat_ic" src="{theme}/images/spacer.gif" alt="" /><div>Статистика страницы</div></a> <a href="/" onClick="Profile.LoadPhoto(); return false;"><img class="icon editphoto_ic" src="{theme}/images/spacer.gif" alt="" /><div>Изменить фотографию</div></a> <a href="/" onClick="Profile.DelPhoto(); return false;" id="del_pho_but" {display-ava}><img class="icon del_photo_ic" src="{theme}/images/spacer.gif" alt="" /><div>Удалить фотографию</div></a>[/owner] Теперь нам нужно слова занести в файл site.lng К тому же, не только в тот, который находить в папке Russian , а и тот, который в папке English Вот так вы должны заполнить документ.К тому же, они должны быть под одинаковым номером, что бы правильно выводились в шаблоне. 'lang_001' => 'Статистика страницы', 'lang_002' => 'Изменить фотографию', 'lang_003' => 'Удалить фотографию', Вносим слова, данным способом в оба файла site.lng, и заменяем их в profile.tpl данным образом: [owner]<a href="/my_stats" onClick="Page.Go(this.href); return false;"><img class="icon stat_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_001}</div></a> <a href="/" onClick="Profile.LoadPhoto(); return false;"><img class="icon editphoto_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_002}</div></a> <a href="/" onClick="Profile.DelPhoto(); return false;" id="del_pho_but" {display-ava}><img class="icon del_photo_ic" src="{theme}/images/spacer.gif" alt="" /><div>{translate=lang_003}</div></a>[/owner] Точнее вот таким текстом: {translate=lang_001} Где lang_001 это id вашего слова в файле site.lng Так же изменяем и в js файлах. Разобрались с js и tpl , теперь на очереди php файлы. Здесь всё немного по иному. Используется след. код: $lang['lang_001'] Возьмём этот кусочек с файла functions.php if($type == 'rec'){ if($numres == 1){ $gram_num_record = 'запись'; } elseif($numres < 5){ $gram_num_record = 'записи'; } elseif($numres < 21){ $gram_num_record = 'записей'; } elseif($numres == 21){ $gram_num_record = 'запись'; } } У вас должно выйти вот так: Сразу говорю, что данные скобки 'запись'; вам нужно убирать, и писать просто $lang['lang_001']; if($type == 'rec'){ if($numres == 1){ $gram_num_record = $lang['lang_001']; } elseif($numres < 5){ $gram_num_record = $lang['lang_002']; } elseif($numres < 21){ $gram_num_record = $lang['lang_003']; } elseif($numres == 21){ $gram_num_record = $lang['lang_004']; } } Думаю я вам помог.Будут вопросы задавайте в теме, с радостью отвечу.Удачи! А как сделать переключение между языками для пользователя? По сути, ты и делаешь выбор языков.Когда ты сделаешь действия этой инструкции, то у тебя получится что то типо того: Не получилось((( Можешь помочь? Share this post Link to post Share on other sites
timbios 194 Report post Posted July 30, 2015 Внимание! Отредактировал тему и перенёс в нужный раздел. Share this post Link to post Share on other sites
Edgaras1 0 Report post Posted August 10, 2015 Там вы увидите такой текст: Русский | Russian ---- Пишем: Английский | English , я непонемаю, надо добавит рядом, или помениат местами? обянил вобще невтему , ест какои способ полегщце? рускии мой неоцен , спс за ответ. Share this post Link to post Share on other sites
wenjiro 33 Report post Posted August 10, 2015 Отличный F.A.Q. 1 Share this post Link to post Share on other sites
deleteUser 2 Report post Posted September 3, 2018 ОШИБОЧКА - Хорошо было бы есть сделать для каждого пользователя свой язык Например основной русский а если у пользователя выбран язык русский после авторизации переключить на Английский (например в таблице User сделать user_lang и тд) Share this post Link to post Share on other sites
Leymelki 24 Report post Posted December 8, 2019 чет хотел по пробивать и не вышло по этой схеме Share this post Link to post Share on other sites
timbios 194 Report post Posted December 8, 2019 @Karina наверное где-то допустил ошибку, мануал рабочий Share this post Link to post Share on other sites
Leymelki 24 Report post Posted December 8, 2019 17 минут назад, Mr.Timbios сказал: @Karina наверное где-то допустил ошибку, мануал рабочий много раз пробвал! в файл запишу слово все как надо а в шаблоне не вылазит(( Share this post Link to post Share on other sites
timbios 194 Report post Posted December 8, 2019 @Karina это нужно сборку смотреть, я так ничем не смогу помочь Share this post Link to post Share on other sites
Leymelki 24 Report post Posted December 8, 2019 Только что, Mr.Timbios сказал: @Karina это нужно сборку смотреть, я так ничем не смогу помочь дак обычная что тут лежит тиа чистая но с беседами Share this post Link to post Share on other sites
GoogleChrome 4 Report post Posted December 27, 2019 если текст не в tpl а в php файле? как там подключить lng? Share this post Link to post Share on other sites
timbios 194 Report post Posted December 27, 2019 1 час назад, GoogleChrome сказал: если текст не в tpl а в php файле? как там подключить lng? Попробуй сначала дочитать статью полностью 2 Share this post Link to post Share on other sites
GoogleChrome 4 Report post Posted December 28, 2019 создавал новый файл php для функций. при запуске берет почему-то только из русского ланга. где-то нужно подключить обработку нового php файла? Share this post Link to post Share on other sites
Stark98 47 Report post Posted November 8, 2020 (edited) if($type == 'user_age'){ if($numres == 0){ $gram_num_record = $lang['lang_998']; } elseif($numres == 1){ $gram_num_record = $lang['lang_999']; } elseif($numres < 5){ $gram_num_record = $lang['lang_1000']; } elseif($numres < 21){ $gram_num_record = $lang['lang_998']; } elseif($numres == 21){ $gram_num_record = $lang['lang_999']; } } Вместо нужного ничего не вывело.. К примеру: было 25 лет, стало просто 25, в лангах все есть В 09.11.2020 в 03:16, Stark98 сказал: if($type == 'user_age'){ if($numres == 0){ $gram_num_record = $lang['lang_998']; } elseif($numres == 1){ $gram_num_record = $lang['lang_999']; } elseif($numres < 5){ $gram_num_record = $lang['lang_1000']; } elseif($numres < 21){ $gram_num_record = $lang['lang_998']; } elseif($numres == 21){ $gram_num_record = $lang['lang_999']; } } Вместо нужного ничего не вывело.. К примеру: было 25 лет, стало просто 25, в лангах все есть Еще актуально, помогите пожалуйста. Edited November 8, 2020 by Stark98 1 Share this post Link to post Share on other sites