Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Как реализовать мультиязычность движка?


Автор: Wowa 3.4.2002, 00:05
1. сабж.

Мне видится только такой способ:
просматривать вручную все скрипты, ставить вместо выводимых фраз, что-то типа: $text{'1'}, $text{'2'} и т.п.

А потом в одном файле перечислить эти все переменные и присвоить им значение.

Может есть способы и получше? Кто как делает такие вещи?


2. Или удобнее сразу по мере писания скрипта не вставлять текст, а сразу переменную, и в файле её прописывать. Так?

В общем, жду всяких советов и жаркого обсуждения этой темы.

Автор: Cepera 4.4.2002, 07:40
я строю хтмл (пхп вернее) , котрый генерится скриптом... и да, использую первый метод... утомительный, не спорю, но лучше пути пока не нашел

Автор: Pumba 18.4.2002, 14:11
я делаю так: везде где нужно выводить чтото что может измениться - вывожу через переменные

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


просто и со вкусом.


==================================
Pumba                            www.mpscope.net

Автор: Сергей 17.7.2002, 10:24
Загони все иностранные слова в БД в соответствубщую таблицу и в зависимости от текущего языка будеш читать слова из нужной колонки

Автор: Cepera 17.7.2002, 13:41
нее, через бд слишком не практично

Автор: KeepeR 27.8.2005, 12:00
БД как раз таки практично .. токо если в самой программе не требуется использовать базу данных ... то языковая база делается на основе access....a далее ИД записи, и на каком хчешь названия ...

только вот значения все равно надо присваивать ... все равно дельфи не дает сделать Application.components[i].caption потому как не все компоннты имеют заглавие.

с базой проще в том духе что ты смотришь название компонента и ИД языка, не надо постоянно одно и тоже писать или одуренные обработчики выясняя какой же стоит язык ...

а при смене языка можно и в реесте запись текущего языка сделать ....

Автор: korob2001 27.8.2005, 12:50
Короткие надписи, типа Label, возле текстовых полей и т.п. , не имеет смысла хранить в БД. Лично я бы создал несколько DBM файлов и подгружал бы один из них, в зависимости от условия, из которого и устанавливались бы необходимые значения. Что бы не засорять программу лишними условиями, можно написать модуль или класс, который и будет возвращать ссылку на необходимый хеш.

Автор: Kyborg 28.8.2005, 17:39
Использую базу данных

Автор: Мишган 4.9.2005, 04:10
Помойму так самое простое в данном случае, это использование XML.
Делал недавно проект, там было на выбор 4 языка + в дальнейшем еще дополнительные языки. Имхо Перевод XML файлы, да впринципе как и его обработка, процесс не сложный.

Автор: Vaneska 12.9.2005, 12:25
Если проект большой, наверняка с менеджером сайта, базой данных и написан с использованием шаблонов.
Варианты:
1. Использовать отдельные шаблоны сайта под каждый язык. Наподобие тем phpbb.
2. Сделать наборы картинок и слов(текстов, названий...) для каждого языка, в скрипте только указывать путь к ним. В шаблонах же для каждого слова ставить метку.

Все данные в базе данных дублировать на разных языках.

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



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)