Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
159 user(s) are online (130 user(s) are browsing Forums)

Members: 0
Guests: 159

more...

Support us!

Headlines

 
  Register To Post  

(1) 2 3 »
Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@All

Issue is : i have bunch of catalog files for which i do not have .ct files. I then add new entry in the main .CD file, and to have that new entry be visibly at all on all supported locales, i need to regenerate all catalog files or users on those locales which didn't have regenerated locale will see nothing new (right?)

Is there any way how to made .CT file if you have only .CD and .CATALOG file of some language ? (so to use that generated .CT file later to generate new catalogs with new entries being in english till transaltors will not translate it to their language)

I use latest FlexCat, and as far as i can see it has NEWCTFILE option, but that one seems about create default version from which all translation then come. But what i need, is to generate from .catalog a .ct file (so with translated entries) and then add my new one to regenerate catalogs as they was, just with new enry.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Supreme Council
Supreme Council


See User information
I simply use "catcomp <name>.cd CTFILE <name>.ct".

Obviously, the .cd is all in English.

Simon

Comments made in any post are personal opinion, and are in no-way representative of any commercial entity unless specifically stated as such.
----
http://codebench.co.uk
Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@Rigo
Issue is not to create simple (plain) .Ct file full of english entries. Point is to re-create .CT file from catalogs which is full of language's specific tranlations, so i have .CT with all translated stuff, and i add there just new entry in english and generate catalog, until native language speakers rebuild it (if ever) for their language. So catalog have all translations as before + new entry.

If, of course, new entry will not showups automatically in english even if language's catalog have nothing about ?

@samo79
Thanks, will check

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@kas1e

Quote:
If, of course, new entry will not showups automatically in english even if language's catalog have nothing about ?


It depends of where exactly you add that new strings .. if you add them "in the middle" of the cd, this may create problem disordering the old and not-updated translations .. but if instead you add that new strings at the end of your cd file, then not-updated translation will end to use English for the missing strings

So if you are not sure to have all translation always updated, the suggest is to add every new strings always at the end of your .cd file

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Just can't stay away
Just can't stay away


See User information
Using simplecat (GUI) seems easy.
1)Launch "SimpleCat GUI"
2)Import owb.cd
3)Import owb.catalog (maybe you can "add" all catalogs at once)
4)Export .CT of every language (previously imported in 3)


and samo79's suggested tool seems to work too:

CTLG2CT-OS4 deutsch/OWB.catalog OWB.cd >owb_deutsch.ct

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Just can't stay away
Just can't stay away


See User information
@samo79

Quote:
So if you are not sure to have all translation always updated, the suggest is to add every new strings always at the end of your .cd file
MUCH more than just a suggestion. You MUST add all new strings at the end (unless you handle the numbers explicitly with assigned numbers to all strings in the .cd file).

If you add anything in the middle, you WILL create havoc and chaos for all users of translations, until their translations have been updated to match.

Best regards,

Niels

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@Javier
Sadly seems both "simplecat" and "ctlg2ct" are amigaos code, and i can't just compile them as it to be used on cross-compiler.. Maybe flexcat can do the same (flexcat can be used on crosscompiler)

@nbache, samo79

