OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 29 Март, 2024 02:54

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 206 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 11  След.
Автор Сообщение
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 07:12 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Kemet писал(а):
Насколько я помню, в репозитории приложения можно указать внешнее хранилище локализации, поэтому всякие такие общие штуки, типа кнопок, меню и т.д. лучше помещать в общее хранилище. Я не помню, можно ли указывать несколько внешних хранилищ и есть ли возможность в случае отсутствия локализации в репозитории приложения дёрнуть хранилище по умолчанию. Но было бы правильно если бы именно так и работало, ну и прописывать в конфигурации текущую локализацию нужно.
Для текстов элементов указывается и имя хранилища и имя словаря и можно указать их любые.
Сейчас написано так:
Код:
<Caption>::StartMenu:ButtonTitles:STutorial</Caption>
Для стандартных кнопок типа Ok, Cancel... конечно имеет смысл описать их перевод в одном месте, а так основные тексты в каждом приложении, видимо, лучше хранить в отдельных репозиториях или словарях, тогда при возможной последующей модификации приложения надо править лишь один отдельный репозиторий/словарь.
Sven Stauber. A2 Component Framework писал(а):
The reasoning behind supporting multiple dictionaries within a single repository is that repositories can contain an arbitrary number of possibly independent components that support localization. Using separate dictionaries for each component does not create an artificial dependency on other components so that copying or moving components into different repositories remains simple. Additionally, dictionaries of components that are not used must not be loaded into system memory. It is also important for third-party component implementers to be able to implement standalone components that are not dependent on the presence and the content of a system-wide dictionary.
Синтаксис приводится только такой:
Код:
Simple Translation:  “::” + RepositoryName + “:” + DictionaryName + “:” + Word
Complex Translation:  “::” + RepositoryName + “:” + DictionaryName + “:” + String
whereas each occurrence of “:” x “:” in String will be replaced by the translation of x.
Но насчёт режима Complex Translation это нежизненно, в каждом языке свои правила чередования слов в предложении и компоновать фразы из кусочков не хорошо. Лучше переводить законченные фразы, а потом подставлять в них параметры. Для этого нужна функция наподобие дельфишной функции Format
Разве, что использовать режим Complex Translation если надо слепить несколько фраз в каком-то длинном-длинном сообщении. Тогда да.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 08:51 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Kemet писал(а):
ну не используется а2 в качестве десктопа)))
Да, для десктопа с большой натяжкой... Может, пока. А в качестве удобной среды разработки уже вполне можно позиционировать!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 09:46 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Если бы там была полноценная поддержка VNC и RDP... то шансы бы повысились.
Коллега работает над полноценной поддержкой Юникода, включая лексикографическое сравнение. Что тоже, думаю, может сыграть положительную роль в популяризации а2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 09:49 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Kemet писал(а):
Если бы там была полноценная поддержка VNC
Так есть же VNC. Или версия старая?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 09:50 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
примитивный концепт


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 15:31 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
Борис Рюмшин писал(а):
Сейчас объективно сложилось три главных диалекта: Компонентный Паскаль, Активный Оберон и Оберон-07/13 (как некоторое очень гибкое изделие). Всё остальное можно рассматривать уже как историю. Хотя, чую, Олег со мной категорически не согласится (да и не только).
Борис, а почему именно Оберон-07/13 ? Разве нет более свежей ревизии 07/16 ?

Если под Олегом тут понимаюсь я, то вполне соглашусь, чего там. Я именно в эту сторону и двигаю Ofront+. А поддержка Оберона и Оберона-2 в нём уже реализована, и выпиливать её как бы смысла нет, пускай будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 15:53 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Oleg N. Cher писал(а):
Борис, а почему именно Оберон-07/13 ? Разве нет более свежей ревизии 07/16 ?

Если под Олегом тут понимаюсь я, то вполне соглашусь, чего там. Я именно в эту сторону и двигаю Ofront+. А поддержка Оберона и Оберона-2 в нём уже реализована, и выпиливать её как бы смысла нет, пускай будет.

