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 :: Класс локализации

 PHP.SU

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


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

> Без описания
esterio
Отправлено: 14 Ноября, 2012 - 14:36:08
Post Id



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


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


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




Кто какие реализации для класса локализации порекомендует!
Пока что есть идея

PHP:
скопировать код в буфер обмена
  1.  
  2. $loc = new localization('ru');
  3. echo $loc->loc('Hello World'); //Привет Мир
  4.  


Это всего-навсего пример

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

 
 Top
caballero
Отправлено: 14 Ноября, 2012 - 14:38:33
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




а на фига тут вообще класс если можно испоьзовать массив или еще лучше константы и подключать соответствующий файл вместо дергать метод класса на каждое слово


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
eai
Отправлено: 14 Ноября, 2012 - 14:43:06
Post Id



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


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


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




Вообще способ локализации лежит в рамках размера и функций вашего проекта.
Можно такого намутить, но надо ли. Мож массив и функция к нему и есть то что надо ?

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

 
 Top
esterio
Отправлено: 14 Ноября, 2012 - 14:58:44
Post Id



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


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


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




Ну хотелось в ООП сделать для своего CMF.
Я так и делал через масив, но хочется большего функционала чем просто массив по ключам

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

 
 Top
caballero
Отправлено: 14 Ноября, 2012 - 15:06:16
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
Ну хотелось в ООП сделать для своего CMF.

зачем тут ООП?

Цитата:
Я так и делал через масив, но хочется большего функционала чем просто массив по ключам

и много ты функционала придумал кроме функции котрая выводит с того же массива?

Или тебе ООП нужно для понтов?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
eai
Отправлено: 14 Ноября, 2012 - 15:11:47
Post Id



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


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


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




esterio пишет:
Ну хотелось в ООП сделать для своего

ООП имеет смысл только если у тебя все на классах
 
 Top
Мелкий Супермодератор
Отправлено: 14 Ноября, 2012 - 15:31:23
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




eai пишет:
ООП имеет смысл только если у тебя все на классах

ООП имеет смысл только для объектов. Если то - функция, то она и должна быть функцией.


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Ноября, 2012 - 15:39:04
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




В моем случае в соответствующей папке лежат файлы локализаций, в которых описан класс locale.
Все его св-ва публичны и имеют нативные имена к своим текстовым значениям на английском языке.
Подключение локали происходит во вьюхе:
CODE (php):
скопировать код в буфер обмена
  1. $this->locale = new locale();

Так же возможно указать свою собственную локаль (из доступных) в профиле юзера, что тоже учитывается во вьюхе.
В шаблонах обращение такого вида:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <h1><?=$this->locale->welcome?></h1>

Абсолютно не претендую на вернейшее решение - мне так удобно, и все.
Курите как хотите.
 
 Top
esterio
Отправлено: 14 Ноября, 2012 - 15:39:31
Post Id



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


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


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




CMF ето ГРУБО говоря смесь компонентов.
Есть роутер, конфигурация, бд etc.
Вот хотелось иметь что-нибудь вида

echo $ loc-> loc ('Hello World');

а не

echo $ loc ['hello_world'];

так мне понятней

я не говорю что ООП лучше процедурного или наоборот. Учитывая бурное развитие ООП хотелось бы перенести данный фунционал в ООП стиле.

Я не тролль какой то и не нуб!

Я так и не услышал аргументированной критики за и против.
(Добавление)
2 DeepVarvar
Интересное решение а как вы добавляете новые свойства или у вас геттер

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

 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Ноября, 2012 - 16:10:51
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




esterio пишет:
аргументированной критики за и против
За и против чего?
(Добавление)
esterio пишет:
а как вы добавляете новые свойства или у вас геттер
Новые св-ва не добавляю, описаны наглухо все, которые нужны, геттера нет и не будет, т.к. не люблю "скрытые" Notice если св-ва такого нет.
 
 Top
esterio
Отправлено: 14 Ноября, 2012 - 16:13:31
Post Id



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


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


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




DeepVarvar пишет:
esterio пишет:
аргументированной критики за и против
За и против чего?


Спасибо интересное решение. А как Вы добавляете новые свойства. генерируете или у Вас геттер.

Сорри погорячился. Имел ввиду чем плохо ООП подход к локализации против массивов.
(Добавление)
DeepVarvar пишет:
Новые св-ва не добавляю, описаны наглухо все, которые нужны, геттера нет и не будет, т.к. не люблю "скрытые" Notice если св-ва такого нет.


Ну можно isset использовать. Тогда notice не будет и null в ответ например:
PHP:
скопировать код в буфер обмена
  1. class loc
  2. {
  3.         protected $_loc = array();
  4.  
  5.         public function __construct(array $loc)
  6.         {
  7.                 $this->_loc = $loc;
  8.         }
  9.  
  10.         public function __set($key, $value){}
  11.  
  12.         public function __get($key)
  13.         {
  14.                 return isset($this->_loc[$key]) ? $this->_loc[$key] : null;
  15.         }
  16. }
  17.  
  18. $loc_cfg = array(
  19.         'hello_world' = 'Привет мир'
  20. );
  21. $loc = new loc($loc_cfg);
  22. echo $loc->hello_world;

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

 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Ноября, 2012 - 16:23:14
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Предпочитаю видеть Notice - считаю это ошибкой кода.
 
 Top
esterio
Отправлено: 14 Ноября, 2012 - 16:25:04
Post Id



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


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


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




DeepVarvar пишет:
Предпочитаю видеть Notice - считаю это ошибкой кода.

в некоторой степени согласен с Вами.

Но согласитесь, что изменение локализации примерно в 100-1000 строк задача не из легких

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

 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Ноября, 2012 - 16:31:41
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




esterio пишет:
изменение локализации примерно в 100-1000 строк
Одну строчку дописать сложно?
 
 Top
esterio
Отправлено: 14 Ноября, 2012 - 16:33:03
Post Id



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


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


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




DeepVarvar пишет:
Одну строчку дописать сложно?


А если делать CMF или CMS, то сомневаюсь что юзеру будет удобно такое.
 
 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