That what i fear of :( Imagine i have odyssey.cd , which structured well. Then i start adding things more and more, and instead of .CD be structured the same logical and well as before, i will have needs add everything at bottom, that pretty bad looking.

Instead, if i will create from all the .catalogs new .ct files , and insert in all of them manually in the middle new string and recompile new catalogs, everything will works as expected, structured well, and translators later can use new .ct to translate new/remaining stuff which will be not at the end. Correct ?



Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@kas1e

Yep, because at the end every .ct files that will generate a final .catalog need to be passed from the original catalog descriptor (the .cd)
If you add things in the middle of your .cd file (or in any place different than the last line) and then recompile old translation files with it, you cannot expect that final catalog translations will work correctly

So, or you add everything at the end of the .cd, less elegant but pretty functional.
Or, in case you don't have specific translators that will co-work with you, just add manually that new strings on your own, by putting into each of that .ct files an english string as placehover

Aniway i can work on the italian translation of owb pretty fast, i'm sure also spanish, french, german etc could have a fast mantainer, problem may be with more "esotic" languages

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@samo79
Quote:

If you add things in the middle of your .cd file (or in any place different than the last line) and then recompile old translation files with it, you cannot expect that final catalog translations will work correctly


If i will have all the .ct files generated from current catalogs, in which i manually (or by flexcat, if it can do that kind of merging) add on the same places as in CD file new entryies, and then recompile catalogs : i expect that final catalog will works correctly of course.


Quote:

Or, in case you don't have specific translators that will co-work with you, just add manually that new strings on your own, by putting into each of that .ct files an english string as placehover


Yes, that exactly what i want to do. Sure, i will need for every new entry change not only .cd , but all the .ct files i generate back from catalogs, but then everything will looks clean and structured well.

Quote:

Aniway i can work on the italian translation of owb pretty fast, i'm sure also spanish, french, german etc could have a fast mantainer, problem may be with more "esotic" languages


I need to be independent from all those waits based on who and how fast or not translate anything. That why i want to do it all like i describe, so when any translator will have time or interest, then they can update new .ct/.catalogs and send me back. But at least by the way i want to do, i will not worry about at all, and no problems with releases because someone need time to finish translations.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Just can't stay away
Just can't stay away


See User information
Just add them at bottom, you can add comments, example:
owb.cd
...
MSG_WEBVIEW_INTERRUPT_SCRIPT (//)
Do you want to interrupt processing of the current script?
;
MSG_WEBVIEW_JSACTION_TITLE (//)
Javascript Alert
;
; new strings odyssey (2020.04.11)
;contextmenu strings
MSG_CTXMENU_blabla (//)
blahblah
...
;
;error strings
MSG_ERROR_blehbleh (//)
blehbleh
...
;
; misc strings
MSG_MISC_bluhbluh (//)
bluhbluh


So when you add them to odyssey sources and compile, when no updated catalog/translation exists then it will show those "blahblah, blehbleh..."
You don't need to add them to .CT, translator should take care of it by using catcomp,flexcat,... or manually.

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@Jabirulo
Point is exactly about adding to the middle, and update all .ct files (which generate from catalogs). Because i do not want to mess original .CD file which structured well, by adding at bottom new stuff, which by logic should be somewhere in the middle.

For example i need to add few entres in Media prefs, so OWB.cd has tasty structured block for it in the middle. Then i want to add something else, etc ,etc. Imagine, normal previously file, start to be added at bottom with all sort of different messages, only because it's easer.

The best way there to generate .CT files from all catalogs, and add entry in the part i need in CD and in all new .CT files, and regenerate catalogs. Sure, that more boring, but in end all will looks cleaner. Also i will put .CT files to release version as well, so will be easer to handle by translators based on them, and not on some private .CT files only they has.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Just can't stay away
Just can't stay away


See User information
@kas1e

You can add in the middle, but as Niels pointed, it can "break" translations and show in odyssey the wrong string, 'cos you put in .CT in the wrong position by mistake.

So better and safer is to put at bottom with a comment where such string belongs. You "shouldn't" test/check if compiled catalog will be ok or not (it's job of the translator).
Yes it's more work, but cleaner and won't break existing translation in case no one will update it.

And it can even crash the program in case translation buffer overflows or too loong for gadget X and is just the non/bad translation/catalog.

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@Jabirulo
Quote:

Yes it's more work


You mean it less work, not more. Because addint at bottom are easy, and i not need to regenerate .CT files and create new catalogs.

More work if i go my way by adding in the middle, then i need to create CT files and put everywhere all correctly (no mistake allowed there, eys), and regenerate catalogs.

Quote:

but cleaner


You mean not cleaner, but safer in case of mistake.

Quote:

and won't break existing translation in case no one will update it.


If i generate .CT files from catalogs, and then put all _correctly_ to all the same places as with .cd file, then all should be fine then ? More work and need to be carefull for sure..

Dunno, all that start to smeel like crap :) Never liked those boring and overcomplecated things with translations :)

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Just can't stay away
Just can't stay away


See User information
@kas1e

Yes i mean more work if you add new string "in the middle" of existing .CD.
And less work if you add at bottom.

By "cleaner" I mean for translators, so they/we don't have to check all .CD/.CT for new/empty strings.

Yes if you put new strings "in the middle" of CD correctly they should work without problems, but... you know "murphy's law" shows up and...

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Just can't stay away
Just can't stay away


See User information
@kas1e
BTW what is, or where can I found "catmaker" tool, as this one is the one that builds from .CD the source code to insert/compile into Odyssey.

Haven`t found it on odyssey branch.

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@jabirulo
"catmaker" are part of Ambient: just separate .c file which i build with no probs on cross compiler too and tested with odyssey and new entries - all fine.

You can grab it from latest Ambient's source code there : https://www.morphos-team.net/files/src/3.13//ambient.tar.bz2

Or just copy+paste from there:

/*
 * Catmaker was written by Oliver Wagner, modified by various people like
 * Jon Bright and David Gerber. Many thanks to Oliver for allowing me
 * to include it in the Ambient GPL release.
 *
 * @ Oliver Wagner and others
 * © 2006 Ambient Open Source Team
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 *
 *
 * $Id: catmaker.c,v 1.4 2006/08/08 13:31:33 fab Exp $
 *
 */


#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stddef.h>

/*  list stuff
 */
struct node {
    
struct node *succ;
    
struct node *pred;
};

struct list {
    
struct node *head;
    
struct node *tail;
    
struct node *tailpred;
};

void newlist(struct list *l)
{
    
l->tailpred = (struct node *)l;
    
l->tail     = (struct node *)0;
    
l->head     = (struct node *)&l->tail;
}

void addtail(struct list *lstruct node *n)
{
    
struct node *bak l->tailpred;

    
n->succ     = (struct node *)&l->tail;
    
n->pred     bak;
    
bak->succ   n;
    
l->tailpred n;
}

void addhead(struct list *lstruct node *n)
{
    
struct node *bak l->head;

    
n->succ   bak;
    
bak->pred n;
    
n->pred   = (struct node *)l;
    
l->head   n;
}

void insert(struct list *lstruct node *nstruct node *ln)
{
    if (
ln)
    {
        
n->pred       ln;
        
n->succ       ln->succ;
        
n->succ->pred n;
        
ln->succ      n;
    }
    else
    {
        
struct node *bak l->head;

        
n->succ   bak;
        
bak->pred n;
        
n->pred   = (struct node *)l;
        
l->head   n;
    }
}

/*  a bit copy'n'paste from includes/macros/vapor.h, first 2 
 *  don't work on empty lists
 */
#define FIRSTNODE(l)   ((void *)(l)->head)
#define NEXTNODE(n)    ((void *)((struct node *)n)->succ)

#define ADDHEAD(l,n)   addhead(l, n)
#define ADDTAIL(l,n)   addtail(l, n)
#define NEWLIST(l)     newlist(l)
#define ISLISTEMPTY(l) (((l)->tailpred) == (struct node *)(l))
#define INSERT(l,n,ln) insert(l, n, ln)


struct stringnode {
    
struct node n;
    
struct node on;
    
unsigned char *label;
    
int len;
    
struct stringnode *part;
    
int partoffset;
    
int number;
    
unsigned char text];
};

static 
unsigned char buffer8192 ], buffer2256 ], buffer3512 ];

static 
struct list slosl;

static 
void readstringsFILE *inf )
{
    
unsigned char *p, *d;
    
unsigned char c;
    
struct stringnode *n, *rn;
    
int linecnt 0;
    
int number 0;
    
int size 0;

    for(;;)
    {
        
int bufferlen;
        
unsigned char slashnum[40];
        
unsigned char *endp;
        
int val;

        if( !
fgetsbuffer2sizeofbuffer2 ), inf ) )
        {
            break;
        }
        
linecnt++;
        if( 
buffer2] == ';' || buffer2] == '#' )
            continue;

        if( 
sscanf(buffer2"%s (%39s)"bufferslashnum) != ||
            (
val strtol(slashnum, (char **)&endp10), *endp != '/') )
        {
            
fprintfstderr"error in line %d: %s"linecntbuffer2 );
            exit( 
20 ); /* RETURN_ERROR */
        
}
        if( 
endp slashnum )
        {
            
/*
             * Supporting this would require rewriting the whole lookup thing
             * to use hash/btree instead of linear lookuptable (or using some
             * really sucky linear search per string ref.. oh-no). If someone
             * bothers, go ahead. - piru
             */
            
fprintfstderr"we don't support setting the catalog string ID. sorry.\n" );
            exit( 
20 ); /* RETURN_ERROR */
        
}
        
strcpy(buffer2buffer);

        
buffer] = '\0';

        
// now read actual string data
        
for(;;)
        {
            if( !
fgetsbuffer3sizeofbuffer3 ), inf ) )
                break;
            
linecnt++;
            
strrchrbuffer3'\n' );
            if( 
)
                *
'\0';
            if( 
buffer3] )
            {
                
strchrbuffer3) - 1;
                if( *
== '\\' )
                {
                    *
'\0';
                    
strcatbufferbuffer3 );
                }
                else
                {
                    
strcatbufferbuffer3 );
                    break;
                }
            }
        }

        
// buffer has string, buffer2 has label
        
buffer;
        
buffer;
        while(( 
= *p++ ))
        {
            
unsigned char bf];
            
unsigned long v;
            
unsigned char *endp;

            if( 
== '\\' ) switch( (= *p++) )
            {
                case 
'a':  /* bell */
                    
*d++ = 7;
                    break;

                case 
'b':  /* backspace */
                    
*d++ = 8;
                    break;

                case 
'c':  /* control sequence introducer */
                    
*d++ = 0x9b;
                    break;

                case 
'e':  /* escape */
                    
*d++ = '\e';
                    break;

                case 
'f':  /* form feed */
                    
*d++ = 12;
                    break;

                case 
'g':  /* bell (flexcat) */
                    
*d++ = 7;
                    break;

                case 
'n':  /* carriage return */
                    
*d++ = '\n';
                    break;

                case 
'r':  /* life feed */
                    
*d++ = '\r';
                    break;

                case 
't':  /* tab */
                    
*d++ = '\t';
                    break;

                case 
'v':  /* vertical tab */
                    
*d++ = 11;
                    break;

                case 
'\\':
                    *
d++ = '\\';
                    break;

                case 
'"'/* undocumented, should fail? */
                    
*d++ = '"';
                    break;

                case 
'x':
                    
bf] = *p++;
                    
bf] = *p++;
                    
bf] = '\0';

                    
strtoulbf, (char **)&endp16 );
                    if( 
endp != &bf] )
                    {
                        
fprintfstderr"invalid hex number in line %d: %s\n"linecnt);
                        exit( 
20 );
                    }
                    if( !
)
                        
0xff;
                    *
d++ = v;
                    break;

                case 
'0':
                case 
'1':
                case 
'2':
                case 
'3'/* 255 in octal is 377, so first digit can only be 0-3. */
                    
bf] = c;
                    
bf] = *p++;
                    
bf] = *p++;
                    
bf] = '\0';

                    
strtoulbf, (char **)&endp);
                    if( 
endp != &bf] || 255 )
                    {
                        
fprintfstderr"invalid octal number in line %d: %s\n"linecnt);
                        exit( 
20 );
                    }
                    if( !
)
                        
0xff;
                    *
d++ = v;
                    break;

                default:
                    
fprintfstderr"unknown format code in line %d: %s\n"linecnt);
                    exit( 
20 );
            }
            else
            {
                *
d++ = c;
            }
        }
        *
'\0';

        
bufferlen buffer;
        
mallocsizeof( *) + bufferlen strlen(buffer2) + 1);
        if( !
)
        {
            
fprintfstderr"out of memory\n" );
            exit( 
20 ); /* RETURN_ERROR */
        
}
        
n->label n->text bufferlen 1;
        
strcpyn->labelbuffer2 );
        
memcpyn->textbufferbufferlen 1);
        
n->len bufferlen;
        
size += n->len;

        
n->part 0;
        
n->partoffset 0;

        
n->number number++;

        
ADDTAIL( &osl, &n->on );

        
// add node
        
if( ISLISTEMPTY( &sl ) )
            
ADDTAIL( &sl, &n->);
        else
        {
            
struct stringnode *rn2 FIRSTNODE( &sl );

            if( 
n->len rn2->len )
                
ADDHEAD( &sl, &n->);
            else
            {
                for( 
rn rn2rn2 NEXTNODErn2 ); NEXTNODErn2 ); rn rn2rn2 NEXTNODErn2 ) )
                {
                    if( 
n->len >= rn2->len )
                    {
                        
INSERT( &sl, &n->n, &rn->);
                        break;
                    }
                }
                if( !
NEXTNODErn2 ) )
                    
ADDTAIL( &sl, &n->);
            }
        }
    }

    
printf"read %d strings, %d bytes\n"numbersize );
}

static 
void optimizestringsvoid )
{
    
struct stringnode *n;
    
int optcnt 0optsize 0;

    for( 
FIRSTNODE( &sl ); NEXTNODE); NEXTNODE) )
    {
        
struct stringnode *cmp;

        for( 
cmp FIRSTNODE( &sl ); cmp != ncmp NEXTNODEcmp ) )
        {
            if( !
cmp->part && !strncmp( &cmp->textcmp->len n->len ], n->textn->len ) )
            {
                
// found
                //printf( "found match '%s' (%s) in '%s' (%s)\n", n->text, n->label, cmp->text, cmp->label );
                
n->part cmp;
                
n->partoffset cmp->len n->len;
                
optcnt++;
                
optsize += n->len;
                break;
            }
        }
    }
    
printf"optimized %d strings, %d bytes\n"optcntoptsize );
}

static 
void writehfileFILE *hf )
{
    
struct node *node;
    
int cnt 0;

    for( 
node FIRSTNODE( &osl ); NEXTNODEnode ); node NEXTNODEnode ), cnt++ )
    {
        
struct stringnode *= (void *)((char *)node offsetofstruct stringnodeon ));
        
fprintfhf"#define %s %d\n"n->labeln->number );
    }

    
fprintfhf"#define NUMCATSTRING %d\n"cnt );
}

static 
void writeasmfileFILE *af )
{
    
struct stringnode *n;
    
struct node *node;

    
fprintfaf"\tsection _NOMERGE,data\n" );

    for( 
FIRSTNODE( &sl ); NEXTNODE); NEXTNODE) )
    {
        if( !
n->part )
        {
            
unsigned char *n->text;
            
int cnt 0;
            
fprintfaf"msg%d: "n->number );
            while( *
)
            {
                if( !
cnt )
                    
fprintfaf" dc.b " );
                else
                    
fprintfaf"," );

                if( *
== 0xff )
                {
                    
fprintfaf"0");
                    
p++;
                }
                else
                    
fprintfaf"%lu", (unsigned long)*p++ );
                if( ++
cnt == 20 )
                {
                    
fprintfaf"\n" );
                    
cnt 0;
                }
            }
            
fprintfaf"\n\tdc.b 0\n" );
        }
    }

    
fprintfaf"\tsection __MERGED,data\n\txdef ___stringtable\n___stringtable:\n" );

    for( 
node FIRSTNODE( &osl ); NEXTNODEnode ); node NEXTNODEnode ) )
    {
        
= (void *)((char *)node offsetofstruct stringnodeon ));
        if( !
n->part )
            
fprintfaf"\tdc.l msg%d\n"n->number );
        else
            
fprintfaf"\tdc.l msg%d+%ld\n"n->part->number, (unsigned long)n->partoffset );
    }

    
fprintfaf"\n\tend\n" );
}

static 
void writecfileFILE *cf )
{
    
struct stringnode *n;
    
struct node *node;
    
int    stroffset 0;
    
int    cnt 0;

    
fprintfcf"unsigned char __strings[]=\n\t"");

    for( n = FIRSTNODE( &sl ); NEXTNODE( n ); n = NEXTNODE( n ) )
    {
        n->number = stroffset;

        if( !n->part )
        {
            unsigned char *p = n->text;
            while( *p )
            {
                fprintf( cf, "
\\x%02x", *p == 0xff ? '\0' : *p);

                p++;
                stroffset++;

                if (++cnt == 20)
                {
                    fprintf( cf, ""\n\t"");
                    cnt = 0;
                }
            }
            fprintf( cf, "
\\x00" );
            stroffset++;

            if (++cnt == 20)
            {
                fprintf( cf, ""\n\t"");
                cnt = 0;
            }
        }
    }

    fprintf( cf, "";\n\n"
);

    
fprintfcf"unsigned char *__stringtable[] = {\n\t");

    for( 
node FIRSTNODE( &osl ); NEXTNODEnode ); node NEXTNODEnode ) )
    {
        
= (void *)((char *)node offsetofstruct stringnodeon ));
        if( !
n->part )
            
fprintfcf"__strings+%ld", (unsigned long)n->number );
        else
            
fprintfcf"__strings+%ld", (unsigned long)(n->part->number+n->partoffset) );

        if( 
NEXTNODENEXTNODEnode ) ) )
            
fprintfcf",\n\t" );
    }
    
fprintfcf"\n};\n\n" );
}

int mainint argcchar **argv )
{
    
FILE *inf, *hf, *af 0, *cf 0;

    if( 
argc || argc )
    {
        
fprintfstderr"usage: %s cdfile .h-file ['cfile']\n"argv[0] );
        exit( 
20 );
    }

    
inf fopenargv], "r" );
    if( !
inf )
    {
        
fprintfstderr"can't open %s\n"argv] );
        exit( 
10 );
    }

    
hf fopenargv], "w" );
    if( !
hf )
    {
        
fprintfstderr"can't open %s\n"argv] );
        exit( 
10 );
    }

    if (
argc == 3)
    {
        
af fopen"cattmp.a""w" );
        if( !
af )
        {
            
fprintfstderr"can't open cattmp.a\n" );
            exit( 
10 );
        }
    }
    else
    {
        
cf fopen"cattmp.c""w" );
        if( !
cf )
        {
            
fprintfstderr"can't open cattmp.c\n" );
            exit( 
10 );
        }
    }

    
NEWLIST( &sl );
    
NEWLIST( &osl );

    
readstringsinf );
    
optimizestrings();
    
writehfilehf );

    if (
argc == 3)
    {
        
writeasmfileaf );
    }
    else
    {
        
writecfilecf );
    }

    
//printf( "done\n" );
    
return 0;
}


Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Just can't stay away
Just can't stay away


See User information
@kas1e

ok thx, compiled and executeable works on my crosscompiler too.

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Home away from home
Home away from home


See User information
@kas1e

Quote:
Dunno, all that start to smeel like crap :) Never liked those boring and overcomplecated things with translations :)


Come on mate is not that complicated :)
There are max 7-8 unmantained catalogs in owb, even if you will end to add strings manually to them it's no more than 5 minutes of extra work ... i don't think you will add new strings so often right ?

Aniway, later we can even decide to switch to Transifex, other projects like MUI or YAM prove its efficiency when many translations are involved and not all still mantained at the same level ;)

Go to top
Re: Localisation: Is it possible to generate .CT files if you have just CD and Catalog files ?
Just popping in
Just popping in


See User information
@thread

All seams overly complicated, maybe have a universal catalogue file for all software to use, easy parse in Json format or new IFF data format.

Go to top

  Register To Post
(1) 2 3 »

 




Currently Active Users Viewing This Thread: 2 ( 0 members and 2 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project