Swing + Multilingual Database

Тема в разделе "Lotus + Java + LS2J", создана пользователем nvyush, 18 окт 2010.

  1. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Здравствуйте, все!
    Собственно вопрос в теме. Хотелось бы хранить локализованные тексты в одном месте.
    На LS делал библиотеки со строковыми константами, строку на нужном языке получал через Execute({Use "} + имя_библиотеки + {" : ResultStringForExecute = } + имя_константы), где ResultStringForExecute — глобальная переменная. Как в java получить данные LS библиотеки не представляю, кроме как через dxl (но это не интересно). Использовать настроечные документы тоже проблематично — они при наследовании дизайна не наследуются. Создавать java-библиотеки и "дёргать" через LS2J — подозреваю, будут тормоза. У кого ещё какие есть идеи?
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.078
    Симпатии:
    300
    есть Shared Resources->Files
    там же Style Sheets
    детали программного доступа не помню, но он точно есть :)

    Добавлено: в конце-концов - можно просто в форму забить (в поле) и делать её композе/ComputeWithForm/Save (проверяя присутствие и время) в БД и перезаписывая новые настройки (порядок во вьюшке, по времени)
    для случая с небольшим списком
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.078
    Симпатии:
    300
    на какой стадии - если вынести в инициализацию либы....
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Вспомнил про такой элемент дизайна, как outline. Легко получается по имени, имеет коллекцию энтрисов со свойствами label и alias. Вот только не помню, какое ограничение по "ёмкости".

    Добавлено
    Думаю, хватит.
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Поэкспериментировал с outline — всё получается, но "кушает" много памяти на запись. Попробовал использовать папку — дописывать в документ папки два мульти-поля, одно с названиями, другое — с псевдонимами. Получаю документ так: db.getDocumentByUNID(db.getView("viewName").getUniversalID());
    Для двадцати записей словарь на outline "весит" 4,6к, на папке — 3,3к (поле подписи в обоих случаях около 1,7к).
    Смущает только индексёр — ему "лишние" папки не помешают, если им установить ручное обновление?
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Вопрос вдогонку. Если в базе создать пустые папки с ручным обновлением индекса и использовать их просто как документы (хранить в них нужные поля), что скажет товарищ индексёр? Хочу использовать их типа как настроечные документы, но чтоб копировались при обновлении дизайна. Знаю, что подобным образом используют иконку базы. Хотел было использовать аутлайны или подформы, но у них не оказалось свойства UniversalID.
     
  7. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Чет сурово как то дла настроечных документов;)
    Библиотека с параметрами Const неустраивает?
     
  8. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Хоть, думаю, что индексер особо не будет на такие папки реагировать, идея с папками для хранения настроек что-то мне не нравится...
    Фиксированные UNID'ы ещё есть в документах About This Database и Using This Database, только их надо сначаоа вручную создать..

    Ага..
    Меня как-то профайлы вполне устраивают ))
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Хочу использовать единый источник (по сути — словарь) и для LS и для Java. Хранить там, например, пары значений название поля—подпись. Для каждой формы свой набор словарей под разные языки. Также словари сообщений.
    Не UNID, а NoteID (проверено, юниды разные).
    Что касается профайлов, то в них у меня хранятся именно настройки, в шаблоне настройки могут отличаться от рабочей базы и наследование профайлов может привести к нежелательным последствиям. А как выборочно запретить наследование профайлов, я не представляю.
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Какое такое наследование профайлов? Отколи это они наследуются из шаблона? Разве что в новой БД, создаваемой из шаблона... Не помню во всяком случае наследования профилей...
    Если надо жестко завязаться, то почему не на картинку приложения или About This Database и Using This Database?

    Если именно к этим что-то мешает, то всегда можно создать документ и впихнуть ему требуемый унид!
     
  11. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    p2.JPG
    (клиент 8.0.1)
    Не проверял, влияет ли этот флажок на наследование профайлов, в любом случае мне это не подходит
    Имеется главный шаблон с общим функционалом, от него наследуется дизайн шаблонами рабочих баз, от которых наследуется дизайн рабочими базами. Как рабочим базам унаследовать специфичные Using This Database от своих шаблонов и одновременно общий Using This Database от главного шаблона?
    Если речь об обычном документе, то они не наследуются. Если речь о документе дизайна, то
    Можно, конечно, жёстко прописать UNID в коде, но какова будет читабельность такого кода?

    А вообще обсуждение пошло не в ту степь. Меня в данной теме интересовал лишь вопрос, не будет ли такая реализация (порядка 10-20 фиктивных папок) проблемой для индексера. Обсуждение собственно реализации прошу перенести сюда:
    Swing + Multilingual Database
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Не понял, наследуются - не подходит, не наследуются - не подходит )
    Есть процесс обновления, в него надо закладывать обновление требуемых настроечных документов.
    Какая разница как будет читаться код, если это решение устраивает тебя и пользователей? В мире еще много невероятного.
     
  13. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Спасибо что напомнили, перепроверил - действительно.
    Ещё фиксированный ID у документа свойств БД.

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

    Добавлено:
    В 8.0.x этот флажок точно не работал как "наследование профайлов как элемент дизайна", об этом много писали.. В последних версиях - не пробовал (не нужно было), - не знаю.
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Меня не устраивает ;). Это же застрелиться можно, такое сопровождать.
    Вот именно это и нужно. Жаль, но у (под)форм и аутлайнов нет свойства UniversalID. Сейчас по наводке Akupaka решил прописывать в псевдониме аутлайна его UNID (опасался, что при наследовании дизайна UNID не сохраняется, оказалось — зря), тогда ноту можно получать по имени вызовом
    Код (LotusScript):
    Set doc = db.GetDocumentByUNID(db.GetOutline("OutlineName").Alias).
    Модераторы, перенесите, пожалуйста, посты, начиная с #17 по этот в тему Swing + Multilingual Database
     

Поделиться этой страницей