Да, Revised Oberon.
Да, других активных Олегов тут вроде нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 19:54 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
Да, с rdp можно было-бы подумать о тонком клиенте на базе а2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 19:58 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
Как понимаю, штатная локализация только для виджетов, а как локализовать, например, сообщения об ошибках, и прочая и прочая. В delphi есть resourcestrings, что позволяет автоматизировать и упростить локализацию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 20:08 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
2Сергей Зорин
А ваши виджеты на opengl заведутся в оригинальной а2?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 20:22 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Baikal писал(а):
Как понимаю, штатная локализация только для виджетов, а как локализовать, например, сообщения об ошибках, и прочая и прочая. В delphi есть resourcestrings, что позволяет автоматизировать и упростить локализацию.
Код:
      PROCEDURE Translate(value: Strings.String): Strings.String;
      VAR
         res : WORD;
         temp, word : Strings.String;
         dictionary : Repositories.Dictionary;
      BEGIN
         IF value # NIL THEN
            Repositories.GetTranslationInfo(value^, dictionary, word, res);
            IF (dictionary # NIL) & (word # NIL) THEN
               temp := dictionary.Translate(word, languages);
               IF (temp # word) THEN
                  RETURN temp
               END
            END
         END;
         RETURN NIL
      END Translate;
На вход принимается стока вида "::Repository:Dictionary:Word", на выходе перевод


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 20:32 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
Слишком много придется писать, ав оматизировать бы процесс


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 21:57 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Baikal писал(а):
Да, с rdp можно было-бы подумать о тонком клиенте на базе а2.
Думаю, допилить VNC до приемлемого состояния будет попроще. И VNC - открытый стандарт. Только-что проверил, работает. Протокол версии 3.3. Уже вышли протоколы версий 3.7 и 3.8. Насколько я понял, небольшие отличия лишь в процедуре хендшейка и новые способы кодирования передаваемых пакетов (rfc6143).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Вторник, 16 Апрель, 2019 22:18 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
Не, то, как оно работает, не пригодно для промышленного использования, если развивать протокол, то с нуля писать. Но он не сильно полезен для тонкого клиента, rdp намного полезней в этом плане. Здесь достаточно необходимого подмножества.
Нужно подумать. Если Зорин поделится виджетами на opengl, то после завершения проекта с sql-сервером можно заняться бизнес-платформой, на которой клепать всякие учетные/экономичские системы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Среда, 17 Апрель, 2019 05:45 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Baikal писал(а):
2Сергей Зорин
А ваши виджеты на opengl заведутся в оригинальной а2?
Там всё очень сложно с лицензией и пока не удается договориться с разработчиком, чтобы выкупить за вменяемые деньги.
Но я могу поискать свою поделку, когда-то я тоже пытался сделать на opengl, но там всё очень просто и классический интерфейс, в отличии от. Концепт )))) Может где и завалялось, как время появится- поищу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Среда, 17 Апрель, 2019 05:46 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Baikal писал(а):
можно заняться бизнес-платформой
Я даже боюсь представить, сколько на это нужно времени и ресурсов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Среда, 17 Апрель, 2019 06:52 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Kemet писал(а):
Baikal писал(а):
2Сергей Зорин
А ваши виджеты на opengl заведутся в оригинальной а2?
Там всё очень сложно с лицензией и пока не удается договориться с разработчиком, чтобы выкупить за вменяемые деньги.
Но я могу поискать свою поделку, когда-то я тоже пытался сделать на opengl, но там всё очень просто и классический интерфейс, в отличии от. Концепт )))) Может где и завалялось, как время появится- поищу.
А если заменить Windows окно, которое в А2 вначале создаётся на OpenGL окно (Windows окно с контекстом рендеринга)? И соответственно модуль Rastr переделать под вывод через OpenGL. Ведь скорость прорисовки должна существенно вырости. Бутылочное горлышко существующего интерфейса - программный блендинг прямоугольников.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Среда, 17 Апрель, 2019 07:47 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Вот, по-сути, весь драйвер дисплея. Для начала сделать здесь вывод через OpenGL. Меня уже обрадовал тот факт, что FromMemory - просто заглушка :D
Код:
   Display = OBJECT (Displays.Display) (* only one instance of this object allowed ! *)

      PROCEDURE Transfer*( VAR buf: ARRAY OF CHAR;  ofs, stride, x, y, w, h, op: LONGINT );
      BEGIN

         IF letWindowsHandleTheBuffer THEN
            IF op = Displays.set THEN
               ToMemory( root, buf, ofs, stride, x, y, w, h );  ToWindow( root, x, y, w, h, root.dx, root.dy );
            ELSE FromMemory( root, buf, ofs, stride, x, y, w, h );
            END;
         ELSE
            IF root.bmadr = 0 THEN GetDC( root ) END;
            InitFrameBuffer( root.bmadr, disp.width * disp.height * format, disp.width * disp.format);  Transfer^( buf, ofs, stride, x, y, w, h, op );
            IF Displays.reverse THEN
               IF op = Displays.set THEN ToWindow( root, disp.width-x-w,disp.height-y-h, w, h, root.dx, root.dy );  END;
            ELSE
               IF op = Displays.set THEN ToWindow( root, x, y, w, h, root.dx, root.dy );  END;
            END;
         END;

      END Transfer;

   END Display;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Среда, 17 Апрель, 2019 08:12 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Ярослав Романченко писал(а):
А если заменить Windows окно, которое в А2 вначале создаётся на OpenGL окно...
Ну оно так и работает +графика с антиалиасингом с бакэндом opengl. Но пока опубликовать не могу. Там же ценное не использование opengl, а уникальный дизайн, хотя это даже не дизайн, а уникальная идея ( ну как ms ribbon - это же не дизайн, он вторичен ( ribbon тоже реализован )), за которую хотят много зеленых рублей, чтобы передать исключительные права.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: A2. Новая глава
СообщениеДобавлено: Среда, 17 Апрель, 2019 08:43 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Для контекстных меню локализация работает без сучка, без задоринки :)
Вложение:
WMClok ukr.png
WMClok ukr.png [ 21.45 КБ | Просмотров: 2956 ]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 206 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 11  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB