papyrussolution / OpenPapyrus

Sophisticated ERP, CRM, Point-Of-Sale, etc. Open source now. This system is developed since 1996.
http://www.petroglif.ru
Other
237 stars 65 forks source link

What font does it support? #6

Open minhtri22 opened 5 years ago

minhtri22 commented 5 years ago

font I used windows 10 64bit

papyrussolution commented 5 years ago

O! It is awfull :) We have an experimental iterface translated to english. And will include it in release in nearest time specialy for you as soon as you the first who have asked about it. Thank you for interisting. You are seeing now native russian interface in windows-1251 codepage.

minhtri22 commented 5 years ago

Thank you for your reply. Btw, is there any language packages to localize?

minhtri22 commented 5 years ago

For those who need to display font correctly like me font-3

f-2 Enjoy!

jmalkema commented 5 years ago

ppifc_i_c_not_found Hello,

Compiling (GIT version) gives three errors. Can’t find files: ppifc_i.c and ppifc_i.h

My configuration: Windows 10, X86, Vs2017, MSI laptop

If Setting “Beta Use Unicode for worldwide language support” switch then it will give 772 compiling errors.

We have an experimental iterface translated to english. And will include it in release in nearest time specialy for you as soon as you the first who have asked about it.

Can I get the English translated version of Openpapurus? Maybe I can translate it to Dutch too :-)

Greetings Jan Marco

papyrussolution commented 5 years ago

Hello. Thank you for attention. I'll try to reproduce the problem and answer a bit later.

papyrussolution commented 5 years ago

I have put subdir \BASE\INIT_DL6\ into the repository. This problem has been resolved (do 'git pull'), But there will be probably other ones. Before building it'll be good to install OpenPapyrus-Server into directory OpenPapyrus\ppy and then OpenPapyrus-Client (both are in Releases). I'll write by the way short build-instruction in few days. It seems that the translation need to be forced :(

jmalkema commented 5 years ago

Thanks, Compiled (X86) github version works :-) Openpapyrus_screendump_github_compiled_version_01

papyrussolution commented 5 years ago

There was the solving of this problem above (https://github.com/papyrussolution/OpenPapyrus/issues/6#issuecomment-450111694).

jmalkema commented 5 years ago

There was the solving of this problem above (#6 (comment)).

If I want to compile with "Beta_Use_Unicode UTF8 for worldwide language support" I get errors:

Screendumpvs2017_with_beta_use_unicode_on_for_worldwide_language_support

Is work around to compile without Beta_Use_Unicode_UTF8 and put Beta_Use_Unicode_UTF8 on, reboot computer. Then execute program?

jmalkema commented 5 years ago

This is the result from compile without Beta_Use_Unicode_UTF8 and I selected button Beta_Use_Unicode_UTF8 after compile/link, reboot computer. After reboot I execute the program (ppw.exe).

openpapyrus_with_beta_unicode_set_for_worldwide_language_support

papyrussolution commented 5 years ago

изображение

papyrussolution commented 5 years ago

изображение

papyrussolution commented 5 years ago

These 2 pictures are to resolve problem with list font

papyrussolution commented 5 years ago

What are your international settings (language)? I'll try to reproduce the problem at my comp.

jmalkema commented 5 years ago

These 2 pictures are to resolve problem with list font

I can't find the windows of the two pictures. I can't read Russian language.

What are your international settings (language)? I'll try to reproduce the problem at my comp. russian_language_selection

I can install Russian (Windows 10) language package. Would that solve the problem?

jmalkema commented 5 years ago

I put compiler (language) switch as POC: sdate_language_specification N.B. I use Google translate.

papyrussolution commented 5 years ago

Good day. I shall launch this night autotranslation to english and netherland languages. It'll translate the big deal of text. If all be ok then tomorrow or the second day i put results to github and you will be able to test it. This action does not allow to use system by foreign people directly, but will be the first real step toward this.

minhtri22 commented 5 years ago

Hey guys, long time not come back with this project. How about it so far?

jmalkema commented 5 years ago

Good evening.

I shall launch this night autotranslation to english and netherland languages.

Perfect.

t'll translate the big deal of text.

Excellent.

If all be ok then tomorrow or the second day i put results to github and you will be able to test it.

Are languages translations Ok? 

Greetings Jan Marco

papyrussolution commented 5 years ago

Hello, jmalkema and minhtri22! I had done it. Translation to en and nl works. But the quality of the translation is very very poor :( That is for experimental purpose only. To run with use the command line option /uilang:en or /uilang:nl (ppw.exe /uilang:en) Release with this option isn't still assembled (codes are there - in github), but will be ready at sunday night.

jmalkema commented 5 years ago

I had done it. Translation to en and nl works.

I am very happy with the result. :-)

But the quality of the translation is very very poor :(

I think there are two aspects:

1) I think there is static Russian text code still. How to change these static code in desired langues. 2) Improve manual the (automatic) translated langues texts.

That is for experimental purpose only.

I like to do experimental tests.

To run with use the command line option /uilang:en or /uilang:nl (ppw.exe /uilang:en)

Both (ppw.exe /uilang:en) and (ppw.exe /uilang:nl) works. :-) openpapyrus_screendump_nederlands_01

jmalkema commented 5 years ago

I selected button Beta_Use_Unicode_UTF8 -> reboot computer -> I get the compile errors on (the next) source lines:

