Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Локализация и кодировка системы 
:(
    Опции темы
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   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Vingrad CMS | Следующая тема »


 




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


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

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