Вы сейчас здесь
«Облако» тэгов
link, small, tagless, tiny, 2003, big, 2008, 2010, январь, декабрь, сентябрь, 2001, 2004, 2002, август, апрель, март, июль, 2009, игры, октябрь, май, июнь, февраль, 2007, ноябрь, img, 2011, quote, wow, huge, блоги, кино, игровой дизайн, ребенок, половой вопрос, технологии, вебдев, lytdybr, фразы, живой журнал, жизнь, язык, яндекс, php, 2006, людишки, 2005, поисковики, software, video, inglish, 2000, смишно, диалоги, музыка, книги, культ личности, дейтинг, политика, интернет, 1999, rss, контент, flash, я, авторские проекты, реклама, прон, next-gen mmo, ореховые скорлупки, сми, js, программирование, fight club, register, социгры, спам, english reviews, американас, потребление, беллетристика, идеи, мое величие, iphone, usability, пидорасты, battle.net, lifestyle, starcraft 2, Тёма, соционика, spectator.ru, британские ученые, развитие, Масква, бабло, литература, фото, mobile, work, болкман, титаны, hard, hobius, mysql, интеллектуальный юмор, хостинг, blogowar.ru, графика, SEO, blogowar, magic, журналистика, злоба дня, религия, стартапы, social, tf2, цитаты, gzip, warhammer, браузеры, велосипед, киви, медикаментоз, общество, оговорки, html, воспитание, мифы, паранойа, письма в редакцию, учеба, 1998, soft, soviet, twdnkumus, глянцевые журналы, монетизация, норкотики, сайты, сиськи, типографика, тьюринг, mongodb, дизайн, железо, живут же люди, лолвут, плагиат, твиттер, тренд, 2012, about, бабушки, вещи, видео, зомбоящик, игрушки, социопатия,
Персональное
об авторе и сайте
мойкруг (резюме)
на G+
порнотумблер (rss)
инстаграм (хипстерские фото)

facebook
twitter

skype: acerbial
gtalk: dmitry.smirnov


C любовью к людишкам™,
♥ 1998 - 2013.

powered by mongodb.



Многоязыковая поддержка в php

Задача: есть скрипты, интерфейс у которых должен быть на двух нескольких языках. Я рассмотрел несколько вариантов, начиная с вывода всего через массив, типа $message[1] или $message[’save’] и заканчивая собственной функцией вывода или перехватом буфера по ob_start.

А потом я решил, что можно все сделать проще.

Создается База Соответствий Фраз. Начиная с длинных фраз, типа «Click here to save file» -> «Нажмите здесь, чтобы сохранить» и заканчивая словами, типа «save» -> «сохранить».

Все сообщения в скриптах по-прежнему выводятся на одном языке, без изменений. Когда нам надо собрать версию на другом языке, мы просто прогоняем скрипты, как простые текстовые файлы, через замену по Базе. Сначала заменяем длинные фразы, потом оставшиеся слова.

И получаем версию на другом языке. Да, нужно постоянно держать базу фраз up-to-date, но абсолютно то же самое придется делать, если выводить все через массив.

Единственный минус, который я вижу: невозможность переключать язык интерфейса вообще. То есть мы имеем набор скриптов только на одном языке. Но почти всегда это не имеет значения.

9 лет назад
0
Привет, Anonymous! Чтобы оставлять комментарии, надо авторизоваться.