sdate.cpp: static const char monthNames[NUM_MONTHES] = { static const char P_WeekDays = {
pBuf[2] = '�'; rBuf.Trim(2).CatChar('�');

stype.cpp // {MKSTYPE(S_UINT, 1), "uint8,uchar", "����� ��� �����"}, // {MKSTYPE(S_UINT, 2), "uint16,unsigned short", "����� ��� �����"}, // {MKSTYPE(S_UINT, 4), "uint32,ulong,uint,unsigned long,unsigned int", "����� ��� �����"}, // {MKSTYPE(S_FLOAT, 4), "float", "�����"}, // {MKSTYPE(S_FLOAT, 8), "real,double,N", "�����"}, // {MKSTYPE(S_FLOAT, 10), "long double", "�����"}, // {T_DATE, "date,LDATE,D", "����"}, // {T_TIME, "time,LTIME,T", "�����"}, // {T_BOOL, "boolean,bool,logical", "����������"}

sc_ggrp.cpp WaitPercent(pFn, ++recno, numrecs, "������� ����������� �������� �����");

sc_order.cpp //WaitPercent(pFn, recno+1, stat.NumRecs, "������ ����������"); //WaitPercent(pFn, recno+1, stat.NumRecs, "������ ����� ����������"); //WaitPercent(pFn, recno+1, stat.NumRecs, "������ ��������������");

sc_cli.cpp WaitPercent(pFn, recno, numrecs, "������� ����������� ��������"); //WaitPercent(pFn, recno+1, stat.NumRecs, "������ ����� ��������������"); //WaitPercent(pFn, i+1, TempList.getCount(), "������� �������� ����������");

sc_todo.cpp WaitPercent(pFn, i+1, IdAsscList.getCount(), "������� ������� ����������"); //WaitPercent(pFn, recno, numrecs, "������� ���������� ������");

sc_goods.cpp //WaitPercent(pFn, recno, numrecs, "������� ����������� �������"); WaitPercent(pFn, recno, numrecs, "������� ����������� �������");

stcp.cpp temp_buf.Z().Cat("������� �����").Space().CatChar('').Cat("soobolev@yandex.ru").CatChar('').Transf(CTRANSF_OUTER_TO_UTF8); //temp_buf.Z().Cat("������� �����").Space().CatChar('').Cat("sobolev@petroglif.ru").CatChar(''); //temp_buf.Comma().Cat("������� �������").Space().CatChar('').Cat("papyrussolution@gmail.com").CatChar(''); //temp_buf.Z().Cat("�������� ������ ��� �������� ������������ ������������ ���������. ���!").Transf(CTRANSF_OUTER_TO_UTF8);

Amc100.cpp // buf[1] = '�'; // buf[2] = '�'; // buf[3] = '�'; // buf[4] = ' ';

Nmbtotxt.cpp static const char * zero_word = "����";

Synccash.cpp // THROW(ArrAdd(Arr_In, DVCPARAM_TEXT, (flags & PRNCHK_RETURN) ? "������� �������" : "�������"));

palmexch.cpp //WaitPercent(pFn, crecno+1, stat.NumRecs, "������ ������ ������");

ie_goods.cpp // TempBuf.ReplaceChar('�', '�'); // TempBuf.ReplaceChar('�', '�');

BnkSberbank.cpp // {SBRBNK_ERR_99, "��������� ������� � ��������, ���� ���������� ������� ��������� ���-����"}, // {SBRBNK_ERR_361, "��������� ������� � ����� �����. ��� �� ��������. ���� ���������� ������� ����� �������"}, // {SBRBNK_ERR_362, "��������� ������� � ����� �����. ��� �� ��������. ���� ���������� ������� ����� �������"}, // {SBRBNK_ERR_363, "��������� ������� � ����� �����. ��� �� ��������. ���� ���������� ������� ����� �������"}, // {SBRBNK_ERR_364, "��������� ������� � ����� �����. ��� �� ��������. ���� ���������� ������� ����� �������"}, // {SBRBNK_ERR_403, "������ ������ ��� ����� ���� (��������)"}, // {SBRBNK_ERR_518, "�� ��������� ����������� �������� ����"}, // {SBRBNK_ERR_521, "�� ����� ������������ ������� (��������)"}, // {SBRBNK_ERR_2000, "�������� �������� �������� ������� ������. ������ ��������� ������� � �� ��������� ��������������� ������ ������, � �� ��������� ��� ��� ��������� ������"}, // {SBRBNK_ERR_2002, "������ ������� ����� ������ ���. ����� �������"},
// {SBRBNK_ERR_4100, "��� ����� � ������ ��� ��������� ��������. ��������, �� ��������� ������� ����� �������� ���� ������� � ��������� ��� ��������� ��������"}, // {SBRBNK_ERR_4101, "����� ��������� �� ����������������"}, // {SBRBNK_ERR_4102, "����� ��������� �� ����������������"}, // {SBRBNK_ERR_4103, "������ ������ � ����� �����"}, // {SBRBNK_ERR_4104, "������ ������ � ����� �����"}, // {SBRBNK_ERR_4108, "����������� ������ ��� �������� ����� �����"}, // {SBRBNK_ERR_4110, "��������� ���������������� ����� ��������� (��������)"},
// {SBRBNK_ERR_4115, "������ ���� ��� ����� ���� ��������"}, // {SBRBNK_ERR_4116, "������� �������� 4 ��������� ����� ������ �����"}, // {SBRBNK_ERR_4117, "������ ��������� �� ����� ����"}, // {SBRBNK_ERR_4119, "��� ����� � ������"}, // {SBRBNK_ERR_4120, "� ������� ��� ����� KLK"}, // {SBRBNK_ERR_4121, "������ �������� ��������� ���������"}, // {SBRBNK_ERR_4122, "������ ����� ������"}, // {SBRBNK_ERR_4123, "�� ��������� ��� ��������� ������"}, // {SBRBNK_ERR_4124, "�� ��������� ��� ������-������"}, // {SBRBNK_ERR_4125, "�� ����� ���� ���, � ��������� ���� ��������� ������"}, // {SBRBNK_ERR_4131, "���������� ��� ������� ��-2, �� � ������� ��������� ��������� ���������� ������ ��� ������� (��������� ��� �������� �����)"}, // {SBRBNK_ERR_4132, "�������� ��������� ������"}, // {SBRBNK_ERR_4134, "������� ����� �� ����������� ������ ������ �� ���������"}, // {SBRBNK_ERR_4135, "��� SAM-����� ��� ���������� ������ (��������)"}, // {SBRBNK_ERR_4136, "��������� ����� ������ ������ �������� � �������"}, // {SBRBNK_ERR_4137, "������ ��� ��������� ����� ������ ����"}, // {SBRBNK_ERR_4139, "� ���������� ��������� ��� �� ������ �������� �����, ���������� ��� ��������� ��������"}, // {SBRBNK_ERR_4140, "������� ������� ����� ��� ��� ����������� � ������� SUSPEND �� �������� ���������"},
// {SBRBNK_ERR_4143, "�� ��������� ������� ������ ����-����"}, // {SBRBNK_ERR_4144, "�������� ������ ����-����� �� ���������"}, // {SBRBNK_ERR_4145, "�������� ������ ����-����� �� ���������"}, // {SBRBNK_ERR_4146, "�������� ������ ����-����� �� ���������"}, // {SBRBNK_ERR_4147, "�������� ������ ����-����� �� ���������"}, // {SBRBNK_ERR_4148, "����� � ����-�����"}, // {SBRBNK_ERR_4149, "�� ����� ��� ������� ���������"},

// {SBRBNK_ERR_4203, "�� ��������� ��� �������� ��� ��������� ��� ��������� ��������"}, // {SBRBNK_ERR_4208, "������ ��������� ��������: �� ������� �� ����������� �����-���� ������ ��� ������� ���������"},

// {SBRBNK_ERR_4300, "������������ ���������� ��� ������� ������ sb_pilot. � ��������� ������ ������� �� ��� ��������� ���������"}, // {SBRBNK_ERR_4301, "�������� ��������� �������� � UPOS ������������ ��� ��������"}, // {SBRBNK_ERR_4302, "�������� ��������� �������� � UPOS ������������ ��� �����"}, // {SBRBNK_ERR_4303, "��� �����, ���������� �� �������� ���������, �� �������� � ���������� UPOS"},

// {SBRBNK_ERR_4306, "���������� sb_kernel.dll �� ���� ����������������"}, // {SBRBNK_ERR_4309, "�������� ������"}, // {SBRBNK_ERR_4310, "�������� ��������� �������� � UPOS ������������ ����2"},

// {SBRBNK_ERR_4314, "�������� ��������� �������� ��� �������� ������� �� ������������� �����, � ��������� ���� ����� ��������"}, // {SBRBNK_ERR_4332, "������ ������ �� ���������"}, // {SBRBNK_ERR_4333, "����������� ����������� ����� ����������"},

// {SBRBNK_ERR_4335, "����� �� ������� ��� �������� ����� �����"}, // {SBRBNK_ERR_4336, "�� �������� ��������� ������� �������� ��� ������"}, // {SBRBNK_ERR_4338, "������� �������� �� ����� ��������, �� ��������� ����� �������� �� �������"}, // {SBRBNK_ERR_4339, "������� ������������ �������� �� ����� ��������"}, // {SBRBNK_ERR_4340, "������ ���������� ���������� ����� ��������"}, // {SBRBNK_ERR_4341, "������� �������� �� ����� ��������, �� ��������� ����� ������� ����, ���� �� ��������� �������"}, // {SBRBNK_ERR_4404, "�������� ������� ������ �����"}, // {SBRBNK_ERR_4407, "�������� ������� ������ �����"}, // {SBRBNK_ERR_4419, "�� ������� ���������� ������������ ������"}, // {SBRBNK_ERR_4441, "�������� ������� ������ �����"},

// {SBRBNK_ERR_4451, "�� ����� ������������ �������"}, // {SBRBNK_ERR_4454, "����� ����������"},

// {SBRBNK_ERR_4457, "�������� �� ��������� �� ��������, ��������� � ������"}, // {SBRBNK_ERR_4458, "�������� �� ��������� �� ��������, ��������� � ���������� ���������"}, // {SBRBNK_ERR_4468, "�� ������� ���������� ������������ ������"}, // {SBRBNK_ERR_4475, "������ ������ ������ ��� ����� ����, � ������ �� ������������"}, // {SBRBNK_ERR_4496, "�������� ��������� ���������"}, // {SBRBNK_ERR_4497, "�� ������� ���������� ������������ ������"}, // {SBRBNK_ERR_4498, "�������� ��������� ���������"},

// {SBRBNK_ERR_5000, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5001, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5002, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5003, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5004, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5005, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5006, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5007, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5008, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5009, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5010, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5011, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5012, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5013, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5014, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5015, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5016, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5017, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"}, // {SBRBNK_ERR_5018, " �������� ��������� ��������� ��� �������� ������ �� ���� �����"},

ReversK2.cpp static PPDrvSession::TextTableEntry _ErrMsgTab[] = { NULL, // { K2ERR_OPENPORTFAILED, "������ �������� �����" }, // { K2ERR_WRITEPORTFAILED, "������ ������ � ����" }, // { K2ERR_CONTROLPORTFAILED, "������ �������� ������������ ���� � ����" }, // { K2ERR_MEMERR, "������ ��������� ������" }, // { K2ERR_GETADDRFAILED, "������ ��������� ������ �����������" } };

ppdrvapi.cpp { ; //DefineErrText(PPBaseDriver::serrNotInited, "��������� �������� �� ���������������"); //DefineErrText(PPBaseDriver::serrInvCommand, "������������ �������"); // DefineErrText(PPBaseDriver::serrNoMem, "������������ ������"); // DefineErrText(PPBaseDriver::serrNotEnoughRetBufLen, "������������ ������ ������ ������������� ����������"); }

ImpExpExite.cpp //#define ELEMENTNAME�516 "C516" ErrMessage ErrMsg[] = { / {IEERR_SYMBNOTFOUND, "������ �� ������"}, {IEERR_NODATA, "������ �� ��������"}, {IEERR_NOSESS, "������ � ����� ������� ���"}, {IEERR_ONLYBILLS, "Dll ����� �������� ������ � �����������"}, {IEERR_NOOBJID, "������� � ����� ��������������� ���"}, {IEERR_IMPEXPCLSNOTINTD, "������ ��� �������/�������� �� ���������������"}, {IEERR_FTP, "������ FTP"}, {IEERR_IMPFILENOTFOUND, "���� ������� �� ������: "}, {IEERR_INVMESSAGEYTYPE, "�������� ��� ���������. ��������� "}, {IEERR_NOCFGFORGLN, "��� ������ ���� �������� ��� �������� ������������ ��� ������������ � GLN "}, {IEERR_NULLWRIEXMLPTR, "������� xmlWriter"}, {IEERR_NULLREADXMLPTR, "������� xmlReader"}, {IEERR_XMLWRITE, "������ ������ � xml-����"}, {IEERR_XMLREAD, "������ ������ �� xml-�����"}, {IEERR_TOOMUCHGOODS, "����� �������, ���������� � ����� �������, ������ ��������� �� ����������"}, {IEERR_MSGSYMBNOTFOUND, "������ �� ������ (������ ���� �������� �������/��������)"}, {IEERR_ONLYIMPMSGTYPES, "�������� ������� �������� ������ � ������ ������ ORDRSP, DESADV � APERAK"}, {IEERR_ONLYEXPMSGTYPES, "�������� �������� �������� ������ � ������ ������ ORDER, RECADV"}, {IEERR_NOEXPPATH, "�� ���������� ���������� ��� ����� ��������"}, {IEERR_TTNNEEDED, "�������� �� ������. ���������� ������� ���. ��������: "}/

EmMarine.cpp static PPDrvSession::TextTableEntry _ErrMsgTab[] = { { RDRERR_OPENPORTFAILED, "������ �������� �����" }, { RDRERR_WRITEPORTFAILED, "������ ������ � ����" }, { RDRERR_READPORTFAILED, "������ ������ �� �����" }, { RDRERR_NOREPLY, "���������� �� ��������" }, { RDRERR_INVREPLY, "�������� ����� ����������" } };

ImpExpLeraData.cpp

define ELEMENTNAME�516 "C516"

ErrMessage ErrMsg[] = { {IEERR_SYMBNOTFOUND, "������ �� ������"}, {IEERR_NODATA, "������ �� ��������"}, {IEERR_NOSESS, "������ � ����� ������� ���"}, {IEERR_ONLYBILLS, "Dll ����� �������� ������ � �����������"}, {IEERR_NOOBJID, "������� � ����� ��������������� ���"}, {IEERR_IMPEXPCLSNOTINTD, "������ ��� �������/�������� �� ���������������"}, {IEERR_FTP, "������ FTP"}, {IEERR_IMPFILENOTFOUND, "���� ������� �� ������: "}, {IEERR_INVMESSAGEYTYPE, "�������� ��� ���������. ��������� "}, {IEERR_NOCFGFORGLN, "��� ������ ���� �������� ��� �������� ������������ ��� ������������ � GLN "}, {IEERR_NULLWRIEXMLPTR, "������� xmlWriter"}, {IEERR_NULLREADXMLPTR, "������� xmlReader"}, {IEERR_XMLWRITE, "������ ������ � xml-����"}, {IEERR_XMLREAD, "������ ������ �� xml-�����"}, {IEERR_TOOMUCHGOODS, "����� �������, ���������� � ����� �������, ������ ��������� �� ����������"}, {IEERR_MSGSYMBNOTFOUND, "������ �� ������ (������ ���� �������� �������/��������): "}, {IEERR_ONLYIMPMSGTYPES, "�������� ������� �������� ������ � ������ ������ ORDRSP, DESADV � APERAK"}, {IEERR_ONLYEXPMSGTYPES, "�������� �������� �������� ������ � ������ ������ ORDER, RECADV"}, {IEERR_NOEXPPATH, "�� ���������� ���������� ��� ����� ��������"}, {IEERR_TTNNEEDED, "�������� �� ������. ���������� ������� ���. ��������: "}, {IEERR_PAYFIRST, "������ � ����������� LeraData �������� ����������"} };

xmlTextWriterStartElement(P_XmlWriter, (const xmlChar )ELEMENTNAME�516); xmlTextWriterStartElement(P_XmlWriter, (const xmlChar )ELEMENTNAME�516);

BnkIngenicoSPDH.cpp ErrMessage ErrMsg[] = { //{INGVTB_NOTENOUGHPARAM, "�� ���������� ���������� ��� ������ ����������"}, //{INGVTB_UNCNKOWNCOMMAND, "�������� ����������� �������"}, //{INGVTB_NOTINITED, "������ �������������"}, //{INGVTB_NOTCONNECTED, "���������� �� �����������"}, //{INGVTB_NOTENOUGHMEM, "�� ����������� ������ ��������� ������"}, //{INGVTB_DLLFILENOTFOUND, "���� arccom.dll �� ������"}, //{INGVTB_INIFILENOTFOUND, "���� cashreg.ini �� ������"}, //{INGVTB_CHECKFILENOTFOUND, "���� check.out �� ������"}, //{INGVTB_NODLLPATH, "�� ������ ���� � ����� arccom.dll"} };

prcpan.cpp else if(tb.Cmp("PRCREST", 0) == 0 || tb.Cmp("���", 0) == 0 || tb.Transf(CTRANSF_INNER_TO_OUTER).Cmp("���", 0) == 0)

        else if(tb.Cmp("PRCFONT", 0) == 0 || tb.Cmp("�����", 0) == 0 || tb.Transf(CTRANSF_INNER_TO_OUTER).Cmp("�����", 0) == 0)

txtanlz.cpp context_buf.Z().CatChar('@').CatEq("kws", wb_rec.Symb).Semicol().CatEq("locn", "���������");

pptest.cpp (msg_buf = "��������� �������� ����������").Transf(CTRANSF_OUTER_TO_INNER);

sartre_imp if(temp_buf.NotEmpty()) { if(temp_buf == "�����") rForm.SetTag(SRWG_ADJCMP, prev_compr = SRADJCMP_COMPARATIVE); else { .. else if(temp_buf == "����") rForm.SetTag(SRWG_ADVERBCAT, SRADVCAT_INTERROGATIVE); else if(temp_buf == "�����") rForm.SetTag(SRWG_ADVERBCAT, SRADVCAT_RELATIVE); else if(temp_buf == "������") rForm.SetTag(SRWG_ADVERBCAT, SRADVCAT_POINTING); else if(temp_buf == "0") rForm.SetTag(SRWG_INVARIABLE, 1); else if(temp_buf == "���") rForm.SetTag(SRWG_LOCAT, 1); else if(temp_buf == "���") rForm.SetTag(SRWG_ERROR, 1);

tsessdlg.cpp const char * p_days_word[] = { "days", "day", "d", "����", "����", "�", "�����", "�����", "���" };

Objvatbk.cpp SXml::WNode n(pWriter, "������"); n.PutAttrib("�����", inn);
// SXml::WNode n(pWriter, "������"); // n.PutAttrib("�����", inn); // n.PutAttrib("���", kpp); p_ledger_title = "����������"; p_ledger_line_title = "��������"; p_ledger_title = "���������"; p_ledger_line_title = "���������"; // SXml::WNode n_file(p_writer, "����"); // n_file.PutAttrib("������", id_file); n_file.PutAttrib("��������", left); n_file.PutAttrib("��������", "5.06"); // @v10.4.2 "5.04"-->"5.06"

const FiasAbbrEntry _FiasAbbrList[] = { { 1, "���������� �������", "����", 102, 0 }, { 1, "����", "����", 104, 0 }, { 1, "�������", "���", 105, 0 }, { 1, "�����", "�����", 107, 0 }, ..

ImpExpExite.cpp xmlTextWriterStartElement(P_XmlWriter, (const xmlChar )ELEMENTNAME�516); //xmlTextWriterStartElement(P_XmlWriter, (const xmlChar )ELEMENTNAME�516); //xmlTextWriterStartElement(P_XmlWriter, (const xmlChar *)ELEMENTNAME�516);

ImpExpKorus.cpp

define IEERR_WEBSERV�ERR 7 // ������ ���-�������. � ���� ������ ��������� �������� ���� WebSrevcErr

ErrMessage ErrMsg[] = {
{IEERR_SYMBNOTFOUND,        "������ �� ������"},
{IEERR_NODATA,              "������ �� ��������"},
{IEERR_NOSESS,              "������ � ����� ������� ���"},

. .

ImpExpLeraData.cpp xmlTextWriterStartElement(P_XmlWriter, (const xmlChar *)ELEMENTNAME�516);

papyrussolution commented 5 years ago

I'll convert this file to utf-8 (there is a number of source file in the project have been still not converted because of inner native strings).

jmalkema commented 5 years ago

List of 27 files who have "utf-8" issues:

1:Amc100.cpp 2:BnkIngenicoSPDH.cpp 3:BnkSberbank.cpp 4:EmMarine.cpp 5:ie_goods.cpp 6:ImpExpExite.cpp 7:ImpExpKorus.cpp 8:ImpExpLeraData.cpp 9:Nmbtotxt.cpp 10:Objvatbk.cpp 11:palmexch.cpp 12:ppdrvapi.cpp 13:pptest.cpp 14:prcpan.cpp 15:ReversK2.cpp 16:sartre_imp 17:sc_cli.cpp 18:sc_ggrp.cpp 19:sc_goods.cpp 20:sc_order.cpp 21:sc_todo.cpp 22:sdate.cpp 23:stcp.cpp 24:stype.cpp 25:Synccash.cpp 26:tsessdlg.cpp 27:txtanlz.cpp

papyrussolution commented 5 years ago

Thanks. I'll help.

jmalkema commented 5 years ago

There are Russion texts in ppw.rc file still:

Configuratie-ini-bestand

I looked for possible solutions. Maybe there are others :-)

A satellite DLL is a resource-only DLL that contains an application's resources localized for a particular language.

Creating a Resource-Only DLL A resource-only DLL is a DLL that contains nothing but resources, such as icons, bitmaps, strings, and dialog boxes. Using a resource-only DLL is a good way to share the same set of resources among multiple programs. It is also a good way to provide an application with resources localized for multiple languages (see Localized Resources in MFC Applications: Satellite DLLs). To create a resource-only DLL, you create a new Win32 DLL (non-MFC) project and add your resources to the project. The application that uses the resource-only DLL should call LoadLibrary to explicitly link to the DLL. To access the resources, call the generic functions FindResource and LoadResource, which work on any kind of resource, or call one of the following resource-specific functions: • FormatMessage • LoadAccelerators • LoadBitmap • LoadCursor • LoadIcon • LoadMenu • LoadString

Every language Dutch, English, Russian, Chinese, etc. has its own language dll.

I googled for "GetSystemDefaultUILanguage":

For MUI (Multiple User Interface) OS, a user can update his OS user language in Control Panel, Region and language options, Language. Following code is partially copied from VC7.1 appcore.cpp. It detects UI language, and stores a language list for loading later. LANGID CMultiLanguage::DetectUILanguage()

While the above code works for MUI OS, a user may change the default locale, not the UI language. The following code detects the user default language, not the UI language. LANGID CMultiLanguage::DetectLangID()

Use of CMultiLanguage::DetectUILanguage() and/or CMultiLanguage::DetectLangID() could help to auto detect the used (system/user/console) language. N.B. Maybe not need to give console parameter "/uilang:??".

Next gives link to Tortoisegit:

I will look to Tortoisegit. Maybe they have solved the languages problem in a feasible solution.

Greeting Jan Marco

papyrussolution commented 5 years ago

Hello, Jan. I haven't cope with all the list of files you post yesterday. But big deal of it is now done (the rested part i'll finish next week): removed 1:Amc100.cpp done 2:BnkIngenicoSPDH.cpp done 3:BnkSberbank.cpp done 4:EmMarine.cpp 5:ie_goods.cpp 6:ImpExpExite.cpp 7:ImpExpKorus.cpp 8:ImpExpLeraData.cpp done 9:Nmbtotxt.cpp 10:Objvatbk.cpp 11:palmexch.cpp done 12:ppdrvapi.cpp 13:pptest.cpp done 14:prcpan.cpp done 15:ReversK2.cpp done 16:sartre_imp 17:sc_cli.cpp 18:sc_ggrp.cpp 19:sc_goods.cpp 20:sc_order.cpp 21:sc_todo.cpp done 22:sdate.cpp done 23:stcp.cpp done 24:stype.cpp 25:Synccash.cpp 26:tsessdlg.cpp done 27:txtanlz.cpp

papyrussolution commented 5 years ago

Now about what connect with resources. The main deal of text is stored in \Src\Rsrc\Str\ppstr2.txt. This file is translated to other languages. I extracted existed russian strings from ppw.rc and will do my best to substitute them to meta-symbols (as it has been done for the most other strings). There are a bit more than 3000 such items.

jmalkema commented 5 years ago

I haven't cope with all the list of files you post yesterday. But big deal of it is now done (the rested part i'll finish next week):

Perfect :-)

Now about what connect with resources. The main deal of text is stored in \Src\Rsrc\Str\ppstr2.txt. This file is translated to other languages. I extracted existed russian strings from ppw.rc and will do my best to substitute them to meta-symbols (as it has been done for the most other strings). There are a bit more than 3000 such items.

Your program is very rich of code and third party libraries . :-)

Make language in resoure files dynamic will take some time.

I am studing ppstr.txt code file a bit:

// PPSTR2.H // This file was generated by SC2C.EXE from 'D:\pinnode\server\OpenPapyrus\Src\Rsrc\Str\ppstr2.txt'

In holland you have same type of companies and same type of workers. Every Group( /set) could have different (popup) menu structure. Like farmers, carpenters, barbiers, etc.

Database Driven Dynamic Menu Control” for example, could help to customize main gui program to specific group of users:

Database Driven Dynamic Menu Control

Maybe you have advise about how best to customize to users (groups)?

jmalkema commented 5 years ago

I (test) executed OpenCapyrus with and without 'Beta_Use_Unicode_UTF8' option switch. I looked to Productie -> MRP-tabel:

MRP_screens

There is a language issue with months names and weekdays I think also:

static const char * monthNames[NUM_MONTHES] = { //"Январ[ь|я]", "Феврал[ь|я]", "Март[|а]", "Апрел[ь|я]", "Ма[й|я]", "Июн[ь|я]","Июл[ь|я]", "Август[|а]", "Сентябр[ь|я]", "Октябр[ь|я]", "Ноябр[ь|я]", "Декабр[ь|я]"

ifdef USE_DUTCH_LANGUAGE

"Januari[s|i]", "Februari[s|i]", "Maart[|a]", "April[s|i]", "Mei[y|i]"  , "Juni[s|i]", "Juli[s|i]", "Augustus[|a]", "September[s|i]", "Oktober[s|i]", "November[s|i]", "December[s|i]"

elif USE_RUSSIAN_LANGUAGE

"Январ[ь|я]", "Феврал[ь|я]", "Март[|а]", "Апрел[ь|я]", "Ма[й|я]", "Июн[ь|я]","Июл[ь|я]", "Август[|а]", "Сентябр[ь|я]", "Октябр[ь|я]", "Ноябр[ь|я]", "Декабр[ь|я]"       

else

"January[s|i]", "February[s|i]", "March[|a]", "April[s|i]", "May[y|i]"  , "June[s|i]", "July[s|i]" , "August[|a]" , "September[s|i]", "October[s|i]", "November[s|i]", "December[s|i]"

endif

};

static const char * P_WeekDays = { //"Monday,Mo,Понедельник,Пнд;Tuesday,Tu,Вторник,Вт;Wednesday,We,Среда,Ср;Thursday,Th,Четверг,Чтв;Friday,Fr,Пятница,Птн;Saturday,Sa,Суббота,Сбт;Sunday,Su,Воскресенье,Вскр"

ifdef USE_DUTCH_LANGUAGE

"Monday,Mo,Maandag,Ma;Tuesday,Tu,Dinsdag,Di;Wednesday,We,Woensdag,Wo;Thursday,Th,Donderdag,Do;Friday,Fr,Vrijdag,Vr;Saturday,Sa,Zaterdag,Za;Sunday,Su,Zondag,Zo"

elif USE_RUSSIAN_LANGUAGE

"Monday,Mo,Понедельник,Пнд;Tuesday,Tu,Вторник,Вт;Wednesday,We,Среда,Ср;Thursday,Th,Четверг,Чтв;Friday,Fr,Пятница,Птн;Saturday,Sa,Суббота,Сбт;Sunday,Su,Воскресенье,Вскр"

else //English

"Monday,Mo,Monday,Mo;Tuesday,Tu,Tuesday,Tu;Wednesday,We,Wednesday,We;Thursday,Th,Thursday,Th;Friday,Fr,Friday,Fr;Saturday,Sa,Saturday,Sa;Sunday,Su,Sunday,Su"

endif

};

papyrussolution commented 5 years ago

I've allready fixed the monthes at calender up. Customers have claimed this bug. We started using unicode in regular assembles since last releases only. Thank you for analyze. My work on total refactoring of string is moving.

papyrussolution commented 5 years ago

Jan, you can customize menu (as good as desktop) for any user (or group) in the system. There are command for this puposes: Admin/Interface/Edit menu (and other). Menu and desktops can be associated with user or group at the accordings dialogs (Admin/Groups and users - button [Configuration]). Local menus and desktops are stored in special binary file in (ppy/bin/ppdesk.bin and ppcmd.bin)

jmalkema commented 5 years ago

I've allready fixed the monthes at calender up. Customers have claimed this bug. We started using unicode in regular assembles since last releases only.

dutch_month_time_table

monthes of calender is not Dutch, strings not dynamic.

Thank you for analyze.

I like to analyze and to experiment.

My work on total refactoring of string is moving.

Perfect :) , I think very good to do refactoring. N.B. Make strings dynamic (depending on local Language)

papyrussolution commented 5 years ago

Thank you. I'll correct it.

jmalkema commented 5 years ago

Hello Sobolev,

Thank you. I'll correct it.

Perfect :-)

Forum is not accessible http://forum.petroglif.ru/ for me anymore? Maybe ip-block of foreign countries?

I installed Microsoft Visio on my ppc. I will try to make the process flow of the OpenPapyrus compiling process. I can learn a lot of your compiling solution :-)

Which executable (tools) are used. Can I find the source code of the used executable (tools, for example dlgdsn.exe). Which data ("source code") files are used by specified executable (tools) to build the executable (ppw.exe) ?

Greetings Jan Marco

papyrussolution commented 5 years ago

Hello, Jan. Thanks! Today is the holyday in Russia. We'll fix the forum tomorrow up. Almost all tools have source code in the project, but dlgdsn was born last millenium and not by me. I must go now and will describe situation with tools in general and dlgdsn particulary detaily next day.

papyrussolution commented 5 years ago

I've publised a draft release of the road map in wiki. I must make an accent upon the word 'draft'. It'll be corrected and fined along the time flow.

jmalkema commented 5 years ago

I've publised a draft release of the road map in wiki. I must make an accent upon the word 'draft'. It'll be corrected and fined along the time flow.

Perfect :-)

I like the OpenPapyrus road map. It is true that ‘road maps’ are ‘not fixed in concrete’. You can update a road map in time.

jmalkema commented 5 years ago

Hello Sobolev,

I am coping my source stack to other msi ppc and a vmware pc (win10) host. My destination hosts (msi ppc, vmware client) does not compile OpenPapyrus. It is depending on whether or not OPpyServer_10.4.05.28481.exe is installed?

OpenPapyrus_install_screens

Greetings Jan Marco

papyrussolution commented 5 years ago

Hello, Jan. Yes it is. Really, OPpyServer installes DBMS (Btrieve). Btrieve is nesessary in order to build inner database structures (ppdbs.dl6 in ppres project)

jmalkema commented 5 years ago

Hello Sobolev,

Almost all tools have source code in the project, but dlgdsn was born last millenium and not by me. I must go now and will describe situation with tools in general and dlgdsn particulary detaily next day.

Perfect :-)

I am curious about dlgdsn.exe, I have patched an old version processhacker. I compiled OpenPapyrus and put process(line) info in (Mysql) database. Maybe you have some information about the tools in processhackerExecutable column:

process_hacker_output

I will analyse the compiling process and will make a visio diagram of the flow.

Greetings Jan Marco

jmalkema commented 5 years ago

Hello Sobolev,

Running (ppw.exe /uilang:nl) is depending on whether or not OPpyClient_10.4.05.28481.exe is installed

If not installed it give error of not finding "crpe32.dll"

81 Files of OPpyClient_10.4.05.28481.exe in C:\Windows\System32 commonobjmodel.dll crdb_p2bbtrv.dll crdb_pc_res_en.dll crheapalloc.dll crpe32.dll crqe_res_en.dll crqe.dll crtslv.dll crxf_html_res_en.dll crxf_html.dll crxf_pdf_res_en.dll crxf_pdf.dll crxf_rtf_res_en.dll crxf_rtf.dll crxf_wordw_res_en.dll crxf_wordw.dll crxf_xls_res_en.dll crxf_xls.dll cxlib-1-6.dll cxlibw-1-6.dll ExportModeller.dll LwtNetLog.etl nsclient100w.dll nsldap32v50.dll nsldappr32v50.dll nsldapssl32v50.dll nspr4.dll nss3.dll p2bbtrv.dll p2ctbtrv.dll p3tbten.dll pageObjectModel.dll plc4.dll plds4.dll pscore.dll ReportRenderer.dll Roboex32.dll rptdefmodel.dll s2dtconv.dll slib.log ssl3.dll stringres100_en.dll u252000.dll u25dts.dll u25samp1.dll u2dapp.dll u2ddisk.dll u2fcompress.dll u2fsepv.dll u2ftext.dll u2fxml.dll u2l2000.dll u2lcom.dll u2ldts.dll u2lexch.dll u2lfinra.dll u3520en.dll u35dten.dll u35s1en.dll u3l20en.dll u3ldten.dll u3lfren.dll u3lxcen.dll ufmanager.dll w3aif10B.dll w3bif143.dll w3btrv7.dll w3crs10F.dll w3dbav80.dll w3dbsmgr.exe w3enc106.dll w3mif145.dll w3nsl235.dll w3scmv7.dll W3UPI22D.dll wbtrv32.dll webReporting.dll Wifi.etl x3ddken.dll x3fsven.dll x3fxmen.dll

I am very curious why you put the (81) OPpyClient application files in the Windows system32 directory?

Greetings Jan Marco

P.S. I made diff of files scan before and after installation of 'OPpyClient_10.4.05.28481.exe'

papyrussolution commented 5 years ago

Hello, Jan. That is Crystal Reports client. Yes, OPpyClient will set up this component.

jmalkema commented 5 years ago

Hello Sobolev,

That is Crystal Reports client. Yes, OPpyClient will set up this component.

Report Generation: Own report generator instead of Crystal Reports

SAP Crystal is an analytics and reporting software solution for small and medium-sized businesses. It enables deeper insights to business information and positions your organization for greater competitive advantage. It combines the pixel-perfect reporting capabilities of SAP Crystal Reports with the secured delivery mechanisms of SAP Crystal Server.

OpenRTP is QT (C++) implementation.

xTuple OpenRTP: Free Open Source SQL Report Writer Created by xTuple. Free Open Source SQL Report Writer As part of all Editions of xTuple, built with the PostgreSQL database and the Qt GUI client framework, we built our own SQL report writer from scratch.

Maybe that there are beter java/javascript solutions in "alternativeto"?

Greetings Jan Marco

P.S. I think a little bit strange to put user program files in C:\windows\system32 directory. If windows update has same filename, it can result in undefined situations (i believe).

papyrussolution commented 5 years ago

There are two outer and closed components in OpenPapyrus: DBMS Btrieve (Actian Zen now) and Crystal Reports. I have been dream for many years to get rid of them. They are excelent, but out of my considaration about this system. My plot is in developing an own reporting system and we are doing some moves toward this target. What is concerned the DBMS we are in choosing accepteble open source system.

papyrussolution commented 5 years ago

I learned xTuple OpenRPT. It isn't suited for us. Like many other sach systems it have been built on the concept of database data sourcing. OpenPapyrus uses inner subsystem for intermediate data representation: DL600 declarative language. Consequently, i have been looking for reporting system with arbitrary data sourcing, but all was no avail. Behind of that, xTuple uses QT - unbelievable heavy infrastructure (i must admit this is the great library at the many sides and if i can make everything from the scatch, who knows, QT will be one of the preferable candidate to select).

jmalkema commented 5 years ago

Hello Sobolev, Thanks a lot about your advice :-)

xTuple uses QT - unbelievable heavy infrastructure

Yes, it is true that QT is very heavy infrastructure.

I tried to compile QT (LTS) with Postbook edition 5.0.0.0-beta. Problem that QT-Webkit is no longer in QT distribution.

The underlying WebKit JavaScript engine will be replaced by Qt WebEngine (Qt deprecated Qt WebKit a few years ago and removed it from recent Qt releases)

