crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Зацените класс arkStringRes, Хочу знать мнение форумчан
sagifire
  опции профиля:
сообщение 5.11.2008, 16:38
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 5.11.2008
Пользователь №: 412

Спасибо сказали: 0 раз(а)




Репутация:   1  


arkStringRes - класс предназначений для хранения разных подстановок строковых переменных хранимых в xml файлах.

Сайт с описанием!

Жду коментов :rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.11.2008, 16:50
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


что-то я из описания нибильмеса не понял :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sagifire
  опции профиля:
сообщение 5.11.2008, 17:12
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 5.11.2008
Пользователь №: 412

Спасибо сказали: 0 раз(а)




Репутация:   1  


Просто говоря это аналог tr()

Подстановки хранятся в файлах ресурсов (xml), которые подключаются при помощи метода addResource().
При подключении фалов подстановки не считываются в память, а только формируется список соответствий групп подстановок с файлами. Подстановки загружаются в память только из конкретной группы при помощи метода setGroup(). Получить значение можно методом getValue()

класс можно использовать для интернационализации программ
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.11.2008, 17:20
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


на прогорге вот зделал товарищь TranslationManager для переключения языка интерфейса на лету, это я понимаю зачем нужно. А про твой компонент пока области применения мне неособо понятны.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 5.11.2008, 17:32
Сообщение #5


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(sagifire @ 5.11.2008, 17:12) *
класс можно использовать для интернационализации программ
Все знают для чего используется QObject::tr потому, что об этом написано в мануале. Я вот после прочтения такого описания не совсем понял, чем он лучше tr?

sagifire, для того, чтобы донести до конечного пользователя свой класс, нужно описать подробно, желательно с примерами и схемами:
1. что он из себя представляет?
2. как и для чего он используется?
3. как он взаимодействует с кодом?
4. чем его использование лучше чем tr?
и прочее...

Ты не подумай, что мы придираемся, просто хотелось бы подробностей и не по чуть-чуть выуживать из тебя, а чтобы ты сам все описал... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sagifire
  опции профиля:
сообщение 5.11.2008, 18:02
Сообщение #6


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 5.11.2008
Пользователь №: 412

Спасибо сказали: 0 раз(а)




Репутация:   1  


Цитата(ViGOur @ 5.11.2008, 16:32) *
Я вот после прочтения такого описания не совсем понял, чем он лучше tr?


Кстати я не знал о TranslationManager когда создавал топик :)
Это моя попытка сделать удобный механизм для смены языка интерфейса без перезапуска программы.

Интересно узнать твоё мнение о этом мануале.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 5.11.2008, 18:10
Сообщение #7


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(sagifire @ 5.11.2008, 18:02) *
Интересно узнать твоё мнение о этом мануале.
Я его читал ещё до написания прошлого поста. :)

Цитата
arkStringRes - класс предназначений для хранения разных подстановок строковых переменных.
что значит подстановка в данном контексте?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sagifire
  опции профиля:
сообщение 5.11.2008, 18:30
Сообщение #8


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 5.11.2008
Пользователь №: 412

Спасибо сказали: 0 раз(а)




Репутация:   1  


Подстановка - єто замена значения (или вариант значения)
Например у нас есть ресурс с ключом my_key
И есть две группы в которых ресурс имеет разное значение
для grp1 єто значение_групи1
для grp2 єто значение_групи2

Тогда можно получить этих два значения следующим способом:

arkStringRes myres; // создаем класс

myres.addResource("res.xml"); // подключаем ресурс

myres.setGroup("grp1"); // будем получать значения из первой группы (grp1)
btnOk.setText(myres[my_key]); // вот так получаем значение, текст батона теперь "значение_групи1"

myres.setGroup("grp2"); // будем получать значения из первой группы (grp2)
btnOk.setText(myres[my_key]); // текст батона теперь "значение_групи2"

Содержание res.xml:

<?xml version="1.0"?>
<a>
<arkStringResource group="grp1">
<record key="my_key">
значение_групи1
</record>
</arkStringResource>
<arkStringResource group="grp2">
<record key="my_key">
значение_групи2
</record>
</arkStringResource>
</a>

Особенность класса в том что в он содержит в памяти только значения для одно группы а не для всех. При смене группы класс будет заново загружать значения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.11.2008, 18:57
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(sagifire @ 5.11.2008, 21:30) *
Например у нас есть ресурс с ключом my_key
И есть две группы в которых ресурс имеет разное значение
для grp1 єто значение_групи1
для grp2 єто значение_групи2
вот эти-то слова и не понятны, что за ресурс? делай конкретный пример.

Я, например, в начале думал, что речь идет о таких вещах:

Имеется php-файл:
<html>
<body>
{$HELLO}
</body>
</html>

надо подставить вместо переменной {$HELLO} значение переменной из программы ....

и так далее пошло описание как в коде програмы этот финт выкинуть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sagifire
  опции профиля:
сообщение 6.11.2008, 10:37
Сообщение #10


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 5.11.2008
Пользователь №: 412

Спасибо сказали: 0 раз(а)




Репутация:   1  


Да, мануал подкачал :hang1: . Буду переделывать

Попробую ещё раз объяснить, но попроще.

Класс arkStringRes представляет собой аналог QHash <QString, QString> c возможностю загрузки группы записей из файла XML.
Я постарался сделать загрузку записей максимально удобной. Она состоит из двух этапов:

1 - Подключение файла XML методом addResource(). На этом этапе определяется какие группы записей входят в файл и создаться ассоциации группа -> файл. Ассоциации могут быть один к много и наоборот много к одному, иначе говоря одна группа может бить в двух или больше файлах и в одном файле может быть много групп.

2 - Загрузка записей одной из групп производится методом setGroup(). Класс просматривает в каких файлах размещена группа записей и загружает их в память. Теперь они доступны через метод getValue().

В разных группах могут быть записи с разным набором ключей.

Область применения:
Везде где нужен QHash <QString, QString> с возможностю загрузкы записей из файла. Например чтение настроек программ.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.4.2024, 13:21