Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Локализация и кодировка системы 
:(
    Опции темы
Wowa
Дата 17.6.2005, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



У меня есть предложение ко всем - ввести разработку скриптов в UTF-8 и вообще все данные и в базе и везде хранить в UTF-8


Конечно, если система будет использоваться на каком-то русскоязычном сайте, то русские символы будут по два байта занимать, вместо 1-го байта в windows-1251, но зато мы навсегда решим все проблемы с кодировками. Я очень хочу, чтобы система была очень хорошо локазирована.


НО, все же, если взять наш форум в пример, то конвертация его базы в UTF-8, имхо было бы большой глупостью.

PM WWW   Вверх
Wowa
Дата 17.6.2005, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Что означает настоящая мультиязычность в CMS?

Настоящая мультиязычность, это когда на CMS можно построить сайт:
1. На любом языке
2. На нескольких языках сразу


С первым проблем у нас не будет, а вот со вторым могут быть. Т.к. сайты имеющие информацию на разных языках иногда имеют также разную структуру страниц. Я предлагаю, чтобы каждую создаваемую через CMS страницу, можно было бы создавать на нескольких языках. Пример вызова страницы:
domain.ru/?page=o_vingrade&lang=ru
domain.ru/?page=o_vingrade&lang=de

lang=ru - имеет смысл записывать наверное в сессию, чтобы не передавать с каждой ссылкой.
PM WWW   Вверх
Mal Hack
Дата 17.6.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Wowa а как тогда будем хранить к примеру текст новостей на разных языках?
Тут проблема в этом. К тому же если пользователь захочет добавить язык, то придется еще столбец в БД записывать.
PM ICQ   Вверх
Wowa
Дата 17.6.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Mal @ 17.6.2005, 16:52)
Wowa а как тогда будем хранить к примеру текст новостей на разных языках?

в UTF-8


Цитата(Mal @ 17.6.2005, 16:52)
Тут проблема в этом. К тому же если пользователь захочет добавить язык, то придется еще столбец в БД записывать.

Ну, это не проблема. Впрочем, я не уверен все равно, что это нужно в доп. столбце делать. Может быть отдельную запись создавать и как-то связывать.....
PM WWW   Вверх
Mal Hack
Дата 17.6.2005, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(Wowa @ 17.6.2005, 19:14)
Ну, это не проблема. Впрочем, я не уверен все равно, что это нужно в доп. столбце делать. Может быть отдельную запись создавать и как-то связывать.....

Вот меня этот вопрос существенно интересует. Сколько я не искал выходов, так и не нашел рациональлных.
Можно, конечно, делать для каждого модуля еще одну таблицу, куда псать
Модуль | ID записи в основной таблице |параметр (Название статьи) | Язык | текст на языке.
Как думаешь?
PM ICQ   Вверх
Wowa
Дата 17.6.2005, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Mal @ 17.6.2005, 17:24)
Как думаешь?

я считаю неплохим - вариант с доп. столбцом
PM WWW   Вверх
Irokez
Дата 17.6.2005, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



по-моему следует сделать так:
для каждого модуля завести по две таблицы:
одна на данные которые переводить не нужно
вторая - для данных которые нужно переводить
структура второй таблицы:
id - внешний ключ - ссылка на первичный ключ первой таблицы
lang - внешний ключ - ссылка на певичный ключ таблицы языков
др. поля.

языки также будут храниться в двух аналогично построенных таблицах
PM   Вверх
Gold Dragon
Дата 18.6.2005, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



по моему Mal Hack предложил оптимальный вариант


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Opik
Дата 18.6.2005, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Ну да, тут особо вариантов нету.. добавлять lang к таблице, и выводить только у выбранных. Было бы неплохо систему как на php.net - язык выбирается автоматически, в то же время есть возможность выставить язык самому.
PM MAIL Skype   Вверх
Wowa
Дата 18.6.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Так, а что думаете насчет UTF-8 ?
PM WWW   Вверх
Opik
Дата 18.6.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Wowa
а в чем проблема с cp1251? не сталкивался - не знаю, обоснуй?