I think that Webkit was used to render the javascript menu structures in the qt-xtuple-client. I removed Webkit dependency. The 3 main menus I see "Window", "System" and "Help" remain.

Xtuple_hoofd_scherm_01

It should be:

postbooks-4-4-1-3

I think it is better (also for Xtuple) to make a (stand alone) javascript environment. N.B. In Xtuple case don't make dependency with QT. Maybe, you have better idea about this subject, please let me know :-)

Greetings Jan Marco

jmalkema commented 5 years ago

Hello Sobolev,

OpenPapyrus uses inner subsystem for intermediate data representation: DL600 declarative language.

I like the inner subsystem :-)

There are two outer and closed components in OpenPapyrus: DBMS Btrieve (Actian Zen now) and Crystal Reports. I have been dream for many years to get rid of them. They are excelent, but out of my considaration about this system.

get rid of them i like :-)

My plot is in developing an own reporting system and we are doing some moves toward this target. What is concerned the DBMS we are in choosing accepteble open source system.

Ok.

Personal Resource planning (PRP) application The Databox platform is an open-source personal networked device, augmented by cloud-hosted services, that collates, curates, and mediates access to an individual’s personal data by verified and audited third-party applications and services. The Databox will form the heart of an individual’s personal data processing ecosystem, providing a platform for managing secure access to data and enabling authorised third parties to provide the owner with authenticated services, including services that may be accessed while roaming outside the home environment.

healthy-home-graphic--tojpeg_1555352981736_x2

The same concept could maybe be done with ERP (Databox= ‘OpenPapyrus’). The data from database to Tensorflow infrastructure (= 'AI Machine learning'). The AI model gives advise about the company. The feedback flows from AI back to OpenPapyrus like ERP-program.

Greetings Jan Marco

jmalkema commented 5 years ago

Hello Sobolev,

I've made a draft how i could see the relations between ERP-GUI-components. It'll be corrected and fined along the time flow:

OpenPapyrus_gui_0012

If R is incorporated with JavaScript, then web delivery can happen smoothly, and it can help in making efficient business decision making. Integrating R into web application naturally becomes quintessential.

Conclusion: R and Javascript can practically unlock innumerable possibility in Data Science and Analytics. Both technologies are working towards developing better integrations, knowledge repositories, libraries and use cases. It is a good time to use both of this together. The future looks bright.

TensorFlow and Javascript are not my comfort zone infra-structure. I have to analyze more :-)

Greetings Jan Marco

papyrussolution commented 5 years ago

Hello, Jan. I'm impressed with your diagram. I've printed it and be trying to understand. You have made a big work endeavouring to explain your vision of the system here and at the forum. Neverthless i can't gather all your ideas together. Can you explain shortly here main streaks of your vision. Such as: target users, target business, killer features and so on. I beg pardon if you have allready described it. Probably, i couldn't perceive it properly.

Greetings Anton Sobolev. ps. I aplogize for the late answer.