Здравствуйте! Хочется узнать мнение о следующем: например создаю файл содержащий переменные языка сайта, что лучше сделать? создать XML и парсить его, создать константы и подгружать их, или создать массив и использовать его?
Удобнее это понятно, я о другом спросил, что оптимальнее например создать файлик содержащий константы или массив, его подгружать и это будет загружаться в память, потом только дергай нужную переменную. XML нужно подгружать тоже и тоже обращаться к нужной секции. Что менее грузит память и вообще что оптимальнее?
1. XML грузит и менее оптимальное 2. почему в вариантах нету базы данных? 3. какого формата данные и их размер? если данных не много то скорее всего не имеет значения
1. понятно. 2. БД не хочу использовать, так как например еще нет подключения к БД а идет проверка шаблонов и прочего, нужно выдавать сообщение на выбранном языке, или сообщение что нет возможности подключиться к БД. 3. Чем больше проект, тем больше данные, формат примерно такой define('TEXT_CLOSE_SITE','Закрыть сайт на обслуживание')
это проще Код (Text): if(file_exists('файл с данными')) { die(и т.п.); } вопрос не об этом, я так понимаю Вы предлагаете использовать БД ? - это оптимальнее всего для ресурсов сервера?
Наверное я не совсем понятно изложил свою мысль: 1. нужно создать многоязычность сайта, и сразу нужно решить как все таки будет эта многоязычность меньше напрягать сервер, пусть даже незначительно. - вариант 1. создать файлы с константами : Код (Text): define(‘ПЕРЕМЕННАЯ’,’ЗНАЧЕНИЕ’); - вариант 2. массив: Код (Text): $language[‘ПЕРЕМЕННАЯ’] = 'ЗНАЧЕНИЕ'; - вариант 3 создать XML файл: Код (Text): <language> <ПЕРЕМЕННАЯ>ЗНАЧЕНИЕ</ПЕРЕМЕННАЯ> <language> Все это так или иначе будет использовать ресурсы сервера, при маленькой посещаемости сайта, сильно и не будет заметно, но при большой посещаемости увеличится нагрузка на все. И если каждый отдельный модуль оптимизировать изначально, то серверу будет дышать полегче.
А по мне все три конкретное извращение. Лично я использую gettext - просто, быстро и можно давать переводить кому угодно - пересылаешь фаил с данными и программку - он в ней открывает и делает перевод, сохраняет, присылает вам, закачиваете на сервер и сразу всё пашет. И языки хоть все в мире впихивай если UTF используете.
Ощущения нормальные, пользуемся без проблем. Да нормальный этот poedit, просто не надо мучать его извращениями, у меня ни разу не зависал пока что
используйте массив. каждый ключ - определенная фраза, выводите $language['hello'], а уже в этот массив можно загружать разные языки.
antonn +1, тоже так делаю. Самый быстрый способ из перечисленных (особенно если установлен опкод кеш - тогда он вообще вне конкуренции), чуть быстрее определения через константы, да и пространство имен констант не засирается, ну и на порядок быстрее варианта с XML.