Patch level : 2.1 048

Files correlati     : mr0.exe mr1.exe mr2.exe
Ricompilazione Demo : [ ]
Commento            :
Bug 0000135

 Implementare la gestione multilingua


git-svn-id: svn://10.65.10.50/trunk@12087 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2004-05-18 11:17:26 +00:00
parent 3005fcd67a
commit a29e4b43d4
10 changed files with 192 additions and 227 deletions

View File

@ -55,14 +55,14 @@ bool TMRP_mask::init_calendar()
if (cf.dirty())
{
TString str(80);
str = "Il calendario ";
str = TR("Il calendario ");
switch (calendar().tipo())
{
case 'L': str << "della linea " << calendar().linea(); break;
case 'I': str << "del impianto " << calendar().impianto(); break;
default : str << "standard"; break;
case 'L': str << TR("della linea ") << calendar().linea(); break;
case 'I': str << TR("del impianto ") << calendar().impianto(); break;
default : str << TR("standard"); break;
}
str << " e' stato modificato:\nsi desidera salvare le modifiche effettuate?";
str << TR(" e' stato modificato:\nsi desidera salvare le modifiche effettuate?");
if (yesno_box(str))
calendar().rewrite();
}
@ -323,7 +323,7 @@ int mr0100(int argc, char* argv[])
if (argc > 2)
{
TString name;
name << "Tabella " << argv[2];
name << TR("Tabella ") << argv[2];
TMRPtables a;
a.run(argc, argv, name);
}

View File

@ -124,6 +124,6 @@ int mr0400(int argc, char* argv[])
{
TConf_MRP_application app;
app.run(argc, argv, "Parametri gestione MRP");
app.run(argc, argv, TR("Parametri gestione MRP"));
return 0;
}

View File

@ -309,7 +309,7 @@ bool TRepgen_mask::test_tipodoc_num(const TSheet_field &sheet_num ,const TShee
}
}
if (!ok)
return error_box("Il tipo '%s' non appartiene a nessuna delle numerazioni scelte",(const char*)tipo);
return error_box(FR("Il tipo '%s' non appartiene a nessuna delle numerazioni scelte"),(const char*)tipo);
}
return TRUE;
}
@ -359,7 +359,7 @@ void TRepgen_mask::calcola_capacita(TAssoc_array& capacita) const
TString16 codimp;
capacita.restart();
TProgind pi(capacita.items(), "Calcolo capacita linee", FALSE, TRUE);
TProgind pi(capacita.items(), TR("Calcolo capacita linee"), FALSE, TRUE);
THash_object* ho = capacita.get_hashobj();
for (;ho != NULL; ho = capacita.get_hashobj())
{
@ -431,7 +431,7 @@ bool TRepgen_mask::elabora() const
const long items = cur.items();
cur.freeze(TRUE);
msg = "Elaborazione numerazione "; msg << codnum;
msg = TR("Elaborazione numerazione "); msg << codnum;
TProgind pi(items, msg, FALSE, TRUE);
// Scandisce le righe dei documenti
@ -530,7 +530,7 @@ bool TRepgen_mask::elabora() const
calcola_capacita(capacita);
const long total = articles.items();
TProgind pi(total, "Generazione file", FALSE, TRUE);
TProgind pi(total, TR("Generazione file"), FALSE, TRUE);
TMask_field& fld = field(F_FILENAME);
TFilename filename = fld.get();
@ -597,7 +597,7 @@ bool TRepgen_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
const TSheet_field& s = (const TSheet_field&)o;
FOR_EACH_SHEET_ROW_BACK(s, r, row)
if (!row->empty_items()) return TRUE;
return error_box("E' necessario inserire almeno una numerazione");
return error_box(TR("E' necessario inserire almeno una numerazione"));
}
break;
case F_TIPI:
@ -619,7 +619,7 @@ bool TRepgen_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
const bool ok=test_tipodoc_num(sfield(F_NUMERAZIONI), s );
return ok;
}
return error_box("E' necessario inserire almeno una riga");
return error_box(TR("E' necessario inserire almeno una riga"));
}
break;
case F_YEAR:
@ -736,7 +736,6 @@ class TMRP_repgen : public TSkeleton_application
{
TRepgen_mask * _m;
TMRP_form * _form;
TLocalisamfile * _mrprep;
TCodgiac_livelli *_codgiac;
int _livello;
tipo_ordinamento _tipo_ord;
@ -759,7 +758,7 @@ public:
bool TMRP_repgen::create()
{
_m = new TRepgen_mask;
_mrprep = new TLocalisamfile(LF_MRPREP);
open_files(LF_MRPREP, 0);
_codgiac = new TCodgiac_livelli;
if (!_codgiac->enabled())
_m->hide(F_LIVDET);
@ -771,8 +770,6 @@ bool TMRP_repgen::destroy()
delete _codgiac;
if (_m)
delete _m;
if (_mrprep)
delete _mrprep;
return TSkeleton_application::destroy();
}
@ -793,18 +790,18 @@ void TMRP_repgen::set_buckets_description()
const short first_id = 3;
const short last_id = 15;
--fd;
descr.format("\nAl %s", (const char*)fd);
descr.format(FR("\nAl %s"), (const char*)fd);
if (bucket_size == 7)
{
fd.get_week_year(weekd, yeard, week_complete);
descr << "\nSett. " << weekd << ' ' << yeard;
descr << TR("\nSett. ") << weekd << ' ' << yeard;
}
_form->find_field('B', odd_page, first_id).set_col_head(descr);
TDate wd;
for (;fd <= td;)
{
++fd;
descr.format("Dal %s\nAl ", (const char*)fd);
descr.format(FR("Dal %s\nAl "), (const char*)fd);
fd += bucket_size-1;
wd = fd;
descr << (const char*)fd;
@ -814,15 +811,15 @@ void TMRP_repgen::set_buckets_description()
if (bucket_size == 7)
{
wd.get_week_year(weekd, yeard, week_complete);
descr << "\nSett. " << weekd << ' ' << yeard;
descr << TR("\nSett. ") << weekd << ' ' << yeard;
}
_form->find_field('B', odd_page, id).set_col_head(descr);
}
descr.format("Dal %s", (const char*)wd);
descr.format(FR("Dal %s"), (const char*)wd);
if (bucket_size == 7)
{
wd.get_week_year(weekd, yeard, week_complete);
descr << "\n\nSett. " << weekd << ' ' << yeard;
descr << TR("\n\nSett. ") << weekd << ' ' << yeard;
}
_form->find_field('B', odd_page, last_id).set_col_head(descr);
}
@ -1034,6 +1031,6 @@ void TMRP_repgen::main_loop()
int mr1100(int argc, char* argv[])
{
TMRP_repgen a;
a.run(argc, argv, "Generazione MRP reports");
a.run(argc, argv, TR("Generazione MRP reports"));
return 0;
}

View File

@ -139,7 +139,7 @@ int TMRP_line::add_son(const real& qta, TMRP_line* son)
{
CHECK(son, "Can't add NULL TMRP_line son");
if (son == this)
fatal_box("Riga di MRP %sz %s padre di se stessa", (const char *)articolo(), (const char *)livgiac());
fatal_box(FR("Riga di MRP %sz %s padre di se stessa"), (const char *)articolo(), (const char *)livgiac());
CHECK(son != this, "Hermafrodite TMRP_line");
_qta_sons.add(qta);
return _sons.add(son);
@ -999,7 +999,7 @@ int TMatResMask::num_orders()
}
bool TMatResMask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
const char * confirm_msg="Le attuali %d righe di ordine verranno perse. Confermare?";
const char * confirm_msg=FR("Le attuali %d righe di ordine verranno perse. Confermare?");
switch (o.dlg())
{
case F_DADATA:
@ -1036,7 +1036,7 @@ bool TMatResMask::on_field_event(TOperable_field& o, TField_event e, long jolly)
const TSheet_field& s = (const TSheet_field&)o;
FOR_EACH_SHEET_ROW_BACK(s, r, row)
if (!row->empty_items()) return TRUE;
return error_box("E' necessario inserire almeno una riga");
return error_box(TR("E' necessario inserire almeno una riga"));
}
break;
case F_ORDINI:
@ -1154,7 +1154,7 @@ bool TMatResMask::on_field_event(TOperable_field& o, TField_event e, long jolly)
if (e == fe_button && check_fields())
{
if (!app().emit_orders())
message_box("Nessun ordine generato");
message_box(TR("Nessun ordine generato"));
}
break;
case DLG_PRINT:
@ -1460,7 +1460,7 @@ void TMatResMask::select_orders(char type, const char * dacatmer,const char * ac
s.force_update(r);
}
}
TString msg=format("Ordini %s %s",type=='F' ? "fornitore" : "di produzione" ,on ? "selezionati" :"de-selezionati");
TString msg=format(FR("Ordini %s %s"),type=='F' ? TR("fornitore") : TR("di produzione") ,on ? TR("selezionati") :TR("de-selezionati"));
xvt_statbar_set(msg);
}
@ -1489,7 +1489,7 @@ TMatResMask::TMatResMask() : TCalendar_mask("mr2100a"), _sel_color(sfield(F_ORDI
disable(F_NOIMP); // Forza l'ignoramento degli impianti
set(F_NOIMP, "X");
}
_nodist_pos =_sel_color.add_color_def("NODIST", "Art.pianificati senza distinta", COLOR_YELLOW, COLOR_BLACK);
_nodist_pos =_sel_color.add_color_def("NODIST", TR("Art.pianificati senza distinta"), COLOR_YELLOW, COLOR_BLACK);
}
@ -1892,7 +1892,7 @@ bool TMatResPlanning::load_gross_requirements()
TString_array& n = m.sfield(F_NUM_ORC).rows_array();
TString_array& a = m.sfield(F_TIPI_ORC).rows_array();
TProgind pi(table_items("%NUM"), "Caricamento fabbisogni lordi...", TRUE, TRUE);
TProgind pi(table_items("%NUM"), TR("Caricamento fabbisogni lordi..."), TRUE, TRUE);
// Scandisce tutte le numerazioni considerando solo quelle
// contenenti i tipi documento specificati nella maschera
@ -2019,7 +2019,7 @@ bool TMatResPlanning::explode_articles()
if (pi == NULL)
{
TString80 msg;
msg.format("Esplosione articoli (livello %d)", level++);
msg.format(FR("Esplosione articoli (livello %d)"), level++);
pi = new TProgind(_articles.items()-a, msg, TRUE, TRUE);
}
pi->addstatus(1);
@ -2097,7 +2097,7 @@ bool TMatResPlanning::load_planned_orders()
TString_array& n = m.sfield(F_NUM_ORF).rows_array();
TString_array& a = m.sfield(F_TIPI_ORF).rows_array();
TProgind pi(table_items("%NUM"), "Caricamento arrivi futuri...", TRUE, TRUE);
TProgind pi(table_items("%NUM"), TR("Caricamento arrivi futuri..."), TRUE, TRUE);
// Scandisce tutte le numerazioni considerando solo quelle
// contenenti i tipi documento specificati nella maschera
@ -2249,20 +2249,6 @@ bool TMatResPlanning::gross2net_logic(TMRP_line &curr_article, int bucket, bool
{
tmpreal = curr_article.on_hand(bucket);
tmpreal -= curr_article.gross_requirement(bucket);
#ifdef DBG
if (curr_article.articolo() == "U01121")
{
s = tmpreal.string();
tmpreal.round(5);
s = tmpreal.string();
}
if (curr_article.articolo() == "U00124")
{
s = tmpreal.string();
tmpreal.round(5);
s = tmpreal.string();
}
#endif
if (!sc_used)
{
curr_article.scorta_minima(sm, curr_article.time(bucket).date());
@ -2332,7 +2318,7 @@ bool TMatResPlanning::net_requirement_cycle()
// ordina gli articoli
const long total = _articles.sort();
TProgind pi(total, "Calcolo dei fabbisogni netti", FALSE, TRUE);
TProgind pi(total, TR("Calcolo dei fabbisogni netti"), FALSE, TRUE);
// cicla iterativamente sugli elementi di _articles
for (long a = 0; a < total; a++)
@ -2377,7 +2363,7 @@ bool TMatResPlanning::build_orders()
if (tot > 0L)
{
TProgind pi(tot, "Generazione righe ordini...", FALSE, TRUE);
TProgind pi(tot, TR("Generazione righe ordini..."), FALSE, TRUE);
for (long a = 0; a < tot; a++)
{
pi.addstatus(1);
@ -2422,7 +2408,7 @@ bool TMatResPlanning::build_orders()
const int orders=sf.items();
if (orders==0)
message_box("Nessun ordine da emettere");
message_box(TR("Nessun ordine da emettere"));
real price, qta;
TCodice_articolo codart;
FOR_EACH_SHEET_ROW(sf,n,row)
@ -2468,7 +2454,7 @@ void TMatResPlanning::print_orders_header(TPrinter& pr)
TString format;
TPrintrow row;
print_header(pr);
row.put("@48G@BSTAMPA PROPOSTE D'ORDINE DA M.R.P.");
row.put(FR("@48G@BSTAMPA PROPOSTE D'ORDINE DA M.R.P."));
pr.setheaderline(1,row);
row.reset();
set_body_order_line(row, NULL);
@ -2491,10 +2477,10 @@ void TMatResPlanning::print_orders_body(TPrinter& pr, TToken_string *sheetrow)
if (*sheetrow->get(F_DOCCODNUM-FIRST_FIELD) > ' ')
{
row.put(format("@%dGDocumento %s", pos+= 54+1, (const char *)sheetrow->get(F_DOCCODNUM-FIRST_FIELD)));
row.put(format(FR("@%dGDocumento %s"), pos+= 54+1, (const char *)sheetrow->get(F_DOCCODNUM-FIRST_FIELD)));
row.put(format("@%dG%d", pos+= 4+10+1, sheetrow->get_int(F_DOCANNODOC-FIRST_FIELD)));
row.put(format("@%dGn.%6ld", pos+= 4+1, sheetrow->get_long(F_DOCNUM-FIRST_FIELD)));
row.put(format("@%dGriga %3d", pos+= 2+6+1, sheetrow->get_int(F_DOCNRIGA-FIRST_FIELD)));
row.put(format(FR("@%dGriga %3d"), pos+= 2+6+1, sheetrow->get_int(F_DOCNRIGA-FIRST_FIELD)));
}
pr.print(row);
}
@ -2526,7 +2512,7 @@ void TMatResPlanning::set_body_order_line(TPrintrow &row, TToken_string *sheetro
sheetrow->get(F_QUANTITA-FIRST_FIELD, r);
row.put(format("@%dG%18s", pos, (const char *)r.string(18,5)));
} else {
row.put(format("@%dGQuantita'", pos+8));
row.put(format(FR("@%dGQuantita'"), pos+8));
}
row.put(format("@%dG%s", pos+= 18+1, sheetrow ? (const char *)sheetrow->get(F_UM-FIRST_FIELD): "UM"));
if (sheetrow)
@ -2549,7 +2535,7 @@ bool TMatResPlanning::print_orders()
TSheet_field& sf = m.sfield(F_ORDINI);
if (sf.items() < 1)
{
message_box("Nessun ordine da stampare");
message_box(TR("Nessun ordine da stampare"));
return FALSE;
}
TMask pmask("mr2100c.msk");
@ -2574,7 +2560,7 @@ bool TMatResPlanning::print_planning(TMask &pmask)
pr.open();
if (pmask.get_bool(S_RISALITA))
{
TIndwin(60,"Ordinamento proposte per articolo/data...",FALSE);
TIndwin(60,TR("Ordinamento proposte per articolo/data..."),FALSE);
sf.sort(order_compareADTF);
sf.force_update();
}
@ -2641,7 +2627,7 @@ bool TMatResPlanning::print_risalita(TToken_string &row, int ris_level, bool det
else
{
TPrintrow prow;
prow.put(format("@32gRisalita: impossibile rintracciare la proposta originale"));
prow.put(format(FR("@32gRisalita: impossibile rintracciare la proposta originale")));
pr.print(prow);
return FALSE;
}
@ -2693,22 +2679,22 @@ bool TMatResPlanning::print_risalita(const TMRP_line & line, const TDate &date,
return FALSE;
TPrintrow prow;
int pos = 30;
prow.put(format("@%dg Totale fabbisogno lordo %s", pos, lordo.string(18,5)));
prow.put(format(FR("@%dg Totale fabbisogno lordo %s"), pos, lordo.string(18,5)));
pr.print(prow);
prow.put(format("@%dg Giacenza iniziale %s", pos, on_hand.string(18,5)));
prow.put(format(FR("@%dg Giacenza iniziale %s"), pos, on_hand.string(18,5)));
pr.print(prow);
if (dett_ord)
{
prow.put(format("@%dg Ordini pianificati %s", pos, plan.string(18,5)));
prow.put(format(FR("@%dg Ordini pianificati %s"), pos, plan.string(18,5)));
pr.print(prow);
prow.put(format("@%dg Ordini confermati %s", pos, sched.string(18,5)));
prow.put(format(FR("@%dg Ordini confermati %s"), pos, sched.string(18,5)));
pr.print(prow);
}
sched += plan;
prow.put(format("@%dg Totale ordinato %s", pos, sched.string(18,5)));
prow.put(format(FR("@%dg Totale ordinato %s"), pos, sched.string(18,5)));
pr.print(prow);
netto -= plan;
prow.put(format("@%dg Totale da pianificare %s", pos, netto.string(18,5)));
prow.put(format(FR("@%dg Totale da pianificare %s"), pos, netto.string(18,5)));
pr.print(prow);
if (backlevel>1 || backlevel<0)
{
@ -2766,10 +2752,10 @@ int TMatResPlanning::print_internal_ref(const TMRP_internalref &iref, int backle
qtareq.round(5);
// documento di rif.
docdate = cache().get(LF_DOC,dockey).get(DOC_DATADOC);
r2.put(format("@86gDocumento %s",(const char *)docref->codnumdoc() ));
r2.put(format(FR("@86gDocumento %s"),(const char *)docref->codnumdoc() ));
r2.put(format("@101g%d",docref->annodoc() ));
r2.put(format("@106gn.%6ld",docref->numdoc()));
r2.put(format("@115griga %3d",docref->numrig()));
r2.put(format(FR("@115griga %3d"),docref->numrig()));
um = docref->um();
}
else
@ -2897,7 +2883,7 @@ bool TMatResPlanning::ask_save()
bool yes = TRUE;
if (tot > 0)
yes = yesno_box("Si desidera elaborare %d righe?", tot);
yes = yesno_box(FR("Si desidera elaborare %d righe?"), tot);
return yes;
}
@ -2924,7 +2910,7 @@ bool TMatResPlanning::emit_orders()
if (!ask_save())
return FALSE;
TProgind pi(sf.items(), "Generazione ordini", FALSE, TRUE);
TProgind pi(sf.items(), TR("Generazione ordini"), FALSE, TRUE);
FOR_EACH_SHEET_ROW(sf, r, row)
{
@ -2950,7 +2936,7 @@ bool TMatResPlanning::emit_orders()
if (datadoc < today && newdoc)
if (ignore_docdate_too_soon != K_ENTER && ignore_docdate_too_soon != K_ESC)
{
TYesnoallnone_box b(format("Riga %d: data di emissione del documento (%s) inferiore a quella odierna. Confermare?",r+1,(const char *)datadoc.string()), K_NO);
TYesnoallnone_box b(format(FR("Riga %d: data di emissione del documento (%s) inferiore a quella odierna. Confermare?"),r+1,(const char *)datadoc.string()), K_NO);
ignore_docdate_too_soon = b.run();
}
if (ignore_docdate_too_soon == K_NO || ignore_docdate_too_soon == K_ESC)
@ -2958,7 +2944,7 @@ bool TMatResPlanning::emit_orders()
if (datacon < datadoc && newdoc)
if (ignore_duedate_lt_docdate != K_ENTER && ignore_duedate_lt_docdate != K_ESC)
{
TYesnoallnone_box b(format("Riga %d: data di consegna (%s) inferiore a quella di emissione del documento (%s). Confermare?",r+1,(const char *)datacon.string(), (const char *)datadoc.string()), K_NO);
TYesnoallnone_box b(format(FR("Riga %d: data di consegna (%s) inferiore a quella di emissione del documento (%s). Confermare?"),r+1,(const char *)datacon.string(), (const char *)datadoc.string()), K_NO);
ignore_duedate_lt_docdate = b.run();
}
if (ignore_duedate_lt_docdate == K_NO || ignore_duedate_lt_docdate == K_ESC)
@ -2968,7 +2954,7 @@ bool TMatResPlanning::emit_orders()
if ((prod && !tipo_doc_prod.clifo_optional()) ||
(!prod && !tipo_doc_forn.clifo_optional()))
{
error_box("Codice fornitore mancante alla riga %d", r+1);
error_box(FR("Codice fornitore mancante alla riga %d"), r+1);
continue;
}
}
@ -3132,7 +3118,7 @@ void TMatResPlanning::risalita(const TMask & m)
rismask->run();
delete rismask;
} else
message_box("Impossibile rintracciare la riga d'ordine indicata tra quelle generate in MRP");
message_box(TR("Impossibile rintracciare la riga d'ordine indicata tra quelle generate in MRP"));
}
@ -3146,7 +3132,7 @@ bool TMatResPlanning::print_exceptions(TMask &m)
{
// PER OGNI ARTICOLO ...
const long max_mrp_rows=_articles.items();
TProgind pi=((max_mrp_rows+1) ,"Ricerca eccezioni...", TRUE, TRUE);
TProgind pi=((max_mrp_rows+1) ,TR("Ricerca eccezioni..."), TRUE, TRUE);
for (long mrp_row=0; mrp_row < max_mrp_rows; mrp_row++)
{
pi.addstatus(1);
@ -3160,7 +3146,7 @@ bool TMatResPlanning::print_exceptions(TMask &m)
} // ... for each article
}
if (e.items()<=0)
message_box("Nessuna eccezione rilevata");
message_box(TR("Nessuna eccezione rilevata"));
else
print_exceptions(e);
return e.items()>0;
@ -3171,7 +3157,7 @@ void TMatResPlanning::print_except_header(TPrinter& pr)
TString format;
TPrintrow row;
print_header(pr);
row.put("@48G@BSTAMPA TABULATO ECCEZIONI DA M.R.P.");
row.put(FR("@48G@BSTAMPA TABULATO ECCEZIONI DA M.R.P."));
pr.setheaderline(1,row);
row.reset();
row.put((const char *)TString(131,'-'));
@ -3259,13 +3245,12 @@ void print_header(TPrinter& pr)
{
TString format;
TPrintrow row;
TLocalisamfile firm(LF_NDITTE);
TLocalisamfile anag(LF_ANAG);
firm.put("CODDITTA",main_app().get_firm());
firm.read();
anag.put("TIPOA",firm.get("TIPOA"));
anag.put("CODANAGR",firm.get("CODANAGR"));
anag.read();
const TRectype & firm = cache().get(LF_NDITTE, main_app().get_firm());
TString16 key;
key.format("%s|%s", (const char *) firm.get("TIPOA"), (const char *)firm.get("CODANAGR"));
const TRectype & anag= cache().get(LF_ANAG, key);
format << "@2g" << anag.get("RAGSOC")<< "@80g@>@110gPagina @#";
row.put(format);
pr.setheaderline(0,row);
@ -3281,7 +3266,7 @@ int mr2100(int argc, char* argv[])
{
TMatResPlanning a;
a.run(argc, argv, "Material Requirements Planning");
a.run(argc, argv, TR("Material Requirements Planning"));
return 0;
}

View File

@ -212,10 +212,10 @@ bool TSave_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
_m->elabora(); // necessario per ricaricare i rif alle righe
if (_exceptions.items())
{
if (yesno_box("%d eccezioni rilevate. Stampo il tabulato ?",_exceptions.items()))
if (yesno_box(FR("%d eccezioni rilevate. Stampo il tabulato ?"),_exceptions.items()))
_m->print_exceptions(_exceptions);
else
message_box("Controllare il tabulato eccezioni.");
message_box(TR("Controllare il tabulato eccezioni."));
}
break;
default:
@ -389,7 +389,7 @@ bool TPlanning_mask::test_tipodoc_num(const TSheet_field &sheet_num ,const TSh
}
}
if (!ok)
return error_box("Il tipo '%s' non appartiene a nessuna delle numerazioni scelte",(const char * )tipo);
return error_box(FR("Il tipo '%s' non appartiene a nessuna delle numerazioni scelte"),(const char * )tipo);
}
return TRUE;
}
@ -510,7 +510,7 @@ bool TPlanning_mask::carica_documenti()
TTable num("%NUM");
TCodice_numerazione cod;
TCodice_numerazione cod;
TRelation rel(LF_DOC);
TCursor cur(&rel);
@ -546,7 +546,7 @@ bool TPlanning_mask::carica_documenti()
// Scandisce i documenti inevasi e considera solo
// quelli con uno stato nel range corretto
TString msg;
msg.format("Caricamento documenti %s (numerazione '%s')",tn & _Doc_vincoli ? "ordine":"di planning",(const char *)cod.codice());
msg.format(FR("Caricamento documenti %s (numerazione '%s')"),tn & _Doc_vincoli ? "ordine":"di planning",(const char *)cod.codice());
TProgind pi(items,msg , TRUE, TRUE);
for (cur = 0; cur.pos() < items; ++cur)
{
@ -793,8 +793,8 @@ int TPlanning_mask::find_constr_row(TMSP_constraint& cons)
//linea articolo (vuota)
TMSP_line line(cons);
line.fill_sheet_row(sf.row(-1), *this);
rowgiac.add("** Giacenza teorica",F_DESCART-FIRST_FIELD);
row.add("** Ordini ",F_DESCART-FIRST_FIELD);
rowgiac.add(TR("** Giacenza teorica"),F_DESCART-FIRST_FIELD);
row.add(TR("** Ordini "),F_DESCART-FIRST_FIELD);
r = sf.items()-3+2;
if (cons.codclifor())
@ -812,7 +812,7 @@ void TPlanning_mask::set_sheet_header()
TSheet_field& sf = sfield(F_ARTICOLI);
sf.enable_column(F_CLIENTE,!get_bool(F_NOCLI_OUT));
sf.set_column_header(F_CLIENTE-FIRST_FIELD,*get(F_TIPOCF)=='C' ? "Cliente" : "Fornitore");
sf.set_column_header(F_CLIENTE-FIRST_FIELD,*get(F_TIPOCF)=='C' ? TR("Cliente") : TR("Fornitore"));
const TDate date_to = get(F_ADATA);
const int bucket_size = days_per_bucket();
@ -845,9 +845,9 @@ void TPlanning_mask::set_sheet_header()
default: d += bucket_size; break;
}
sl.set_column_header(F_LBUCKET0 + b, str);
str.insert("Qta ");
str.insert(TR("Qta "));
sf.set_column_header(F_BUCKET0 + b*2, str);
str.overwrite("Prz");
str.overwrite(TR("Prz"));
sf.set_column_header(F_BUCKET0 + b*2 +1, str);
}
sf.force_update();
@ -904,12 +904,12 @@ void TPlanning_mask::fill_sheet()
// aggiunge la linea di vincolo
TToken_string& consrow = sf.row(-1);
curr_constraint->fill_sheet_row(consrow, *this);
consrow.add("** Ordini ",F_DESCART-FIRST_FIELD);
consrow.add(TR("** Ordini "),F_DESCART-FIRST_FIELD);
sf.disable_cell(sf.items()-1, -1);
// aggiunge la linea della giacenza prog
TToken_string& rowgiac = sf.row(-1);
copy_sheet_row(rowgiac,consrow);
rowgiac.add("** Giacenza teorica",F_DESCART-FIRST_FIELD);
rowgiac.add(TR("** Giacenza teorica"),F_DESCART-FIRST_FIELD);
sf.disable_cell(sf.items()-1, -1);
// last_constraint = curr_constraint;
curr_constraint->set_on_sheet();
@ -942,8 +942,8 @@ void TPlanning_mask::fill_sheet()
//linea articolo (vuota)
TMSP_line line(cons);
line.fill_sheet_row(sf.row(-1), *this);
rowgiac.add("** Giacenza teorica",F_DESCART-FIRST_FIELD);
consrow.add("** Ordini ",F_DESCART-FIRST_FIELD);
rowgiac.add(TR("** Giacenza teorica"),F_DESCART-FIRST_FIELD);
consrow.add(TR("** Ordini "),F_DESCART-FIRST_FIELD);
if (consrow.get_long(sf.cid2index(F_CLIENTE)))
sf.disable_cell(sf.items()-1,sf.cid2index(F_CLIENTE));
}
@ -988,7 +988,7 @@ bool TPlanning_mask::remove_propose(bool verbose)
bool remove_all = FALSE;
bool some = _proposed_articles.items() > 0L; // proposte attuali
if (some)
remove = (!verbose || yesno_box("Vuoi annullare le nuove proposte?"));
remove = (!verbose || yesno_box(TR("Vuoi annullare le nuove proposte?")));
if (!some && verbose)
{
if (load_MRP_lines(_actual_plan))
@ -996,12 +996,12 @@ bool TPlanning_mask::remove_propose(bool verbose)
some = _mrp_articles.items() > 0L;
if (some)
{
remove = (noyes_box("Vuoi annullare tutte le pianificazioni non confermate?"));
if (remove && get_bool(F_RESCHEDULING) && noyes_box("Vuoi annullare anche le pianificazioni confermate?"))
remove = (noyes_box(TR("Vuoi annullare tutte le pianificazioni non confermate?")));
if (remove && get_bool(F_RESCHEDULING) && noyes_box(TR("Vuoi annullare anche le pianificazioni confermate?")))
remove_all = TRUE;
}
if (!remove)
message_box("Nessuna pianificazione da annullare");
message_box(TR("Nessuna pianificazione da annullare"));
else
_proposed_articles = _mrp_articles;
}
@ -1050,8 +1050,8 @@ void TPlanning_mask::add_or_sub_propose(char sign, bool scheduled)
sf.disable_cell(sf.items()-1, -1);
//linea articolo (vuota)
TToken_string& emptyrowc = sf.row(-1);
rowgiac.add("** Giacenza teorica",F_DESCART-FIRST_FIELD);
row.add("** Ordini ",F_DESCART-FIRST_FIELD);
rowgiac.add(TR("** Giacenza teorica"),F_DESCART-FIRST_FIELD);
row.add(TR("** Ordini "),F_DESCART-FIRST_FIELD);
}
int art_row;
for (art_row=int(sf.items())-1;art_row >=0; art_row--)
@ -1140,7 +1140,7 @@ void TPlanning_mask::check_articles()
int items=sf.items();
if (items==0)
{
message_box("Nessun articolo da verificare");
message_box(TR("Nessun articolo da verificare"));
return;
}
@ -1161,7 +1161,7 @@ void TPlanning_mask::check_capacities()
int items=sf.items();
if (items==0)
{
message_box("Nessun carico di linea da verificare");
message_box(TR("Nessun carico di linea da verificare"));
return;
}
TCRPCheck_mask cm(this);
@ -1260,7 +1260,7 @@ void TPlanning_mask::propose_1stJIT(TMSP_logic logic, bool check_machine, bool c
if (ok = load_MRP_lines(_actual_plan))
{
gross2net(_actual_plan,FALSE);
ok = general_review(check_machine, check_human, useextralines, useextrahours,FALSE, no_outcapacity,0, 0,_actual_plan, logic, "Calcolo carico minimo...");
ok = general_review(check_machine, check_human, useextralines, useextrahours,FALSE, no_outcapacity,0, 0,_actual_plan, logic, TR("Calcolo carico minimo..."));
}
}
// (two) levels master scheduling
@ -1273,7 +1273,7 @@ void TPlanning_mask::propose_1stJIT(TMSP_logic logic, bool check_machine, bool c
_proposed_articles.destroy();
gross2net(_stock_break, lotsizing);
const char * msg;
msg = (level == 1) ? "Calcolo nuove proposte (articoli non Master)" :"Calcolo nuove proposte";
msg = (level == 1) ? TR("Calcolo nuove proposte (articoli non Master)") :TR("Calcolo nuove proposte");
const int anticipomin=get_int((level == 2) ? F_ANTICIPOMIN : F_ANTICIPOMIN2);
const int anticipomax=get_int((level == 2) ? F_ANTICIPOMAX : F_ANTICIPOMAX2);
if (ok = general_review(check_machine, check_human, useextralines, useextrahours,lotsizing, no_outcapacity,anticipomin,anticipomax,_stock_break, logic, msg))
@ -1290,10 +1290,10 @@ void TPlanning_mask::propose_1stJIT(TMSP_logic logic, bool check_machine, bool c
TDate dbuck(starting_date());
dbuck +=buck*days_per_bucket();
round_date(dbuck);
message_box("Quantita' proposte a partire dal %s (colonna %d)", (const char *)dbuck.string(),buck);
message_box(FR("Quantita' proposte a partire dal %s (colonna %d)"), (const char *)dbuck.string(),buck);
}
else
message_box("Nessuna nuova proposta");
message_box(TR("Nessuna nuova proposta"));
}
}
else
@ -1400,7 +1400,7 @@ bool TPlanning_mask::general_review(bool check_machine, bool check_human, bool u
nlinea= curr_labor->find_linea(codlin);
if (nlinea<0)
{
error_box("La linea %s non e' in grado di produrre l'articolo %s", (const char * )codlin, (const char *) _mrp_articles[mrp_row].articolo());
error_box(FR("La linea %s non e' in grado di produrre l'articolo %s"), (const char * )codlin, (const char *) _mrp_articles[mrp_row].articolo());
break;
}
numlinee=nlinea+1;
@ -1639,7 +1639,7 @@ bool TPlanning_mask::capacity_review(bool useextralines, bool useextrahours)
gross2net(_actual_plan);
_capacities.destroy();
const char *msg="Calcolo carico attuale...";
const char *msg=TR("Calcolo carico attuale...");
if (get(F_RECALC_TYPE).left(1)=="1")
ok = general_review(TRUE, TRUE, useextralines, useextrahours, FALSE, FALSE, 0, 0, _actual_plan,_first_fit_logic, msg);
else if (get(F_RECALC_TYPE).left(3)=="JIT")
@ -1758,7 +1758,7 @@ bool TPlanning_mask::load_MRP_lines(TMSP_mode mode, int level, int numriga)
TSheet_field& sa = sfield(F_ARTICOLI);
if (sa.items()==0)
{
message_box("Nessun articolo da valutare");
message_box(TR("Nessun articolo da valutare"));
return FALSE;
}
TWait_cursor hourglass;
@ -2064,7 +2064,7 @@ bool TPlanning_mask::do_test_art_row(int r, int first, int last, bool signal)
{
if (signal)
{
error_box("Articolo nullo nella riga %d", r+1);
error_box(FR("Articolo nullo nella riga %d"), r+1);
signal = FALSE;
}
return signal;
@ -2115,7 +2115,7 @@ bool TPlanning_mask::do_test_art_row(int r, int first, int last, bool signal)
TString err;
TDate d = starting_date() + long(days_per_bucket() * (b-1));
round_date(d);
err << "Riga " << first+1 << ": Vincolo non ripettato al " << d;
err << TR("Riga ") << first+1 << ": Vincolo non ripettato al " << d;
beep();
signal =FALSE;
xvt_statbar_set(err);
@ -2142,7 +2142,7 @@ bool TPlanning_mask::do_test_art_row(int r, int first, int last, bool signal)
do_test_art_2ndlevel(art2ndlev);
else
if (signal)
message_box("Impossibile determinare l'articolo Master per %s",(const char*)currconstr->articolo());
message_box(FR("Impossibile determinare l'articolo Master per %s"),(const char*)currconstr->articolo());
r--;
}
while (art2ndlev=currconstr->get_unused_line2())
@ -2277,7 +2277,7 @@ bool TPlanning_mask::test_art_row(int r, bool signal)
{
if (value != goodvalue)
{
error_box("Impossibile modificare la quantita' per l'articolo %s, colonna %d",(const char *)line->articolo(),b);
error_box(FR("Impossibile modificare la quantita' per l'articolo %s, colonna %d"),(const char *)line->articolo(),b);
do_events();
ok = FALSE;
}
@ -2287,7 +2287,7 @@ bool TPlanning_mask::test_art_row(int r, bool signal)
{
if (!get_bool(F_RESCHEDULING) || get_int(F_RESCHED_ALERT))
{
TString msg (format("%s %s confermati per l'articolo %s, colonna %d",(const char *)line->qta_min(b).string(),(const char *)line->um(),(const char *)line->articolo(),b));
TString msg (format(FR("%s %s confermati per l'articolo %s, colonna %d"),(const char *)line->qta_min(b).string(),(const char *)line->um(),(const char *)line->articolo(),b));
if (get_bool(F_RESCHEDULING))
{
if (err)
@ -2340,7 +2340,7 @@ bool TPlanning_mask::test_load_row(int r, bool signal)
TString err;
TDate d = starting_date() + long(days_per_bucket() * (b-1));
round_date(d);
err << "Riga " << c+1 << ": capacità superata al " << d;
err << TR("Riga ") << c+1 << TR(": capacità superata al ") << d;
beep();
signal =FALSE;
xvt_statbar_set(err);
@ -2574,13 +2574,13 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
const bool ordiniXscadenza = get_bool(F_DIVIDEBYDATE);
if (ordiniXscadenza && ordiniXarticolo)
if (!noyes_box("E' stato scelto di generare un ordine diverso per ogni articolo e scadenza: confermare?"))
if (!noyes_box(TR("E' stato scelto di generare un ordine diverso per ogni articolo e scadenza: confermare?")))
return 0;
if (!(ordiniXscadenza || ordiniXarticolo))
if (!noyes_box("E' stato scelto di generare un unico ordine per ogni articolo e scadenza: confermare?"))
if (!noyes_box(TR("E' stato scelto di generare un unico ordine per ogni articolo e scadenza: confermare?")))
return 0;
TProgind pi(LAST_BUCKET*sf.items(), "Emissione documenti" , FALSE, TRUE);
TProgind pi(LAST_BUCKET*sf.items(), TR("Emissione documenti") , FALSE, TRUE);
if (ordiniXscadenza)
{
// *************************
@ -2604,7 +2604,7 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
key.format("%d",r);
if (row->get_long(F_BUCKET0+b-FIRST_FIELD)!=0L && !error_on_row.is_key(key))
{
error_box("Riga %d: manca l'indicazione del codice %s",r+1,get(F_TIPOCF)[0] == 'F' ? "fornitore" : "cliente");
error_box(FR("Riga %d: manca l'indicazione del codice %s"),r+1,get(F_TIPOCF)[0] == 'F' ? "fornitore" : "cliente");
error_on_row.add(key,NULL);
}
}
@ -2638,7 +2638,7 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
key.format("%d",r);
if (row->get_long(F_BUCKET0+b-FIRST_FIELD)!=0L && !error_on_row.is_key(key))
{
error_box("Riga %d: manca l'indicazione del codice %s",r+1,get(F_TIPOCF)[0] == 'F' ? "fornitore" : "cliente");
error_box(FR("Riga %d: manca l'indicazione del codice %s"),r+1,get(F_TIPOCF)[0] == 'F' ? "fornitore" : "cliente");
error_on_row.add(key,NULL);
}
}
@ -2657,11 +2657,11 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
switch (some)
{
case 0:
message_box("Nessun documento generato o modificato \n(numerazione %s, tipo %s)",
message_box(FR("Nessun documento generato o modificato \n(numerazione %s, tipo %s)"),
(const char *)save_numplan,(const char *)save_tipoplan);
break;
case -1:
if (!yesno_box("Problemi nella registrazione dei documenti.\n(numerazione %s, tipo %s)\nRipeto l'elaborazione ?",
if (!yesno_box(FR("Problemi nella registrazione dei documenti.\n(numerazione %s, tipo %s)\nRipeto l'elaborazione ?"),
(const char *)save_numplan,(const char *)save_tipoplan))
some = 0;
break;
@ -2669,7 +2669,7 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
}
}
if (somefilter == 0)
message_box("Nessuna opzione di registrazione selezionata");
message_box(TR("Nessuna opzione di registrazione selezionata"));
return some;
}
@ -2689,7 +2689,7 @@ bool TPlanning_mask::on_savefields_event(long jolly)
if (tmp == row->get(num_s.cid2index(F_NUMERAZ)))
break;
if (r < 0)
return sf.error_box("Numerazione '%s' non inclusa tra quelle di planning", (const char *)tmp);
return sf.error_box(FR("Numerazione '%s' non inclusa tra quelle di planning"), (const char *)tmp);
}
{
tmp = sf.row(nriga).get(sf.cid2index(F_TIPO_PLAN));
@ -2698,14 +2698,14 @@ bool TPlanning_mask::on_savefields_event(long jolly)
if (tmp == row->get(tipo_s.cid2index(F_TIPO)))
break;
if (r < 0)
return sf.error_box("Tipo documento '%s' non incluso tra quelli di planning", (const char *)tmp);
return sf.error_box(FR("Tipo documento '%s' non incluso tra quelli di planning"), (const char *)tmp);
}
} while (--nriga >= 0 && jolly < 0);
return TRUE;
}
bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
const char * confirm_msg="Le modifiche non registrate sulle attuali %d linee di articoli verranno perse: confermare?";
const char * confirm_msg=FR("Le modifiche non registrate sulle attuali %d linee di articoli verranno perse: confermare?");
switch (o.dlg())
{
case F_DADATA:
@ -2756,7 +2756,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
ok=test_tipodoc_num(sfield(F_NUM_ORC), s );
return ok;
}
return error_box("E' necessario inserire almeno una riga");
return error_box(TR("E' necessario inserire almeno una riga"));
}
break;
@ -3061,7 +3061,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
TMSP_line *l = _articles.find(s.row(curr_row));
if (l)
{
TLista_docref m(l,"Documenti pianificati", starting_date(), days_per_bucket());
TLista_docref m(l,TR("Documenti pianificati"), starting_date(), days_per_bucket());
if (m.reset_bucket_field())
{
if (m.run() != K_ESC)
@ -3069,7 +3069,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
}
return TRUE;
}
message_box("Nessun ordine pianificato per la riga corrente");
message_box(TR("Nessun ordine pianificato per la riga corrente"));
}
break;
case F_DOCUMENTI_IN:
@ -3089,7 +3089,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
{
case F_DOCUMENTI_IN:
{
TLista_docref m(c,"Documenti vincolo",starting_date(), days_per_bucket());
TLista_docref m(c,TR("Documenti vincolo"),starting_date(), days_per_bucket());
if (m.reset_bucket_field())
{
if (m.run()!= K_ESC)
@ -3104,7 +3104,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
if (m.reset_bucket_field())
m.run();
else
message_box("Nessun vincolo interno sulla riga corrente");
message_box(TR("Nessun vincolo interno sulla riga corrente"));
return TRUE;
}
break;
@ -3114,13 +3114,13 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
if (m.reset_bucket_field())
m.run();
else
message_box("Nessun articolo Master dipendente dalla riga corrente");
message_box(TR("Nessun articolo Master dipendente dalla riga corrente"));
return TRUE;
}
break;
}
}
message_box("Nessun vincolo per la riga corrente");
message_box(TR("Nessun vincolo per la riga corrente"));
}
break;
case F_SHOW_WEEK:
@ -3233,7 +3233,7 @@ void TPlanning_mask::init()
// sfield(F_TESTE).disable();
load_profile();
_npr_pos =_sel_color.add_color_def("PROP", "Nuove proposte", COLOR_YELLOW, COLOR_BLACK);
_npr_pos =_sel_color.add_color_def("PROP", TR("Nuove proposte"), COLOR_YELLOW, COLOR_BLACK);
}
@ -3491,7 +3491,7 @@ bool TMSPCheck_mask::on_field_event(TOperable_field& o, TField_event e, long jol
if (redo = move_to(FC_UP))
_col = LAST_BUCKET+1;
}
message_box("Ricerca terminata");
message_box(TR("Ricerca terminata"));
break;
case FC_DOWN_BAD:
@ -3513,7 +3513,7 @@ bool TMSPCheck_mask::on_field_event(TOperable_field& o, TField_event e, long jol
if (redo = move_to(FC_DOWN))
_col = -1;
}
message_box("Ricerca terminata");
message_box(TR("Ricerca terminata"));
break;
default:
@ -3762,6 +3762,6 @@ void TPlanning_app::main_loop()
int mr2200(int argc, char* argv[])
{
TPlanning_app a;
a.run(argc, argv, "Pianificazione ordini");
a.run(argc, argv, TR("Pianificazione ordini"));
return 0;
}

View File

@ -54,12 +54,12 @@ bool TMSP_form::validate(TForm_item &cf, TToken_string &cmd)
TString val;
if (rel->lfile().get("TIPO")=="C")
{
val="Ordini da soddisfare";
val=TR("Ordini da soddisfare");
}
else if (rel->lfile().get("TIPO")=="G")
val="Giacenza proiettata";
val=TR("Giacenza proiettata");
else
val="Ordini pianificati";
val=TR("Ordini pianificati");
cf.set(val);
}
return TRUE;
@ -106,12 +106,12 @@ bool TCRP_form::validate(TForm_item &cf, TToken_string &cmd)
const char type = curr.get_char("TIPO");
switch (type)
{
case 'D': val = " Capacità totale"; break;
case 'd': val = " Carico totale"; break;
case 'I': val = " Capacità impianto "; val << curr.get("IMPIANTO"); break;
case 'i': val = " Carico impianto "; val << curr.get("IMPIANTO"); break;
case 'L': val = " Capacità linea "; val << curr.get("LINEA"); break;
case 'l': val = " Carico linea "; val << curr.get("LINEA"); break;
case 'D': val = TR(" Capacità totale"); break;
case 'd': val = TR(" Carico totale"); break;
case 'I': val = TR(" Capacità impianto "); val << curr.get("IMPIANTO"); break;
case 'i': val = TR(" Carico impianto "); val << curr.get("IMPIANTO"); break;
case 'L': val = TR(" Capacità linea "); val << curr.get("LINEA"); break;
case 'l': val = TR(" Carico linea "); val << curr.get("LINEA"); break;
default:
val = curr.get("CODART");
val << " " << relation()->curr(LF_ANAMAG).get("DESCR");
@ -278,14 +278,12 @@ void complete_codlinea(TToken_string &r2, bool ignore_imp)
TString codimp(r2.get(F_CODIMP-FIRST_FIELD));
dist_tree().set_global("_IMPIANTO",codimp);
dist_tree().set_global("_LINEA","");
//dist_tree().set_global("_LIVELLO",);
//dist_tree().set_global("_MAGDEP",);
TArray labors;
TRiga_esplosione * l=dist_tree().first_critical_labor(labors);
if (l)
{
TLavorazione *curr_labor=TDistinta_tree::find_labor(l);
CHECK(curr_labor,"Lavorazione non trovata");
CHECK(curr_labor,TR("Lavorazione non trovata"));
for (int nlinea=0; nlinea <curr_labor->linee_standard(); nlinea ++)
{
const TRectype &linea_prod= cache().get("LNP",curr_labor->cod_linea(nlinea));
@ -563,7 +561,7 @@ TCRP_line::TCRP_line(const TString& codimp,const TString& codlin,const TString&
}
else
{
_desc = "Totale ditta";
_desc = TR("Totale ditta");
}
}
if (!codart.blank())
@ -589,7 +587,7 @@ void TCRP_line::fill_capacity_row(TToken_string& row, char load_type, bool perce
{
row.add(codimp(),F_CODIMPCRP -FIRST_FIELD);
row.add(codlin(),F_CODLINCRP -FIRST_FIELD);
row.add("Capacità",F_CODARTCRP -FIRST_FIELD);
row.add(TR("Capacità"),F_CODARTCRP -FIRST_FIELD);
row.add(percent ? "%" : (load_type == '$' ? " $ " :( load_type == 'P' ? "Pz." : "ore")),F_LUM -FIRST_FIELD);
@ -617,7 +615,7 @@ void TCRP_line::fill_load_row(TToken_string& row, char load_type, bool percent)
row.add(codimp(),F_CODIMPCRP -FIRST_FIELD);
row.add(codlin(),F_CODLINCRP -FIRST_FIELD);
if (codart().blank())
row.add("Carico",F_CODARTCRP -FIRST_FIELD);
row.add(TR("Carico"),F_CODARTCRP -FIRST_FIELD);
else
row.add(codart(),F_CODARTCRP -FIRST_FIELD);
@ -1339,11 +1337,11 @@ long TPlan_docs::flush(const TDate& data, const char * codart)
if (tot > 0L)
{
TString msg;
msg << "Registrazione dei documenti di planning";
msg << TR("Registrazione dei documenti di planning");
if (codart)
msg << " articolo " << codart;
msg << TR(" articolo ") << codart;
if (data.ok())
msg << " per il " << data;
msg << TR(" per il ") << data;
TProgind pi(tot, msg, FALSE, TRUE);
TLocalisamfile lfdoc(LF_DOC);
for (long d = 0; d < tot; d++)
@ -1372,7 +1370,7 @@ long TPlan_docs::flush(const TDate& data, const char * codart)
}
if (err != NOERR)
{
error_box("Impossibile riscrivere il documento del %d %s %ld",(int)doc.anno(), (const char *)doc.numerazione(),(long)doc.numero());
error_box(FR("Impossibile riscrivere il documento del %d %s %ld"),(int)doc.anno(), (const char *)doc.numerazione(),(long)doc.numero());
retv=-1;
}
}
@ -1481,9 +1479,9 @@ void TLista_dettagli::init(const char * title, TDate fromdate, int bucketsize)
_bucksize = bucketsize;
TMask_field &f= add_list(FIRST_FIELD,0,"Bucket ",1,0,2,"","0|1|2|3|4|5|6|7|8|9|10|11|12|13","0|1|2|3|4|5|6|7|8|9|10|11|12|13");
f.set_handler(bucket_handler);
add_date(FIRST_FIELD+1,0,"Dal ",16,0,"D");
add_date(FIRST_FIELD+2,0,"al ",33,0,"D");
add_string(FIRST_FIELD+3,0,"Settimana ",49,0,15,"D");
add_date(FIRST_FIELD+1,0,TR("Dal "),16,0,"D");
add_date(FIRST_FIELD+2,0,TR("al "),33,0,"D");
add_string(FIRST_FIELD+3,0,TR("Settimana "),49,0,15,"D");
}
TLista_dettagli::TLista_dettagli(const char * title, TDate fromdate, int bucketsize, const char * head) :
@ -1591,16 +1589,16 @@ TLista_docref ::~TLista_docref ()
const char *TLista_mastercodes::header()
{
static TToken_string h;
h = "@1|Articolo@20";
h = HR("@1|Articolo@20");
for (int l = 1; l <= livelli_giacenza().last_level() ; l++)
h << "|" << livelli_giacenza().name(l) << "@" << livelli_giacenza().code_length(l) ;
h.add("Impianto");
h.add("Linea|Cod.Mag.|UM|Quantita'@12|Consegna");
h.add(TR("Impianto"));
h.add(HR("Linea|Cod.Mag.|UM|Quantita'@12|Consegna"));
return h;
}
TLista_mastercodes::TLista_mastercodes(TMSP_constraint *c, TToken_string &l, TDate fromdate, int bucketsize):
TLista_dettagli("Articoli Master interessati", fromdate, bucketsize, header())
TLista_dettagli(TR("Articoli Master interessati"), fromdate, bucketsize, header())
{
_line_art = c->use_mspline2(l);
}
@ -1636,15 +1634,15 @@ long TLista_mastercodes::get_items(int b) const
const char *TLista_upperlines::header()
{
static TToken_string h;
h = "@1|Articolo@20";
h = HR("@1|Articolo@20");
for (int l = 1; l <= livelli_giacenza().last_level() ; l++)
h << "|" << livelli_giacenza().name(l) << "@" << livelli_giacenza().code_length(l) ;
h.add("Impianto|Linea|Mag.|Dep.|UM|Quantita'@12");
h.add(HR("Impianto|Linea|Mag.|Dep.|UM|Quantita'@12"));
return h;
}
TLista_upperlines::TLista_upperlines(TMSP_constraint *l, TDate fromdate, int bucketsize):
TLista_dettagli("Vincoli da articoli non Master", fromdate, bucketsize,header())
TLista_dettagli(TR("Vincoli da articoli non Master"), fromdate, bucketsize,header())
{
_line = l;
}

View File

@ -45,7 +45,7 @@ void TPlanning_mask::print_except_header(TPrinter& pr)
{
TPrintrow row;
print_header(pr);
row.put("@48G@BSTAMPA TABULATO ECCEZIONI DA M.S.P.");
row.put(FR("@48G@BSTAMPA TABULATO ECCEZIONI DA M.S.P."));
pr.setheaderline(1,row);
row.reset();
row.put((const char *)TString(131,'-'));
@ -60,8 +60,8 @@ void TPlanning_mask::print_articles(int from_col, int num_cols, const char * row
TIsamtempfile * report = new TIsamtempfile(LF_MRPREPORT,repname, TRUE, TRUE );
TString8 codimp,codlin;
TProgind pi(nrows, format("Stampa %s...",get_bool(F_MSCHEDULEPLAN)?
"Master Schedule Plan":"pianificazione ordini"));
TProgind pi(nrows, format(FR("Stampa %s..."),get_bool(F_MSCHEDULEPLAN)?
TR("Master Schedule Plan"):TR("pianificazione ordini")));
const int a_buck0 = sf.cid2index(F_BUCKET0);
for (int r=0; r<nrows; r++)
@ -151,13 +151,13 @@ void TPlanning_mask::print_articles(int from_col, int num_cols, const char * row
short b = -1;
--fd;
TString descr;
descr.format("Fino\nal %s", (const char*)fd);
descr.format(FR("Fino\nal %s"), (const char*)fd);
form.find_field('B', odd_page, first_id).set_col_head(descr);
for (;fd <= td;)
{
++b;
++fd;
descr.format("Da %s\nAl ",(const char*)fd);
descr.format(FR("Da %s\nAl "),(const char*)fd);
round_date(fd,TRUE,FALSE);
descr << fd.string();
if (first_id+b+1 > last_id)
@ -165,7 +165,7 @@ void TPlanning_mask::print_articles(int from_col, int num_cols, const char * row
form.find_field('B', odd_page, first_id+b+1).set_col_head(descr);
}
++td;
descr.format("Dal %s", (const char*)td);
descr.format(FR("Dal %s"), (const char*)td);
if (b == LAST_BUCKET)
form.find_field('B', odd_page, first_id+b+1).set_col_head(descr);
const int hh = 7;
@ -196,8 +196,8 @@ void TPlanning_mask::print_capacities()
TSheet_field& sf = sfield(F_LINEE);
const int nrows=sf.items();
TProgind pi(nrows, format("Stampa %s...",(*get(F_LOADTYPE)=='M')?
"carico macchina":"carico uomo"));
TProgind pi(nrows, format(FR("Stampa %s..."),(*get(F_LOADTYPE)=='M')?
TR("carico macchina"):TR("carico uomo")));
const int a_buck0 = sf.cid2index(F_LBUCKET0);
for (int r=0; r <nrows ; r++)
{
@ -257,7 +257,7 @@ bool TPlanning_mask::find_exceptions(TExceptions_array &e, bool anticipi, bool p
{
_mrp_articles.destroy();
if (verbose)
message_box("Rescheduling non abilitato");
message_box(TR("Rescheduling non abilitato"));
}
else if (load_MRP_lines(_rescheduling))
{
@ -265,7 +265,7 @@ bool TPlanning_mask::find_exceptions(TExceptions_array &e, bool anticipi, bool p
const int bucket1 = sf.cid2index(F_BUCKET1);
// PER OGNI ARTICOLO ...
const long max_mrp_rows=_mrp_articles.items();
TProgind pi=((max_mrp_rows+1)*LAST_BUCKET ,"Ricerca eccezioni...", TRUE, TRUE);
TProgind pi=((max_mrp_rows+1)*LAST_BUCKET ,TR("Ricerca eccezioni..."), TRUE, TRUE);
for (long mrp_row=0; mrp_row < max_mrp_rows; mrp_row++)
{
pi.addstatus(1);
@ -278,7 +278,7 @@ bool TPlanning_mask::find_exceptions(TExceptions_array &e, bool anticipi, bool p
} // ... for each article
}
if (verbose && e.items()<=0)
message_box("Nessuna eccezione rilevata");
message_box(TR("Nessuna eccezione rilevata"));
return e.items()>0;
}
@ -417,7 +417,7 @@ void TMRP_line::print_exception(int from, int to, const real &diff, int header)
if (header <= 0)
{
pr.print(prow);
prow.put(format("@bArticolo %s %s", (const char *)articolo(), (const char *)cache().get(LF_ANAMAG, code).get(ANAMAG_DESCR)));
prow.put(format(FR("@bArticolo %s %s"), (const char *)articolo(), (const char *)cache().get(LF_ANAMAG, code).get(ANAMAG_DESCR)));
pr.print(prow);
prow.reset();
if (livelli_giacenza().enabled())
@ -436,7 +436,7 @@ void TMRP_line::print_exception(int from, int to, const real &diff, int header)
}
if (header <= 1)
{
prow.put(format("Ordini emessi con scadenza entro il @41g%s", (const char*)fromdate.string()));
prow.put(format(FR("Ordini emessi con scadenza entro il @41g%s"), (const char*)fromdate.string()));
pr.print(prow);
prow.reset();
// stampa dettaglio ordini
@ -446,7 +446,7 @@ void TMRP_line::print_exception(int from, int to, const real &diff, int header)
for (int nref = 0; nref < nrefs; nref++)
{
TMRP_docref & docref = docrefs->get_ref(nref);
prow.put(format("@2gDocumento %s %4d n.%8ld riga %d %s %s",
prow.put(format(FR("@2gDocumento %s %4d n.%8ld riga %d %s %s"),
(const char*)docref.codnumdoc(),docref.annodoc(),docref.numdoc(),docref.numrig(),
(const char*)docref.qta_residua().stringa(18,3),(const char*)docref.um()));
pr.print(prow);
@ -457,8 +457,8 @@ void TMRP_line::print_exception(int from, int to, const real &diff, int header)
const TString16 um =cache().get(LF_UMART,code).get("UM");
const real v = abs(diff);
prow.put(format("@2g%s %s %s", (from == to) ?
(diff.sign()>0 ? "Eliminare " : "Aggiungere " ):
(from < to ? "Posticipare" : "Anticipare "),
(diff.sign()>0 ? TR("Eliminare ") : TR("Aggiungere ") ):
(from < to ? TR("Posticipare") : TR("Anticipare ")),
(const char*)v.stringa(18,3), (const char *)um));
if (from != to)
{

View File

@ -32,6 +32,6 @@ bool TMSP_app::create()
int mr2300(int argc, char* argv[])
{
TMSP_app a;
a.run(argc, argv, "Master Schedule Planning");
a.run(argc, argv, TR("Master Schedule Planning"));
return 0;
}

View File

@ -34,6 +34,6 @@ bool TOrdAcq_app::create()
int mr2400(int argc, char* argv[])
{
TOrdAcq_app a;
a.run(argc, argv, "Pianificazione ordini acquisto");
a.run(argc, argv, TR("Pianificazione ordini acquisto"));
return 0;
}

View File

@ -1,4 +1,5 @@
#include <config.h>
#include <diction.h>
#include <prefix.h>
#include <progind.h>
#include <tabutil.h>
@ -152,7 +153,7 @@ long TMRP_array::sort()
TProgind* pi = NULL;
if (last >= 16)
pi = new TProgind(last, "Ordinamento", FALSE, TRUE);
pi = new TProgind(last, TR("Ordinamento"), FALSE, TRUE);
else
begin_wait();
@ -206,9 +207,9 @@ void TMRP_calendar::init_default()
// Inizializza i turni dei 5 giorni feriali a 1
// Inizializza i turni di sabato e domenica a 0
// Inizializza i turni dei giorni festivi a 0
_days = cfg.get("Turni", NULL, -1, "1111100011111000");
_days = cfg.get(TR("Turni"), NULL, -1, "1111100011111000");
// Inizializza la lista delle feste comandate tranne la Pasqua
_holidays = cfg.get("Feste", NULL, -1,
_holidays = cfg.get(TR("Feste"), NULL, -1,
"01-01|06-01|25-04|01-05|15-08|01-11|08-12|25-12|26-12");
TUnita_produttiva * up=NULL;
if (_codlin.not_empty())
@ -278,19 +279,12 @@ void TMRP_calendar::suppress_holiday(int g, int m)
void TMRP_calendar::read_cal(const TString& key, char tipo)
{
TTable cal(tipo == 'L' ? "CAL" : "CAI");
TString16 codtab = tipo == 'L' ? _codlin : _codimp;
codtab << key;
cal.put("CODTAB", codtab);
TString* s1 = new TString(62);
if (cal.read() == NOERR)
*s1 = cal.get("S1");
const int l1 = s1->len();
if (l1 < s1->size())
{
const TString spc(s1->size()-l1, ' ');
*s1 << spc;
}
TString s1 = cache().get(tipo == 'L' ? "CAL" : "CAI", codtab, "S1");
s1.rpad(62);
if (tipo == 'L')
_exc_lin.add(key, s1);
else
@ -317,12 +311,12 @@ int TMRP_calendar::write_cal(char tipo) const
const int mese = atoi(codtab.mid(9, 2));
if (tipo == 'L')
{
s0 = "Linea ";
s0 = TR("Linea ");
s0 << _codlin;
}
else
{
s0 = "Impianto ";
s0 = TR("Impianto ");
s0 << _codimp;
}
s0 << ' ' << anno << ' ' << itom(mese);
@ -333,7 +327,7 @@ int TMRP_calendar::write_cal(char tipo) const
err = cal.rewrite();
if (err != NOERR)
{
error_box("Errore %d nell'aggiornamento del calendario %s",
error_box(FR("Errore %d nell'aggiornamento del calendario %s"),
err, (const char*)codtab);
break;
}
@ -600,23 +594,14 @@ void TMRP_calendar::set(const char* linea, const char* impianto)
if (_codlin.not_empty())
{
TTable lnp("LNP");
lnp.put("CODTAB", _codlin);
if (lnp.read() == NOERR)
{
if (impianto == NULL)
_codimp = lnp.get("S6");
}
else
_codlin = "";
const TRectype & lnp = cache().get("LNP", _codlin);
_codlin = lnp.get("CODTAB");
if (impianto == NULL)
_codimp = lnp.get("S6");
}
if (_codimp.not_empty())
{
TTable imp("IMP");
imp.put("CODTAB", _codimp);
if (imp.read() != NOERR)
_codimp = "";
}
_codimp = cache().get("IMP", _codimp, "CODTAB");
}
char TMRP_calendar::tipo() const
@ -689,29 +674,29 @@ void TCalendar_win::handler(WINDOW win, EVENT* ep)
switch (_calendario->tipo())
{
case 'S':
calname="Calendario standard";
calname=TR("Calendario standard");
break;
case 'I':
calname="Calendario impianto ";
calname=TR("Calendario impianto ");
calname << '"'<< _calendario->impianto() << '"';
break;
case 'L':
calname="Calendario linea ";
calname=TR("Calendario linea ");
calname << '"'<< _calendario->linea() << '"';
break;
}
TMask m(calname, 1, 40, 8);
m.add_static(DLG_NULL, 0, "Turni del giorno ", 1, 1);
m.add_static(DLG_NULL, 0, TR("Turni del giorno "), 1, 1);
m.add_date(101, 0, "", 1, 2, "D");
m.add_string(102, 0, "", 19, 2, 9, "D");
m.add_boolean(103, 0, "Festa", 31, 2, is_std ? "":"D");
m.add_boolean(103, 0, TR("Festa"), 31, 2, is_std ? "":"D");
if (is_std)
{
m.add_list(104, 0, "Turni minimi ", 1, 4, 8, "", "0|1|2|3|4|5|6|7|8", "Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
m.add_list(105, 0, "Turni massimi ", 1, 5, 8, "", "0|1|2|3|4|5|6|7|8", "Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
m.add_list(104, 0, TR("Turni minimi "), 1, 4, 8, "", "0|1|2|3|4|5|6|7|8", "Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
m.add_list(105, 0, TR("Turni massimi "), 1, 5, 8, "", "0|1|2|3|4|5|6|7|8", "Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
} else {
m.add_list(104, 0, "Turni minimi ", 1, 4, 8, "", " |0|1|2|3|4|5|6|7|8", "Standard|Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
m.add_list(105, 0, "Turni massimi ", 1, 5, 8, "", " |0|1|2|3|4|5|6|7|8", "Standard|Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
m.add_list(104, 0, TR("Turni minimi "), 1, 4, 8, "", " |0|1|2|3|4|5|6|7|8", "Standard|Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
m.add_list(105, 0, TR("Turni massimi "), 1, 5, 8, "", " |0|1|2|3|4|5|6|7|8", "Standard|Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
}
m.add_number(106, 0, "= ", 31, 4, 1, "D");
m.add_number(107, 0, "= ", 31, 5, 1, "D");