Это сообщение отредактировал(а) Opik - 18.6.2005, 14:31
PM MAIL Skype   Вверх
dm9
Дата 18.6.2005, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Цитата(Opik @ 18.6.2005, 15:31)
cp1251


А для японцев тоже cp1251?

Добавлено @ 15:11
smile
PM MAIL ICQ   Вверх
Wowa
Дата 18.6.2005, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Opik @ 18.6.2005, 13:31)
а в чем проблема с cp1251? не сталкивался - не знаю, обоснуй?

В разных языках - разные алфавиты. В немецком языке есть буквы с умляутам, во франц. яз. - другие спец. буквы есть, литовский, латвийский, польский - там тоже отличия.
Добавлено @ 15:35
Кодировка, которая включает в себя символы всех нац. алфавитов - это UTF-8.
PM WWW   Вверх
Opik
Дата 18.6.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Wowa
понял
PM MAIL Skype   Вверх
Sardar
Дата 18.6.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Цитата(Wowa @ 17.6.2005, 14:34)
Настоящая мультиязычность, это когда на CMS можно построить сайт:
1. На любом языке
2. На нескольких языках сразу


Только во втором пункте подребуеться UTF-x, а таких проектов очень мало, когда люди говорящие на разных языках постят контент друг другу. Увидел ли я китайские иероглифы или вопросики, по барабану, понять я это не смогу smile Отсюда сталкивамся с выбором, а стоит ли увеличивать размеры контента в 1.7 раз.

Если места много, то конечно надо писать в UTF-8, мало ли что в будущем всплывёт smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wowa
Дата 18.6.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Sardar Под вторым пунктом я подразумевал необязательный вывод контента на нескольких языках сразу. Это может быть таблица с контентом и столбцами для разных языков. А вывод будет осуществляться на том языке, на котором нужно. Но даже в этом случае нам нужен UTF-8, чтобы хранить эти разные языки в одной таблице.
PM WWW   Вверх
Opik
Дата 20.6.2005, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



А если для каждого языка свою кодировку?
ru - windows-1251
en - ещё какую нить и т.д.
PM MAIL Skype   Вверх
Wowa
Дата 20.6.2005, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Opik @ 20.6.2005, 17:32)
А если для каждого языка свою кодировку?
ru - windows-1251
en - ещё какую нить и т.д.

В принципе, НОВЫЕ версии MySQL поддерживают задание кодировок даже для столбцов http://dev.mysql.com/doc/mysql/en/charset-column.html

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


В качестве недостатка использования разных кодировок для разных языков - это невозможность написания нормальным способом на одной странице текста на разных языках. Это можно будет сделать только, если хтмльный уникод юзать. Но мне не нравится этот способ, Т.к. в нем руссукие символы тогда будут заниматься не 1 байт, как вин1251, не в байта, как в UTF-8, а 5-6 байтов.

Далее. Если пользователь зарегистрировался и ввел инфу о себе на русском при кодировке windows-1251, а затем переключил язык интерфейса на англ. яз.,то вся информация, которую он ранее ввел, будет для него кракозябликами отображаться.
PM WWW   Вверх
Mal Hack
Дата 20.6.2005, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



определенно исползовать UTF.

Цитата(Wowa @ 20.6.2005, 20:14)
В принципе, НОВЫЕ версии MySQL поддерживают задание кодировок даже для столбцов http://dev.mysql.com/doc/mysql/en/charset-column.html

А я так понял что мы не только для MySQL делать будем.. К тому же как это будет работать - большой вопрос.
PM ICQ   Вверх
Wowa
Дата 20.6.2005, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Mal @ 20.6.2005, 18:19)
К тому же как это будет работать - большой вопрос.

Вот и я о том же. Думаю надо с UTF-8 работать и не заморачиваться. Но тогда и все скрипты должны писаться также в этой кодировке. Проверьте свои редакторы, чтобы могли в ней сохранять smile
Zend - умеет это хорошо smile
PM WWW   Вверх
IZ@TOP
Дата 20.6.2005, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Мой DreamWeaver умеет smile Я рад smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 20.6.2005, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(Wowa @ 20.6.2005, 20:32)
Вот и я о том же. Думаю надо с UTF-8 работать и не заморачиваться. Но тогда и все скрипты должны писаться также в этой кодировке. Проверьте свои редакторы, чтобы могли в ней сохранять smile

латиница она и в африке латиница, на сколько я понимаю.
PM ICQ   Вверх
Irokez
Дата 20.6.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(Mal @ 20.6.2005, 20:08)
латиница она и в африке латиница, на сколько я понимаю.

да нет, попробуй сохранить любой текстовый файл к примеру в блокноте как UTF, а потом открыть одним из виндовских редакторов (напр PHP Expert Editor)
PM   Вверх
Wowa
Дата 20.6.2005, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



В кодах программы будут русские комментарии. Поэтому и коды должны быть в UTF-8
А так, как лат. буквы в UTF-8 занимают 1 байт, я не вижу причин противиться этому подходу.
PM WWW   Вверх
Opik
Дата 21.6.2005, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



А если заюзать http://ee.php.net/manual/ru/ref.gettext.php ?
PM MAIL Skype   Вверх
Wowa
Дата 21.6.2005, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Не нравится мне gettext smile Пробовал его юзать, какая-то чепуха. В прицнипе, я написал свою прогу для создании языковых файлов. Пока не жалусь. Досточно большой проект(из более, чем 10 модулей) ей перевел - без проблем.
Добавлено @ 00:38
Единственным преимуществом gettext вижу то, что он сам определяет новые слова в исходниках. В моей же системе сначала нужно слово занести, а затем вставить полученную переменную в код программы. Но проблем мне это не доставляло. Т.е. работать можно и удобно.
PM WWW   Вверх
Opik
Дата 21.6.2005, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Wowa
в студию smile
PM MAIL Skype   Вверх
Wowa
Дата 21.6.2005, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Opik пока у меня на локалке стоит. Но я скоро покажу. Думаю по этому поводу беспокоится не стоит и думаю, что эту тему мы уже в принципе, можем закрывать пока.


Пришли к тому, что:
- вся система будет в UTF-8
- все скрипты также в UTF-8 должны писаться и сохраняться
- Для локализации будем использовать написанную мною софтину, которую я покажу, как только немного времени будет ее выложить.

PM WWW   Вверх
IZ@TOP
Дата 25.6.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Кстате, если у нас движек на XML+XSL, то ИМХО локализация на XML файлах будет очень хорошей идеей! Так как хочешь подгрузить просто файл к общему контенту проще чем его генерировать при помоще PHP и уже тогда добавлять в общий XML контент


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Wowa
Дата 25.6.2005, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(IZ @ 25.6.2005, 13:38)
Так как хочешь подгрузить просто файл к общему контенту проще чем его генерировать при помоще PHP и уже тогда добавлять в общий XML контент

Не понял, что ты имеешь ввиду...


Файлы локализации будут генерироваться автоматом при добавлении нового слова(черей мой софт). А в коде программы тебе надо будет просто вставлять $lang['имя модуля']['слово или фраза..']

Файлы затем выглядят так:
<?php
$lang['имя модуля']['слово или фраза..']="bla bla bla";
$lang['имя модуля']['слово или фраза..']="bla bla bla";
$lang['имя модуля']['слово или фраза..']="bla bla bla";
...
?>

и лежат в /locale/ru/modulename.php
А мы инклюдим нужные файлы, в зависимости, от вызванного модуля. Т.к. у нас будет описана также зависимость модулей от другух модулей в xml, то мы сможем при необходимости инклюдить несколько языковых файлов сразу.
PM WWW   Вверх
IZ@TOP
Дата 25.6.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



А не проще сделать XML структуру локализационных файлов? Генерировать из будет еще проще, редактировать и добавлять новые тоже.

А выглядеть это будет примерно так:

Код

<?xml version="1.0" encoding="UTF-8"?>
<Locale prefix="news" lang="ru">
    <add_new>Добавить новую новость</add_new>
    <delete_news>Удалить эту новость</delete_news>
    <read_archive>Просмотреть архив новостей</read_news>
    ... etc
</Locale>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
dm9
Дата 25.6.2005, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Wowa, моя имхА - каждому языку - свой XSL.

Добавлено @ 15:06
Перевод будет проще на другой язык + можно немного поменять структуру будет сразу.

