Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Класс локализации [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 2 [3]   

> Без описания
AlexAnder
Отправлено: 15 Ноября, 2012 - 14:43:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




esterio пишет:
2 AlexAnder

это не мой пример, я взял из етой ветки. Там написано "ВАШ ПРИМЕР". Ниже "МОЙ ПРИМЕР"


esterio пишет:
Не люблю global, лучше protected $_lang;

и это тоже не Ваша цитата? Однако

(Отредактировано автором: 15 Ноября, 2012 - 14:44:37)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
esterio
Отправлено: 15 Ноября, 2012 - 14:51:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




AlexAnder пишет:
esterio пишет:
2 AlexAnder

это не мой пример, я взял из етой ветки. Там написано "ВАШ ПРИМЕР". Ниже "МОЙ ПРИМЕР"


esterio пишет:
Не люблю global, лучше protected $_lang;

и это тоже не Ваша цитата? Однако



Моя цитата.
В моем посте 2 примера. Тот, что вверху не мой пример, а пользователя DelphinPRO, который привел свой пример реализации. Ниже мой класс который я сделал для сравнения. Думаю тепер понятно обяснил.

(Отредактировано автором: 15 Ноября, 2012 - 14:51:37)

 
 Top
AlexAnder
Отправлено: 15 Ноября, 2012 - 14:59:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




esterio пишет:

Моя цитата.
В моем посте 2 примера. Тот, что вверху не мой пример, а пользователя DelphinPRO, который привел свой пример реализации. Ниже мой класс который я сделал для сравнения. Думаю тепер понятно обяснил.

Цитата:
PHP:
скопировать код в буфер обмена
  1.     return isset($LANG[$text]) ? $text : '';

=>
PHP:
скопировать код в буфер обмена
  1.     return isset($LANG[$text]) ? $LANG[$text] : '';

это было адресовано автору функции lang Растерялся
а остальное - Вам


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
esterio
Отправлено: 15 Ноября, 2012 - 15:01:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




AlexAnder
А про globals кому?
(Добавление)
Кстати я тут погуглил. Нашел интересное обсуждение на даную тему
http://habrahabr[dot]ru/qa/4243/#answer_18399
Цитата:
В Zend framework'e есть класс Zend_Translate. Он работает с разными вариантами представления данных, начиная от php-массива и csv-файла с разделителями и заканчивая ini-файлами, xml и файлами формата GetText.
Рекомендую для локализации именно последний вариант. Все локализационные данные обрамляются определенным образом в коде, специальная утилита (например, POEdit) сканирует файлы проекта на предмет появления новых значений и изменения старых, после чего появляется удобная таблица для ввода перевода. Таким образом, с помощью такой тулзы локализацию можно перепоручить переводчику вообще не имеющему отношение к проекту, коду и т.д.


Zend, Yii, Symfony используют классы. Так почему класс локализации плохо?
 
 Top
Zuldek
Отправлено: 15 Ноября, 2012 - 15:17:26
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




esterio пишет:
Zend, Yii, Symfony используют классы. Так почему класс локализации плохо?

В некоторых проектах но не во всех его нужно использовать. Об этом и а манах написано и указано когда это себя оправдывает и для чего. (По крайней мере для Зенда, касательно руководства могу сказать с уверенностью.)
 
 Top
esterio
Отправлено: 15 Ноября, 2012 - 15:26:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Ладн, я понял каждого позицию. Спасибо за ответы. Полчилась хорошая дискусия. Я увидел несколько новых примеров.

P.S. Как закрыть ветку? Считаю вопрос исчерпан.
 
 Top
AlexAnder
Отправлено: 15 Ноября, 2012 - 15:32:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Цитата:
AlexAnder
А про globals кому?

тому, кто говорит, что ему это не нравится, и он предпочитает private

esterio пишет:
DelphinPRO пишет:
global $LANG;

Не люблю global, лучше protected $_lang;

Спойлер (Отобразить)


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
esterio
Отправлено: 15 Ноября, 2012 - 15:36:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




AlexAnder
Не вижу смисла больше обяснять что
взят не из моего примера.
Топик закрыт.
Скажите лучше как закрыть его не на словах?

(Отредактировано автором: 15 Ноября, 2012 - 15:38:41)

 
 Top
AlexAnder
Отправлено: 15 Ноября, 2012 - 16:00:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




esterio пишет:
AlexAnder
Не вижу смисла больше обяснять что
взят не из моего примера.
Топик закрыт.
Скажите лучше как закрыть его не на словах?

можёт всё-таки поймёшь, что private не заменит global в этом случаи?

PHP:
скопировать код в буфер обмена
  1. function lang($text){
  2.     global $LANG; // GLOBAL нужен для того, чтобы $LANG была глобальной, а не локальной переменной, а если изменить на private, то ничего хорошего не будет
  3.     return isset($LANG[$text]) ? $text : '';
  4. }
  5. echo lang('welcome');


И тут совсем не причём кто автор этой функции

(Отредактировано автором: 15 Ноября, 2012 - 16:04:38)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
esterio
Отправлено: 15 Ноября, 2012 - 16:14:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




AlexAnder пишет:
можёт всё-таки поймёшь, что private не заменит global в этом случаи?

А я и не спорю с Вами. поэтому и написал пример с использованием класса, где есть protected $_lang;, который заполняеться с файла в конструкторе и глобальной переменной не существует.

(Отредактировано автором: 15 Ноября, 2012 - 16:15:28)

 
 Top
DelphinPRO
Отправлено: 15 Ноября, 2012 - 20:24:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




esterio пишет:
Не люблю global, лучше protected $_lang;


ну вот вам без глобал Улыбка

PHP:
скопировать код в буфер обмена
  1. function lang($text)
  2.     static $_lang;
  3.     if(!isset($_lang){
  4.         $_lang = parse_ini_file('/languages/' . $language . '.ini');
  5.     }
  6.     if (!isset($_lang[$text])) {
  7.         return $text; // или '', кому как нра
  8.     }
  9.     if(func_num_args() > 1) {
  10.         return vsprintf($_lang[$text], array_slice(func_get_args(), 1));
  11.     } else {
  12.         return $_lang[$text];
  13.     }
  14. }
  15. echo lang('welcome', 'Вася');


не для спора, а так, из спортивного интереса Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB