Page 8 of 20

Re: translate kolibri

Posted: Fri May 31, 2013 12:27 am
by SoUrcerer
http://it.wikipedia.org/wiki/ELIZA - sorry, I can't provide any details because I don't know them.

Re: translate kolibri

Posted: Fri May 31, 2013 7:34 pm
by fedesco
Mhm, I'm afraid I'll not be able to translate this program, if you say, for example at the beginning "car" to eliza, she tells you "OH, DO YOU LIKE CARS", and I searched the word "car" in the source code, but I only found

Code: Select all

rep28a: db  "OH, DO YOU LIKE CARS?",0
rep28b: db  "MY FAVORITE CAR IS A LAMBORGINI COUNTACH. WHAT IS YOUR FAVORITE CAR?",0
rep28c: db  "MY FAVORITE CAR COMPANY IS FERRARI.  WHAT IS YOURS?",0		
which are some replies that eliza is able to give if she talks about cars, I have no idea how she is able to determine how I've written the word car since there is apparently nothing for me to translate...

OK, I have translated Freecell, there is only a bug as you can see in the image i uploaded, and I would prefer to fix it befor submitting the code.

Re: translate kolibri

Posted: Fri May 31, 2013 7:42 pm
by SoUrcerer
There is word "CAR" in "OH, DO YOU LIKE CARS?".
About Freecell: it seems that you have to fix text output (like in C4).
Btw, I hope someone (or I) will add instructions about new cool macros, which allows to use UTF-8 in source files.

Re: translate kolibri

Posted: Fri May 31, 2013 8:06 pm
by 0CodErr
In freecell.asm:
Spoiler:

Code: Select all

; ..................

    mov     eax, 4
if lang eq it
    mov     ebx, 7 shl 16 + 22 + topbuttonsbarheight/2 - 4
else		
    mov     ebx, 20 shl 16 + 22 + topbuttonsbarheight/2 - 4
end if
    mov     ecx, [syscolors.work_button_text]
    mov     edx, new_game
    mov     esi, new_game_len
    mcall

; ..................

; <--- initialised data --->
if lang eq ru
  title db 'Солитер',0

  new_game: db "Новая игра"
  new_game_len = $ - new_game

  exit: db "Выход"
  exit_len = $ - exit

  s: db "10"

else if lang eq it

  title db 'Freecell',0

  new_game: db "Nuova partita"
  new_game_len = $ - new_game

  exit: db "Esci"
  exit_len = $ - exit

  s: db "10"


else

  title db 'Freecell',0

  new_game: db "New game"
  new_game_len = $ - new_game

  exit: db "Exit"
  exit_len = $ - exit

  s: db "10"
end if
In build_it.bat:
Spoiler:

Code: Select all

@echo lang fix it >lang.inc
@fasm freecell.asm freecell
@erase lang.inc
@pause

Re: translate kolibri

Posted: Sat Jun 01, 2013 9:03 am
by fedesco
SoUrcerer wrote:There is word "CAR" in "OH, DO YOU LIKE CARS?".
Yes, this is one of the response of eliza, and I have translated it, the problem is that I ca not figure out where in the source code eliza reads what I've written and get the word car...


@0CodErr
thank you

Re: translate kolibri

Posted: Sat Jun 01, 2013 11:26 am
by fedesco
how do you compile checkers? I get this output using the makefile

Code: Select all

g++ -c checkers.cpp
In file included from checkers.cpp:250:0:
player.h:53:27: error: default arguments are only permitted for function parameters
checkers.cpp: In member function ‘int TPlayArray::OpenFile(const char*, int)’:
checkers.cpp:529:37: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:530:48: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp: In constructor ‘TMainDraw::TMainDraw()’:
checkers.cpp:797:57: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp: In member function ‘void TMainDraw::InitButton()’:
checkers.cpp:854:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:855:31: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:856:33: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:858:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:859:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:861:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:865:33: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:867:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:871:40: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:873:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:874:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:875:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:876:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:877:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
checkers.cpp:880:31: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
In file included from checkers.cpp:250:0:
player.h: In instantiation of ‘tvalue TBaseCompPlayer<tvalue>::FindBMove(TBaseCompPlayer<tvalue>::Z&, int, TBaseCompPlayer<tvalue>::PMvv*, int, tvalue, tvalue) [with tvalue = long int]’:
player.h:879:3:   required from ‘int TBaseCompPlayer<tvalue>::Move(TChPlayer::PMv&) [with tvalue = long int; TChPlayer::PMv = PlayWrite::PMv]’
checkers.cpp:1352:1:   required from here
player.h:789:25: error: too few arguments to function
make: *** [checkers.o] Error 1
and the compile.txt file is written (i think) in russian, so I'm not able to get further informations

Re: translate kolibri

Posted: Sat Jun 01, 2013 11:57 am
by SoUrcerer
1. Kolibri
You need Borland C++ and FASM 1.64 (NOT newer)
cpp2asm.bat will compile C++ to tasm, then convert tasm to fasm.
Then you need to add Kolibri header to f_checkers.asm

2. Linux
Type "make". It should works, but if not you have to fix it somehow.

3. DOS/Windows
You'll need Borland C++. You need to add checkers.cpp to project. In Windows you need to add win-chk.rc. For DOS you need to link it to egavga.bgi
I don't sure if it is about cross-compiling, or "Windows", "Linux" and "Kolibri" are target OSes for this code, so I suggest to use first way. Obviously, it's for cross-compiling from DOS/Windows/DosBox.

Re: translate kolibri

Posted: Sat Jun 01, 2013 12:15 pm
by SoUrcerer
If I were you I would have focused in translation system applications first of all.

Re: translate kolibri

Posted: Sat Jun 01, 2013 7:59 pm
by fedesco
Thanks for the translation, I forgot to mention, I use GNU/Linux, and I tried compiling it using make and I got all this warnings and some errors, I have no idea how to fix them.

I can't crosscompile it if also windows is needed, since I do not have a windows license.
If I were you I would have focused in translation system applications first of all.
It's not that bad as idea, the problem is I have no idea about assembly, fasm, c-- and other languages (I have only programmed in C, delphi, java and a little of c++, and I've only done simple programs).

I noticed that most of the games where "small" programs, only one source code file per program, with some exceptions of course.

I'll give a look to the system applications.

Re: translate kolibri

Posted: Sat Jun 01, 2013 8:12 pm
by fedesco
edit:

for example, I'm looking now at the source code of the browser (folder cmm/browser). It's written in c--, and I have no clue how to compile it (I remeber that I searched a compiler under debian or GNU/Linux, I've also found the homepage of the c-- project (http://www.cminusminus.org/), but I've not understood anything.
Second problem, how should I include the multilanguage support? Using the lang.inc files as in the games?

I also thought in c-- there would have been something like prntf, as in c and c++, i guess I'm wrong since I was not able to find anything, but, for example, in the file cmm/browser/include/menu_rmb.h, there is the following structure:

Code: Select all

char *ITEMS_LIST[]={
//"Old HTMLv        F12",255,
"View in Tinypad   F3",52,
"WIN               F5",54,
"DOS           Ctrl+D",04,
"KOI           Ctrl+K",11,
"UTF           Ctrl+U",21,
"Line breaks ON"      ,03,
"Free image cache"    ,02,
//"TrueType fonts"      ,05,
0}; 
should I define another structure? or should I put an if-else inside the structure?


Maybe there are some simpler system programs to translate, if someone knows them please let me know!

Re: translate kolibri

Posted: Sat Jun 01, 2013 8:32 pm
by SoUrcerer
You have to use wine in order to compile C-- software with Sphinx C--. But I suggest you not to translate HTMLv - it's pretty complicated right now. Better look at /programs/system. Also, you'd better use new cool UTF macroses :3 Although I didn't tried them yet, and therefore can't tell you how to use them :(

Re: translate kolibri

Posted: Sat Jun 01, 2013 10:05 pm
by fedesco
Wine could be a good idea, I'll search something about it.
You are right, I've already translated something under the folder /system, I've again a problem with the legth of the strings, like before, problem is, again, I have no idea how the code works, so please help me ;-)

Re: translate kolibri

Posted: Sat Jun 01, 2013 10:15 pm
by SoUrcerer
o_O What is this? I know nothing about this program. But it seems that
1) It is obsolete
2) It is have something wrong with label positions - again

Re: translate kolibri

Posted: Sat Jun 01, 2013 10:18 pm
by Mario_r4
fedesco wrote:I have no idea how the code works, so please help me
To make it easier to help you - you have to show your code here.

P.S. This program was written by me, but for a long time is already possible to open and close the tray in KFM and KFAR.

Re: translate kolibri

Posted: Sat Jun 01, 2013 10:59 pm
by fedesco
@SoUrcerer
I've found this program in system/cd_tray, and the labels are wrong because in italian the words are longer, the english version of this program is fine.

@Mario_r4
The only code I changed where the labels adding an if-else structure with a lang variable, do you want me to post them?
Problem is, I have no idea how the labels are defined (I'm not an assembly programmer), should I post source code of the whole program?