Добавлено @ 15:06
Цитата(dm9 @ 25.6.2005, 16:05)
Wowa, моя имхА - каждому языку - свой XSL.


То есть свой набор XSL-файлов, естесно.

PM MAIL ICQ   Вверх
Wowa
Дата 25.6.2005, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



IZ@TOP интересное предложение... Но ихмо это немного замедлит работу системы, т.к. нам каждый раз нужно будет парсить этот файл при каждом вызове скрипта. А если модуль большой, то может быть очень много нужно будет парсить...
Добавлено @ 15:08
Цитата(dm9 @ 25.6.2005, 14:05)
То есть свой набор XSL-файлов, естесно.

Тоже интересно. Можешь дать краткий пример?
Добавлено @ 15:08
Цитата(dm9 @ 25.6.2005, 14:05)
То есть свой набор XSL-файлов, естесно.

Тоже интересно. Можешь дать краткий пример?
PM WWW   Вверх
IZ@TOP
Дата 25.6.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Цитата(Wowa @ 25.6.2005, 16:07)
То есть свой набор XSL-файлов, естесно.
Тоже интересно. Можешь дать краткий пример?


Это видимо в каждом шаблоне есть несколько файлов на одного и того же модуля к примеру, но на разных языках. Типа ru.index.xsl, en.index.xsl.

Цитата(Wowa @ 25.6.2005, 16:07)
Но ихмо это немного замедлит работу системы, т.к. нам каждый раз нужно будет парсить этот файл при каждом вызове скрипта. А если модуль большой, то может быть очень много нужно будет парсить...

Дело в том что эти данные парсить не надо, просто подкачать в общий XML, а при работе с РНР файлами, надо будет каждый раз генерировать этот XML в общий документ smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Wowa
Дата 25.6.2005, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(IZ @ 25.6.2005, 14:40)
а при работе с РНР файлами, надо будет каждый раз генерировать этот XML в общий документ

Каждый раз, это как? При каждом запуске программы? А откуда будет генерироваться тогда этот общий XML? Из значений взятых из файлов той структуры, которую я предложил. Так?
PM WWW   Вверх
IZ@TOP
Дата 25.6.2005, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Wowa, так. В общем будет так: или будем генерировать XML из РНР кода файлов локализации, либо подгружать отдельный XML файл, который будет обрабатываться XSL шаблоном, либо на сервере либо на клиенте (в большинстве случаев это будет наверняка второй вариант). Хотя конечно по такому принципу, XML траффику будет идти больше скорее всего. Но иначе смысла использовать XSL в качестве темлейтера я не вижу...


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Sardar
Дата 25.6.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



IZ@TOP лучше сделать один тег word, вместо кучи как у тебя, XSD схему будет сделать легче.
Код
<?xml version="1.0" encoding="UTF-8"?>
<Locale lang="ru">
   <module name="news" version="1.0+">
      <word key="Add new">Добавить новую новость</word>
      <word key="Delete post">Удалить эту новость</word>
      <word key="Read archive">Просмотреть архив новостей</word>
      <!-- etc... ->
   </module>
</Locale>


Цитата
Файлы локализации будут генерироваться автоматом при добавлении нового слова(черей мой софт). А в коде программы тебе надо будет просто вставлять $lang['имя модуля']['слово или фраза..']

Логичней не грузить весь пакет локализации для всех модулей, а грузить только необходимое. Обычно так не плохо:
Код
$lang=SysCore->loadLanguage("news");
echo $lang["Add new"];


Также хорошо бы хранить все пакеты локализаций в XML либо в базе, но не всё целиком выбирать/парсить.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
IZ@TOP
Дата 25.6.2005, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Sardar, я имел ввиду что к примеру локализация контролов, к примеру, для просмотра прхива новостей хранится в файле controls.archive.news.xml, далее делаем
Код

<addlocale id="controls.archive.news" xml:base="path/to/locale/ru/controls.arhive.news.xml">
просто делаем xInclude для нашего документа и он подключает все необходимые файлы. И нет необходимости грузить все данные.
Так все данные мы будем парсить при помощи XSL и локализацию тоже.
Добавлено @ 19:15
В общем это еще продумать нужно как следует.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Wowa
Дата 2.9.2006, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(IZ@TOP @  25.6.2005,  14:40 Найти цитируемый пост)

