From a29e4b43d4798c68adaaf2b0c9ccb237f8c21424 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 18 May 2004 11:17:26 +0000 Subject: [PATCH] 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 --- mr/mr0100.cpp | 12 +++--- mr/mr0400.cpp | 2 +- mr/mr1100.cpp | 31 +++++++------- mr/mr2100.cpp | 101 +++++++++++++++++++------------------------- mr/mr2200.cpp | 114 +++++++++++++++++++++++++------------------------- mr/mr2201.cpp | 56 ++++++++++++------------- mr/mr2202.cpp | 32 +++++++------- mr/mr2300.cpp | 2 +- mr/mr2400.cpp | 2 +- mr/mrplib.cpp | 67 ++++++++++++----------------- 10 files changed, 192 insertions(+), 227 deletions(-) diff --git a/mr/mr0100.cpp b/mr/mr0100.cpp index 71b6c8560..a71e50cba 100755 --- a/mr/mr0100.cpp +++ b/mr/mr0100.cpp @@ -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); } diff --git a/mr/mr0400.cpp b/mr/mr0400.cpp index 0e6ec1fa2..2514a1b1d 100755 --- a/mr/mr0400.cpp +++ b/mr/mr0400.cpp @@ -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; } diff --git a/mr/mr1100.cpp b/mr/mr1100.cpp index 2f09c220a..4139a4b3d 100755 --- a/mr/mr1100.cpp +++ b/mr/mr1100.cpp @@ -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; } diff --git a/mr/mr2100.cpp b/mr/mr2100.cpp index 2dc5c452a..e92936154 100755 --- a/mr/mr2100.cpp +++ b/mr/mr2100.cpp @@ -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; } diff --git a/mr/mr2200.cpp b/mr/mr2200.cpp index 608de6efd..189687380 100755 --- a/mr/mr2200.cpp +++ b/mr/mr2200.cpp @@ -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; } \ No newline at end of file diff --git a/mr/mr2201.cpp b/mr/mr2201.cpp index 57395573f..76fa7a74e 100755 --- a/mr/mr2201.cpp +++ b/mr/mr2201.cpp @@ -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 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; } diff --git a/mr/mr2202.cpp b/mr/mr2202.cpp index 204fd81ea..b2ec74628 100755 --- a/mr/mr2202.cpp +++ b/mr/mr2202.cpp @@ -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 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 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) { diff --git a/mr/mr2300.cpp b/mr/mr2300.cpp index 966e2ff45..95820683d 100755 --- a/mr/mr2300.cpp +++ b/mr/mr2300.cpp @@ -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; } diff --git a/mr/mr2400.cpp b/mr/mr2400.cpp index b59fdb3af..30ba5ede7 100755 --- a/mr/mr2400.cpp +++ b/mr/mr2400.cpp @@ -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; } diff --git a/mr/mrplib.cpp b/mr/mrplib.cpp index dddea6039..2bafc760a 100755 --- a/mr/mrplib.cpp +++ b/mr/mrplib.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -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");