многоязычность

Армян

Новичок
многоязычность

меня интересует вопрос как лучше всего(грамотнее) организовать многоязычночть сайта? я думал сдлать так чтобы в начале индексного скрипта все данные на нужном языке кидались в массив, но незнаю это правильно или нет, и незнаю как передать массив в другие скрипты(разве что во все формы пихать хидден поля...)!
еще думал при каждой надобности обращатся к бд, но это наверно тоже неправильно! короче что посоветуете?
 

AmdY

Пью пиво
Команда форума
я в данный момент использую массивы с языками для модулей. подгружаю, когда использую модуль, есть функции translate для контроллера и для шаблона. И мне кажется что тебе не хватает понимания MVC и extends.
 

AmdY

Пью пиво
Команда форума
Блин. знал же что есть gettext, но никогда не смотрел, думал нафик, если у меня и так красиво. Изобрёл точно такой же велосипед. :(
 

Армян

Новичок
я в данный момент использую массивы с языками для модулей. подгружаю, когда использую модуль, есть функции translate для контроллера и для шаблона. И мне кажется что тебе не хватает понимания MVC и extends.
я даже незнаю что такое MVC я недавно начал учить пхп :)

magic, за ссылки большое спасибо
 

AmdY

Пью пиво
Команда форума
Армян
в том-то и дело, обязательно погугль про MVC, если ты начинаешь, то это не повредит, нужно сразу привыкать к хорошему, а синтаксис PHP потом подтянется.
Заодно поймёшь про вторую часть своего вопроса.
 

Армян

Новичок
Автор оригинала: AmdY
Армян
в том-то и дело, обязательно погугль про MVC, если ты начинаешь, то это не повредит, нужно сразу привыкать к хорошему, а синтаксис PHP потом подтянется.
Заодно поймёшь про вторую часть своего вопроса.
обязательно погуглю... спасибо
 

Bu-Bu

Любитель PHP
Проще для каждого языка сделать файл с переводом:
define('BUTTON_YES','Yes') - аглицкий
define('BUTTON_YES','Да') - русский
define('BUTTON_YES','Ya') - немецкий.

остается в любом скрипте подключить файл с переводом и вставить ".BUTTON_YES.". Выбор же языка пусть ручками делают и в куки себе. Все, поехали.
 

Армян

Новичок
Проще для каждого языка сделать файл с переводом:
неочень удобно если много языков! придется писать большой иф типо
if ( lang = 'ru' ) {
include('rus_file');
}elseif( .. )
...
и т.д.
 

AmdY

Пью пиво
Команда форума
нужно делить файлы по модулям + дефолтный, иначе загружается куча неиспользуемых слов, плюс появляется возможность каждый модуль отображать с разными языками (если вдруг понадобится)
 

Bu-Bu

Любитель PHP
Автор оригинала: Армян
неочень удобно если много языков! придется писать большой иф типо
if ( lang = 'ru' ) {
include('rus_file');
}elseif( .. )
...
и т.д.
никаких elseif!

один общий скажем config.php в котором из кук подключается нужный файл - например english.inc.php или armen.inc.php, а дальше уже само пойдет. Удобство этого метода в том, что очень много повторяющейся информации не придется набивать в каждом файле. А вообще, PHP - не video и стереть звуковую дорожку и закатать новую не получится.
 

AmdY

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

Армян

Новичок
как так? полюбому придется же писать? ну так в этом конфиге та придется писать ифы?
 

AmdY

Пью пиво
Команда форума
if - это не страшно, когда в одном месте. хотя лучше switch для таких целей использовать, главное чтобы решение было гибким.
 

Армян

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

AmdY

Пью пиво
Команда форума
это дополнительная нагрузка на бд, бд может находиться на другом сервере, твоё приложение замораживается на время запроса, в таких вещах файл лучше.
 

Армян

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

AmdY

Пью пиво
Команда форума
Никто ж не запрещает искать свои решения.
 

Bu-Bu

Любитель PHP
Автор оригинала: AmdY
есть задача отсылать письма подписчикам, нужно каждому слать с их языком и кодировкой. берём подписчика, подгружаем файл с его языком-кодировкой, следующего с другим языком-кодировкой, файл изменяется только для рассыльщика. С дефайном это сложно, если один файл, куча ненужного подключаем-отключаем.
Чего сложного-то? И потом, речь о кодировке или языке? Ежли только UTF-8 -> KOI8-R - > WIN1251, то это вообще не сюда. А с define сложно набрать только первый файл, а потом тока меняй слова и все. Я раньше мало пользовался этим, а щас делаю буржуям замануху и проникся этим способом. А напрягать ПХП лишними примочками не есть хорошо, хотя можно хоть dll повесить или прогонять через Promt - кому чего удобно.
 

AmdY

Пью пиво
Команда форума
ИМХО define для перевода - зло.
---------------------------------------
define('FAST','fast');
define('FAST','second');
echo FAST;
---------------------------------------
догадайся, что будет?
 
Сверху