Дело в том что эти данные парсить не надо, просто подкачать в общий XML, а при работе с РНР файлами, надо будет каждый раз генерировать этот XML в общий документ smile


А как ты будешь выводить нужную надпись?
PM WWW   Вверх
Opik
Дата 2.9.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Можно хранить в XML файле, при его изменении генерировать новый PHP файлик, а в нем уже будет обычный массив, это если без заморочек с XSL трансформациями.
PM MAIL Skype   Вверх
IZ@TOP
Дата 4.9.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Opik, а как ты будешь подставлять в шаблоны эти данные? Снова создавать XML дерево?
Цитата(Wowa @  2.9.2006,  01:46 Найти цитируемый пост)
А как ты будешь выводить нужную надпись? 

Код

<xsl:value-of select="/data/locale/modulename/word[@key='appleseed']" />



Цитата(Sardar @  25.6.2005,  19:52 Найти цитируемый пост)
IZ@TOP лучше сделать один тег word, вместо кучи как у тебя, XSD схему будет сделать легче.

Мне кажется что при таком построении локализационного XML будет тормозить выборка из него. Потому, что:
Код

<xsl:value-of select="/data/locale/modulename/word[@key='appleseed']/text()" />

будет обработано дерево с поиском по значению атрибутов.
Код

<xsl:value-of select="/data/locale/modulename/appleseed/text()" />

По моему отработает несколько быстрее.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Wowa
Дата 4.9.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(IZ@TOP @  4.9.2006,  14:37 Найти цитируемый пост)
<xsl:value-of select="/data/locale/modulename/word[@key='appleseed']" />


А не слишком ли это длинная строка, из-за которой может потеряться читабельность кода для нас?
PM WWW   Вверх
IZ@TOP
Дата 4.9.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



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


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Wowa
Дата 4.9.2006, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Тут собственно два варианта:
1. это подставлять, как обычную пхп-переменную на стадии генерации XML. Т.е. $lang["module"]["key"]
2. твой вариант. В принципе попробовать что-либо новое мне всегда интересно. Поэтому я ничего против не имею.

У меня есть написанный мною интерфейс для локализации, который запишет всё в нужном формате в статические XML-файлы. Я скоро залью. Только сначала надо тогда определиться все-таки с форматов XML.
PM WWW   Вверх
IZ@TOP
Дата 4.9.2006, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Цитата(Wowa @  4.9.2006,  19:08 Найти цитируемый пост)
1. это подставлять, как обычную пхп-переменную на стадии генерации XML. Т.е. $lang["module"]["key"]

К сожалению это невозможно - если мы будем весь XSL отдавать пользователю для трансформаии на стороне клиента.

Цитата(Wowa @  4.9.2006,  19:08 Найти цитируемый пост)
У меня есть написанный мною интерфейс для локализации, который запишет всё в нужном формате в статические XML-файлы. Я скоро залью. Только сначала надо тогда определиться все-таки с форматов XML.


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

<?xml version="1.0" encoding="utf-8"?>
<locale lang="rus">
    <modulename>
         <keyword-name>Keyword name</keword-name>
    </modulename>
</locale>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Wowa
Дата 4.9.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(IZ@TOP @  4.9.2006,  18:48 Найти цитируемый пост)
К сожалению это невозможно - если мы будем весь XSL отдавать пользователю для трансформаии на стороне клиента.

Почему? Можно XSLT ведь динамически генерировать?
PM WWW   Вверх
sergejzr
Дата 4.9.2006, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(IZ@TOP @  25.6.2005,  14:14 Найти цитируемый пост)
Wowa, так. В общем будет так: или будем генерировать XML из РНР кода файлов локализации, либо подгружать отдельный XML файл, который будет обрабатываться XSL шаблоном, либо на сервере либо на клиенте (в большинстве случаев это будет наверняка второй вариант). Хотя конечно по такому принципу, XML траффику будет идти больше скорее всего. Но иначе смысла использовать XSL в качестве темлейтера я не вижу... 

