Перейти к содержанию

Рекомендуемые сообщения

Хочу услышать мнение Людей:
Есть коммерческий проект, дорабатываю его уже с год+, они мной довольны...
Сейчас и вроде доработка небольшая. 
но сама доработка не главное, а вопрос в языках. (сайт 2-язычный - ru\uk)
Интересно, если нужно пару фраз мультиязычных вставить, обязательно-ли ВСЕ делают по ПРАвилам: контроллер->lang->.tpl
я вот смог все запихнуть в .tpl, без контроллера...(в tpl уже есть идентификатор языка)
Насколько это правильно\неправильно, интересно услышать Ваше мнение?....
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
15 минут назад, anapogo сказал:

я вот смог все запихнуть в .tpl, без контроллера...(в tpl уже есть идентификатор языка)

 

Пример можно? не понял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<?=($current_language_id==2 ? "Обратный звонок":"Зворотній дзвінок"); ?>

Вы-же понимаете, что это строка одна, а иначе пришлось-бы корректировать контроллер, 2 файла языков и собственно сам .tpl

Изменено пользователем anapogo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ой, не. По мне, так делать неправильно. Представьте, что у автомобиля можно будет поменять свечи только сняв поддон)) а аккумулятор под сиденьем пассажирским будет) Есть стандарты и их нужно придерживаться, задавать свои следует в редких случаях. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
23 минуты назад, halfhope сказал:

Ой, не. По мне так делать - неправильно. Представьте, что у автомобиля можно будет поменять свечи только сняв поддон)) а аккумулятор под сиденьем пассажирским будет) Есть стандарты и их нужно придерживаться, задавать свои следует в редких случаях. 

ну в иномарках почти так и есть :-) бывает нужно пол-машины разобрать, что-бы до свечек-то добраться:-)

согласен, оно неправильно, но когда нужно вставить 1 слово и менять 4 файла... - абсурд?

я понимаю, что не правильно, некрасиво, даже западло, но ведь мы-ж все люди(ленивые) , и мне интересно как Вы поступаете в таком случае? :-)

 

Изменено пользователем anapogo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

завтра заказчик захочет добавить арабский язык, послезавтра атлантические и т.д. Не все они дружат с кодировкой + не всегда редактор сохраняет так как нужно + не всегда вы будет заниматься этим проектом.

Не зря ведь придумали структуру и языковые пакеты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

prochet, я это все понимаю

но

я точно знаю, что заказчик точно не захочет..., ни завтра ни послезавтра....

но вопрос-то в том : "обязательно-ли ВСЕ делают по ПРАвилам: контроллер->lang->.tpl"

или ....    хотя-бы временно, втыкают ТАКОЕ,

там просто хозяйка женщина, и у нее каждый месяц новые веяния ;-)

ну мне-же за это платят :-) и фразу ... "а может такой КОЛОР?" я воспринимаю как премию :-)

Изменено пользователем anapogo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, anapogo сказал:

<?=($current_language_id==2 ? "Обратный звонок":"Зворотній дзвінок"); ?>

 

По рукам за такое дают.
Костыли... [далее не переводимый итальянский фольклор]
А ну быстро изучать стандартизацию.
Если бы самолеты так делали не по стандартам - они бы падали как яблоки осенью

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

та знаю я "стандартизацию"

понял, переделаю раз уж САМ markimax сказал...

сам когда-то ракеты в Звездном помогал запускать....

я понимаю, что нестандартно - неправильно

а если подойти с позиции "незаменимости" вебмастера?

Ви с такм сталкивались?

 

Изменено пользователем anapogo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, anapogo сказал:

а если подойти с позиции "незаменимости" вебмастера?

Ви с такм сталкивались?

Ты хочешь узнать,
1 Что будет если она захочет тебя поменять
Получиться ли у неё это, или если новый веб мастер посмотрит на этот код что он скажет(гнать в шею) и будет ли разбираться с ним.
2 Как тебе при дальнейшей работе это может аукнуться тоже сказали)
Что это не правильно ты и сам понимаешь.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такое ощущение сложилось, что ТС-а ужасно замучила совесть. Ведь как он сам сказал - он прекрасно понимает, что так делать не то что неправильно, а вообще нельзя.

И так как совесть мучает, то он решил создать эту тему, дабы попытаться самого себя, перед самим собой, как-то оправдать. А еще лучше, найти такого же распи...я халтурщика как он, и быть спокойным за то, что он такой не один.

 

ТС, незаменимых нету и ты не исключение. Завтра тебе кирпич на голову упадет и вот тебя нужно заменять. А потом кому-то копаться в твоём говнокоде.

Я могу понять, к примеру, если у тебя дедлайн, а у тебя еще куча нереализованных пунктов и делать всё по "фен-шую" действительно запарно. Или ты банально не знаешь как сделать правильно. Но делать это осознано, просто потому что "лень"... Хотя чего там, главное же это - "я воспринимаю как премию". Заказчик бабла заплатит и самое главное. Боюсь представить даже, что там за год "работы" сложилось в итоге, с таким отношением.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что здесь сложного - открываете в редакторе два языковых файла, контроллер и шаблон

Разделяете на два экрана - один из языков и шаблон

 

Сначала проставляете возле всех вписанных в шаблон слов переменные будет примерно так

<span class="top-title"><?php echo $text_top_title; ?>Ответить на сообщение</span>

В языковом пишете $_['text_top_title'] = "Ответить на сообщение"; при этом в этот же файле пишите внизу где-то заготовку для контроллера

$data['text_top_title'] = $this->language->get('text_top_title'); и т.д.

понятно что после переноса в язык надпись удаляете в шаблоне и так далее пока не переведете страницу.

Потом вместо шаблона переключаетесь на контроллер и вставляете все строки что писали для контроллера $data['text_top_title'] = $this->language->get('text_top_title');... вставили - удалили из языка.

Потом вместо контроллера открываете другой язык и просто вставляете перевод.

 

Это будет самым правильным решением. И после вас будет приятно работать т.к. все будет сделано по стандарту а не как в шаблонах от TM и PAVO

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем за высказанные нравоучения :)

Я ведь писал - понимаю, что говнокод, впринципе делал такое редко и если "срочно"

впредь постараюсь и редко не делать...

а вот как "правильно" в ajax.js получить нужную языковую переменную? 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я в таких случаях обявляю глобальную js переменную
<sript>var my_var={{ my_text }};</script>

И во внешнем скрипте (если скрипт подгружается) ее использую, это если скрипт не понимает многоязычности

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, Exploits сказал:

А что здесь сложного - открываете в редакторе два языковых файла, контроллер и шаблон

Разделяете на два экрана - один из языков и шаблон

 

Сначала проставляете возле всех вписанных в шаблон слов переменные будет примерно так

<span class="top-title"><?php echo $text_top_title; ?>Ответить на сообщение</span>

В языковом пишете $_['text_top_title'] = "Ответить на сообщение"; при этом в этот же файле пишите внизу где-то заготовку для контроллера

$data['text_top_title'] = $this->language->get('text_top_title'); и т.д.

понятно что после переноса в язык надпись удаляете в шаблоне и так далее пока не переведете страницу.

Потом вместо шаблона переключаетесь на контроллер и вставляете все строки что писали для контроллера $data['text_top_title'] = $this->language->get('text_top_title');... вставили - удалили из языка.

Потом вместо контроллера открываете другой язык и просто вставляете перевод.

 

Это будет самым правильным решением. И после вас будет приятно работать т.к. все будет сделано по стандарту а не как в шаблонах от TM и PAVO

 

Вариант "еще легче" и правильнее (согласно стандартов совместной разработки, дабы не трогать оригинальные файлы opencart, темы  чтобы можно было потом проще обновляться и все ваши изменения видели быстро коллеги )
Создаешь один файлик .ocmod (так как ocmod - это инструмент совместной разработки аля git), все правки прописываешь там
Вот это будет самым правильным решением. А тот кто давно научился так делать и самым быстрым

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, markimax сказал:

 

Вариант "еще легче" и правильнее (согласно стандартов совместной разработки, дабы не трогать оригинальные файлы opencart, темы  чтобы можно было потом проще обновляться и все ваши изменения видели быстро коллеги )
Создаешь один файлик .ocmod (так как ocmod - это инструмент совместной разработки аля git), все правки прописываешь там
Вот это будет самым правильным решением. А тот кто давно научился так делать и самым быстрым

И в правду, так будет быстрее, спасибо Markimax как всегда за ценный совет :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, anapogo сказал:

а вот как "правильно" в ajax.js получить нужную языковую переменную?

Передайте её туда

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, chukcha сказал:

Я в таких случаях обявляю глобальную js переменную
<sript>var my_var={{ my_text }};</script>

И во внешнем скрипте (если скрипт подгружается) ее использую, это если скрипт не понимает многоязычности

Спасибо. Сделал так в tpl

<script>   var txt1='<?=$text_callmi?>';</script>

работает.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, anapogo сказал:

Спасибо. Сделал так в tpl

<script>   var txt1='<?=$text_callmi?>';</script>

работает.

 

А по рукам ? ;)

Не делайте укороченный синтаксис объявления php кода, не безопасно

<?=$text_callmi?>

Делайте безопасно, правильно и стандартно

<?php echo $text_callmi; ?> 

Есть такой знак дорожный, как в анекдоте "Нэ тараПИСЯ"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, markimax сказал:

"Нэ тараПИСЯ"

Нэ ТАараПыся

 

но таки да - по рукам

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, markimax сказал:

А по рукам ? ;)

Не делайте укороченный синтаксис объявления php кода, не безопасно


<?=$text_callmi?>

Делайте безопасно, правильно и стандартно


<?php echo $text_callmi; ?> 

А можете обьяснить почему?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
22 минуты назад, anapogo сказал:

А можете обьяснить почему?

А почитать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
54 минуты назад, chukcha сказал:

А почитать?

Да поискал по фразе "укороченный синтаксис объявления php кода не безопасно", но везде пишут что так можно...

про безопасность ничего...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
35 минут назад, anapogo сказал:

Да поискал по фразе "укороченный синтаксис объявления php кода не безопасно", но везде пишут что так можно...

про безопасность ничего...

1. Некоторые хостеры отключают укороченный синтаксис вызова php. Т е работать у каких то хостеров не будет

2. Некоторые модули проверяют файлы на предмет <?php  не подсовывают ли им шелл.  Понятное дело не <?, потому что таких байт кодов будет через один файл. Поэтому не безопасно.  А укороченный вызов отключают при этом. см. п. 1, т е замкнутый круг
 

Спойлер

"Нэ тараПИСЯ"

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, понятно.

Здесь кнопки "Спасибо" что нет?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.