Я делал локализацию для форума на яве. Мне вариант с ХМЛ очень понравился. Ставим в заголовке время жизни файла на бесконечность и клиент его подгрузит один раз в жизни. Трафф и рессурсы экономятся весьма. В таком случае нам по большому счёту пофиг на кодировку и можем(те) делать спокойно УТФ-8, не беспокоясь за трафф. (это естесственно не относится к файлам сгенеренным на сервере, но таких случаев будет ничтожно мало.)

Цитата(IZ@TOP @  4.9.2006,  16:03 Найти цитируемый пост)
Wowa, иных вариантов для подстановки данных я незнаю. К тому же читабельность кода от этого как мне кажется не сильно пострадает. 

Я в своём варианте просто упростил это. Существует фаил core.xsl, который содержит все необходимые функции и подгружается ко всем xslям (кстати механизм подгрузки я там тоже разработал  и не забываем, что этот файл тоже кэшируется!) вот примерно как будет переводится слово:

Код

<a href="showall.php"><xsl:apply-templates  select="$maindictionary[@id='showall_forums']"/></a> 


А сам словарь грузится так:
Код

<xsl:variable name="maindictionary" select="document(concat(concat('../../../lang/',/board//@lang),concat(concat('/lang_',/board//@act),'.xml')))//term" />

Для этого естественно в сгенеренном  xml передаётся переменная- название файла для перевода остальное скрипт сам сделает.


ПС:
Вообще, я когда им занимался, много интересных вещей сделал. Жалко, что времени сейчас нет smile

Добавлено @ 23:57 
Сам файл - словарь
Код

<?xml version="1.0" encoding="windows-1251"?>
<dict>
<term id="lastnews" word="Последние новости" />
<term id="showall_forums" word="Показать все форумы" />
<term id="forum_visibility_preferences" word="Настройка отображения форумов" />
<term id="administration" word="Администрация" />
<term id="active_topics" word="active_topics" />
<term id="10 best authors today" word="10 авторов сегодня" />
<term id="10 best authors ever" word="Лучшие 10 авторов" />
<term id="Forum statistics" word="Статистика форума" />
</dict>


Позже напишу, как в ХМЛ вставлять переменную, чтобы правйный словарь грузить

Добавлено @ 00:01 
Код

<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="./skins/1/xslt/idx.xsl"?>
<board  act="idx" lang="russian"  bordtitle="title"cssstyle="./skins/1/css/">
<lang id="curlang" value="russian" />
<user currentuser="true" />
<modul>
<!-- Здесь в принципе и будут все необходимые для отображения страницы переменные -->
</modul>
<footer generationtime="235" dbactions="0"/>
</board>



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 5.9.2006, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



sergej.z, одна проблема - это тот же gettext, но в XML. Благодаря xInclude можно инцлюдить необходимые строки, но это по прежнему статика. А как сделать:
Код
У Вас в ящике 10 не прочитанных писем
У Вас в ящике 1 не прочитанное письмо
Свежих писем нет

Для строки в окошке с новыми сообшениями?

Сделал переводчик, умеет форматировать выражения, началось как нечто универсальное, но в итоге для выражений использую PHP. На входе XML, который компилиться в PHP (сохраняеться в кеше пока исходник не измениться), работает шустро, но идеологически не "совершенство". Пример date.ru.xlp:

Код
<?xml version="1.0" encoding="UTF-8"?>
<package language="ru">
    <meta>
        <info key="author">Sardar</info>
        <info key="date">2006/01/05</info>
    </meta>
    <magic>
        <object name="months">
            <arguments>

                <argument type="integer" name="month" />
            </arguments>
            <body>
                <branch>
                    <case on="$month == 1"><echo>Января</echo></case>
                    <case on="$month == 2"><echo>Февраля</echo></case>
                    <case on="$month == 3"><echo>Марта</echo></case>

                    <case on="$month == 4"><echo>Апреля</echo></case>
                    <case on="$month == 5"><echo>Мая</echo></case>
                    <case on="$month == 6"><echo>Июня</echo></case>
                    <case on="$month == 7"><echo>Июля</echo></case>
                    <case on="$month == 8"><echo>Августа</echo></case>
                    <case on="$month == 9"><echo>Сентября</echo></case>

                    <case on="$month == 10"><echo>Октября</echo></case>
                    <case on="$month == 11"><echo>Ноября</echo></case>
                    <case on="$month == 12"><echo>Декабря</echo></case>
                    <case on="true"><error>Unknown month argument</error></case>
                </branch>
            </body>

        </object>
        
        <object name="date-medium">
        <!-- Форматирование даты, где есть число, месяц словом и год -->
            <arguments>
                <argument type="integer" name="day" />
                <argument type="integer" name="month" />
                <argument type="integer" name="year" />
            </arguments>
            <body>

                <expression>$day</expression>
                <echo> </echo>
                <invoke object="months">
                    <argument>$month</argument>
                </invoke>
                <echo> </echo>
                <expression>$year</expression>

                <echo> г.</echo>
            </body>
        </object>
    </magic>
</package>


Писал ещё в прошлом году, будет время доработаю. В идеале языковой пакет должен быть кратким, менее "имеративным" и заточенным именно под форматирование (я не лингвист, ориентируюсь на русский/английский/голландский).


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wowa
Дата 5.9.2006, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Sardar @  4.9.2006,  23:22 Найти цитируемый пост)
А как сделать:

А так делать не надо smile Вполне можно обойтись: "Непрочитанных писем: 0(1, 2....)". И так имхо всегда - можно найти замену. Зачем себя нагружать на пустом месте? smile
PM WWW   Вверх
sergejzr
Дата 5.9.2006, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Вот, состряпал статический вариант. Распаковываем, открываем index.xml  и пляшем оттуда. Работает только страница логина. Какие данные введёте - пофиг. Главное - поиграйте со страницей, посмотрите исходники smile. Мне лично очень понравилось, как получилось. Особенно обратите внимание на размер файлов ХМЛ smile (Например для страницы с логином)

Цитата(Sardar @  4.9.2006,  22:22 Найти цитируемый пост)
Для строки в окошке с новыми сообшениями?

Там в  afterlogin.xml Попробуй поменять в нём параметр  mails. Думаю, без проблем разберёшься, а ро я там тонкостей уже не помню. Полгода прошло.. На крайняк для первых 10 значений для всех языков дифференциировать..

Добавлено @ 01:10 
Цитата(Wowa @  4.9.2006,  22:54 Найти цитируемый пост)
А так делать не надо smile Вполне можно обойтись: "Непрочитанных писем: 0(1, 2....)". И так имхо всегда - можно найти замену. Зачем себя нагружать на пустом месте? smile 

В принципе согласен, но ведь нет предела совершенству smile)))

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  localisation_static.zip 44,10 Kb


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
IZ@TOP
Дата 5.9.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Цитата(sergej.z @  5.9.2006,  00:50 Найти цитируемый пост)
Я делал локализацию для форума на яве. Мне вариант с ХМЛ очень понравился. Ставим в заголовке время жизни файла на бесконечность и клиент его подгрузит один раз в жизни. 

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


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Sardar
Дата 5.9.2006, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Цитата(Wowa @  4.9.2006,  23:54 Найти цитируемый пост)
Вполне можно обойтись:

Продукт отличаеться от хорошего продукта мелочами smile

Цитата(Wowa @  4.9.2006,  23:54 Найти цитируемый пост)
Зачем себя нагружать на пустом месте?

По сути выделить минимум операций необходимых для построения и форматирования строки, затем это собираеться автоматом в PHP, который перестраиваеться как только перестроился языковой пакет. Также устроены все шаблонизаторы с "компиляцией в PHP", это не кажеться чем то особо сложным или навороченным ведь? smile

Цитата(sergej.z @  5.9.2006,  00:09 Найти цитируемый пост)
На крайняк для первых 10 значений для всех языков дифференциировать..

Цитата(sergej.z @  5.9.2006,  00:09 Найти цитируемый пост)
Попробуй поменять в нём параметр  mails

С одной стороны не реюзабельно, положить подобное в отдельный языковой пакет позволит держать некую либу форматирования, например для дат и не зависить от системной локали. Также можно будет делать общий .xsl шаблон для всех языков (единая шкурка), что ИМХО удобно. С другой стороны если скзать честно, почти все мои остальные языковые пакеты содержат только статику...  smile  а когда оно в шаблоне, то выглядит логично, сам шаблон разбиваем по модулям, но получиться отдельный скин для каждого языка, а добавление языка будет сложным, нужно отследить все строки...

sergej.z, ещё не переубедил, но смутил smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
IZ@TOP
Дата 5.9.2006, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Цитата(Sardar @  5.9.2006,  12:26 Найти цитируемый пост)
С одной стороны не реюзабельно, положить подобное в отдельный языковой пакет позволит держать некую либу форматирования, например для дат и не зависить от системной локали. Также можно будет делать общий .xsl шаблон для всех языков (единая шкурка), что ИМХО удобно. С другой стороны если скзать честно, почти все мои остальные языковые пакеты содержат только статику...  smile  а когда оно в шаблоне, то выглядит логично, сам шаблон разбиваем по модулям, но получиться отдельный скин для каждого языка, а добавление языка будет сложным, нужно отследить все строки...

Я против хранения шаблонов на разных языках - представить боюсь что будет если понадобиться что-то поменять в шаблоне!!! Этож нужно будет их все переделывать  smile 


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 5.9.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(IZ@TOP @  5.9.2006,  10:05 Найти цитируемый пост)
Я против хранения шаблонов на разных языках - представить боюсь что будет если понадобиться что-то поменять в шаблоне!!! Этож нужно будет их все переделывать  smile  

Да, я тоже против! 

С ХМЛ одна траблочка. Гр%$&анная Опера не подгружает ХМЛ с помощью document(). (возможно в новых версиях они исправили, не смотрел).
В этом случае предлагаю словарь грузить в главный ХМЛ. В принципе будет не намного страшнее, хотя и не так красиво. Если контент гзипится, то на трафф нагрузка всё равно будет в разы меньше, чем в ХТМЛ.

ПС: Кстати в моём примере автоматически поддерживаются несколько скинов. В ХМЛе просто стоят параметры, откуда брать картинки, css итд. Короче говоря там почти всё (или всё smile ) в плане фрэймворка готово. Новые страницы очень легко пишуться. 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
IZ@TOP
Дата 5.9.2006, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Цитата(sergej.z @  5.9.2006,  13:20 Найти цитируемый пост)
С ХМЛ одна траблочка. Гр%$&анная Опера не подгружает ХМЛ с помощью document(). (возможно в новых версиях они исправили, не смотрел).

А еще Firefox не знает что такое disable-output-escaping у xsl:value-of. Но это мелочи. Для оперы можно парсить все на стороне сервера. Благо оперой пользуются не так много человек (надеюсь  smile ). В случае с Firefox беспокоиться не стоит если все документы будут валидным XML/XHTML'ем.

На счет стандарта шаблонов: если кто хочет описать свою идею (некий стандарт построения), давайте в отдельный топик. Разумеется с учетом мультидоменности - чтобы были общие шаблоны для всех, приватные для отдельных сайтов и т.п.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 8.9.2006, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(IZ@TOP @  5.9.2006,  10:48 Найти цитируемый пост)
На счет стандарта шаблонов: если кто хочет описать свою идею (некий стандарт построения), давайте в отдельный топик. Разумеется с учетом мультидоменности - чтобы были общие шаблоны для всех, приватные для отдельных сайтов и т.п. 

http://forum.vingrad.ru/index.php?showtopi...st&p=847773


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Wowa
Дата 8.9.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Ребята, я залил на SVN папку sys_admin. В ней находится написанная мною утилита для создания языковых файлов в любом формате(там шаблонная система). На ней я уже много проектов сделал. Вполне удобно.

Если у кого-то есть варинты лучше - то пишите. Иначе же прошу всех ознакомиться с моей утилитой и начать ее использовать как можно быстрее. Обязательно прочтите в этой папке файл readme.txt. Там инструкции по установке.


P.S. На php код внутри - особо не смотрите. Я писал давно, когда еще многого не знал smile Но работает все хорошо.
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Vingrad CMS | Следующая тема »


 




[ Время генерации скрипта: 0.1348 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.