Translation lignes -> lines

This commit is contained in:
Laurent Destailleur 2019-07-05 21:50:35 +02:00
parent 0a7d70829f
commit f5cc29417d
28 changed files with 39 additions and 41 deletions

View File

@ -638,7 +638,7 @@ if (empty($reshook))
$resteapayer = $object->total_ttc - $totalpaye; $resteapayer = $object->total_ttc - $totalpaye;
// On verifie si les lignes de factures ont ete exportees en compta et/ou ventilees // We check that invlice lines are transferred into accountancy
$ventilExportCompta = $object->getVentilExportCompta(); $ventilExportCompta = $object->getVentilExportCompta();
// On verifie si aucun paiement n'a ete effectue // On verifie si aucun paiement n'a ete effectue
@ -4616,7 +4616,7 @@ elseif ($id > 0 || ! empty($ref))
// Editer une facture deja validee, sans paiement effectue et pas exporte en compta // Editer une facture deja validee, sans paiement effectue et pas exporte en compta
if ($object->statut == Facture::STATUS_VALIDATED) if ($object->statut == Facture::STATUS_VALIDATED)
{ {
// On verifie si les lignes de factures ont ete exportees en compta et/ou ventilees // We check that invlice lines are transferred into accountancy
$ventilExportCompta = $object->getVentilExportCompta(); $ventilExportCompta = $object->getVentilExportCompta();
if ($ventilExportCompta == 0) if ($ventilExportCompta == 0)

View File

@ -22,7 +22,7 @@
/** /**
* \file htdocs/compta/prelevement/class/ligneprelevement.class.php * \file htdocs/compta/prelevement/class/ligneprelevement.class.php
* \ingroup prelevement * \ingroup prelevement
* \brief Fichier de la classe des lignes de prelevements * \brief File of class to manage lines of Direct Debit orders
*/ */

View File

@ -862,7 +862,7 @@ class Contrat extends CommonObject
} }
else else
{ {
dol_syslog(get_class($this)."::Fetch Erreur lecture des lignes de contrats liees aux produits"); dol_syslog(get_class($this)."::Fetch Error when reading lines of contracts linked to products");
return -3; return -3;
} }

View File

@ -549,7 +549,7 @@ class pdf_einstein extends ModelePDFCommandes
$pdf->SetLineStyle(array('dash'=>0)); $pdf->SetLineStyle(array('dash'=>0));
} }
$nexY+=2; // Passe espace entre les lignes $nexY+=2; // Add space between lines
// Detect if some page were added automatically and output _tableau for past pages // Detect if some page were added automatically and output _tableau for past pages
while ($pagenb < $pageposafter) while ($pagenb < $pageposafter)

View File

@ -414,8 +414,8 @@ class pdf_standard extends ModeleExpenseReport
// $nblineFollowComment = max($nbLineCommentNeed, $nbLineTypeNeed); // $nblineFollowComment = max($nbLineCommentNeed, $nbLineTypeNeed);
// } // }
//$nexY+=$nblineFollowComment*($pdf->getFontSize()*1.3); // Passe espace entre les lignes //$nexY+=$nblineFollowComment*($pdf->getFontSize()*1.3); // Add space between lines
$nexY += ($pdf->getFontSize()*1.3); // Passe espace entre les lignes $nexY += ($pdf->getFontSize()*1.3); // Add space between lines
// Detect if some page were added automatically and output _tableau for past pages // Detect if some page were added automatically and output _tableau for past pages
while ($pagenb < $pageposafter) while ($pagenb < $pageposafter)

View File

@ -318,7 +318,7 @@ class pdf_crabe extends ModelePDFFactures
global $action; global $action;
$reshook=$hookmanager->executeHooks('beforePDFCreation', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforePDFCreation', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
// Set nblignes with the new facture lines content after hook // Set nblines with the new facture lines content after hook
$nblines = count($object->lines); $nblines = count($object->lines);
$nbpayments = count($object->getListOfPayments()); $nbpayments = count($object->getListOfPayments());

View File

@ -329,7 +329,7 @@ class pdf_sponge extends ModelePDFFactures
global $action; global $action;
$reshook=$hookmanager->executeHooks('beforePDFCreation', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforePDFCreation', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
// Set nblignes with the new facture lines content after hook // Set nblines with the new facture lines content after hook
$nblines = count($object->lines); $nblines = count($object->lines);
$nbpayments = count($object->getListOfPayments()); $nbpayments = count($object->getListOfPayments());

View File

@ -276,7 +276,7 @@ class modFournisseur extends DolibarrModules
$r++; $r++;
$this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Factures fournisseurs et lignes de facture'; $this->export_label[$r]='Vendor invoices and lines of invoices';
$this->export_icon[$r]='bill'; $this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export")); $this->export_permission[$r]=array(array("fournisseur","facture","export"));
$this->export_fields_array[$r]=array( $this->export_fields_array[$r]=array(
@ -484,7 +484,7 @@ class modFournisseur extends DolibarrModules
// Order // Order
$r++; $r++;
$this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Commandes fournisseurs et lignes de commandes'; $this->export_label[$r]='Purchase Orders and lines of purchase orders';
$this->export_icon[$r]='order'; $this->export_icon[$r]='order';
$this->export_permission[$r]=array(array("fournisseur","commande","export")); $this->export_permission[$r]=array(array("fournisseur","commande","export"));
$this->export_fields_array[$r]=array( $this->export_fields_array[$r]=array(

View File

@ -493,7 +493,7 @@ class pdf_standard extends ModelePDFProduct
$pdf->SetLineStyle(array('dash'=>0)); $pdf->SetLineStyle(array('dash'=>0));
} }
$nexY+=2; // Passe espace entre les lignes $nexY+=2; // Add space between lines
// Detect if some page were added automatically and output _tableau for past pages // Detect if some page were added automatically and output _tableau for past pages
while ($pagenb < $pageposafter) while ($pagenb < $pageposafter)

View File

@ -216,7 +216,7 @@ class pdf_squille extends ModelePdfReception
global $action; global $action;
$reshook=$hookmanager->executeHooks('beforePDFCreation', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforePDFCreation', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
// Set nblignes with the new facture lines content after hook // Set nblines with the new facture lines content after hook
$nblines = count($object->lines); $nblines = count($object->lines);
$pdf=pdf_getInstance($this->format); $pdf=pdf_getInstance($this->format);

View File

@ -461,7 +461,7 @@ class pdf_standard extends ModelePDFStock
$pdf->SetLineStyle(array('dash'=>0)); $pdf->SetLineStyle(array('dash'=>0));
} }
$nexY+=2; // Passe espace entre les lignes $nexY+=2; // Add space between lines
// Detect if some page were added automatically and output _tableau for past pages // Detect if some page were added automatically and output _tableau for past pages
while ($pagenb < $pageposafter) while ($pagenb < $pageposafter)

View File

@ -255,7 +255,7 @@ if ($id > 0 || ! empty($ref))
dol_fiche_end(); dol_fiche_end();
// Lignes de contacts // Lines of contacts
echo '<br>'; echo '<br>';
// Contacts lines (modules that overwrite templates must declare this into descriptor) // Contacts lines (modules that overwrite templates must declare this into descriptor)

View File

@ -1386,7 +1386,7 @@ class Fichinter extends CommonObject
} }
/** /**
* Classe permettant la gestion des lignes d'intervention * Class to manage intervention lines
*/ */
class FichinterLigne extends CommonObjectLine class FichinterLigne extends CommonObjectLine
{ {

View File

@ -249,7 +249,7 @@ if ($resql)
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Lignes des titres // Line for title
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", $param, "", "", $sortfield, $sortorder); print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", $param, "", "", $sortfield, $sortorder);
print_liste_field_titre("RefSupplierShort", $_SERVER["PHP_SELF"], "ppf.ref_fourn", $param, "", "", $sortfield, $sortorder); print_liste_field_titre("RefSupplierShort", $_SERVER["PHP_SELF"], "ppf.ref_fourn", $param, "", "", $sortfield, $sortorder);

View File

@ -47,7 +47,7 @@ create table llx_commande_fournisseurdet
date_start datetime DEFAULT NULL, -- date debut si service date_start datetime DEFAULT NULL, -- date debut si service
date_end datetime DEFAULT NULL, -- date fin si service date_end datetime DEFAULT NULL, -- date fin si service
info_bits integer DEFAULT 0, -- TVA NPR ou non info_bits integer DEFAULT 0, -- TVA NPR ou non
special_code integer DEFAULT 0, -- code pour les lignes speciales special_code integer DEFAULT 0, -- code for special lines
rang integer DEFAULT 0, rang integer DEFAULT 0,
import_key varchar(14), import_key varchar(14),
fk_unit integer DEFAULT NULL, fk_unit integer DEFAULT NULL,

View File

@ -43,7 +43,7 @@ CREATE TABLE llx_expensereport_det
total_ttc double(24,8) DEFAULT 0 NOT NULL, total_ttc double(24,8) DEFAULT 0 NOT NULL,
date date NOT NULL, date date NOT NULL,
info_bits integer DEFAULT 0, -- TVA NPR ou non info_bits integer DEFAULT 0, -- TVA NPR ou non
special_code integer DEFAULT 0, -- code pour les lignes speciales special_code integer DEFAULT 0, -- code for special lines
fk_multicurrency integer, fk_multicurrency integer,
multicurrency_code varchar(255), multicurrency_code varchar(255),
multicurrency_subprice double(24,8) DEFAULT 0, multicurrency_subprice double(24,8) DEFAULT 0,

View File

@ -47,7 +47,7 @@ create table llx_facture_fourn_det
date_end datetime DEFAULT NULL, -- date fin si service date_end datetime DEFAULT NULL, -- date fin si service
info_bits integer DEFAULT 0, -- TVA NPR ou non info_bits integer DEFAULT 0, -- TVA NPR ou non
fk_code_ventilation integer DEFAULT 0 NOT NULL, fk_code_ventilation integer DEFAULT 0 NOT NULL,
special_code integer DEFAULT 0, -- code pour les lignes speciales special_code integer DEFAULT 0, -- code for special lines
rang integer DEFAULT 0, rang integer DEFAULT 0,
import_key varchar(14), import_key varchar(14),
fk_unit integer DEFAULT NULL, fk_unit integer DEFAULT NULL,

View File

@ -52,7 +52,7 @@ create table llx_facturedet_rec
buy_price_ht double(24,8) DEFAULT 0, -- buying price. Note: this value is saved as an always positive value, even on credit notes (it is price we bought the product before selling it). buy_price_ht double(24,8) DEFAULT 0, -- buying price. Note: this value is saved as an always positive value, even on credit notes (it is price we bought the product before selling it).
fk_product_fournisseur_price integer DEFAULT NULL, -- reference of supplier price when line was added (may be used to update buy_price_ht current price when future invoice will be created) fk_product_fournisseur_price integer DEFAULT NULL, -- reference of supplier price when line was added (may be used to update buy_price_ht current price when future invoice will be created)
special_code integer UNSIGNED DEFAULT 0, -- code pour les lignes speciales special_code integer UNSIGNED DEFAULT 0, -- code for special lines
rang integer DEFAULT 0, -- ordre d'affichage rang integer DEFAULT 0, -- ordre d'affichage
fk_contract_line integer NULL, -- id of contract line when template invoice comes from contract lines fk_contract_line integer NULL, -- id of contract line when template invoice comes from contract lines
fk_unit integer DEFAULT NULL, fk_unit integer DEFAULT NULL,

View File

@ -311,7 +311,7 @@ if ($action == "set")
{ {
$buf = fgets($fp, 4096); $buf = fgets($fp, 4096);
// Cas special de lignes autorisees pour certaines versions uniquement // Special case of lines allowed for some version only
if ($choix == 1 && preg_match('/^--\sV([0-9\.]+)/i', $buf, $reg)) if ($choix == 1 && preg_match('/^--\sV([0-9\.]+)/i', $buf, $reg))
{ {
$versioncommande=explode('.', $reg[1]); $versioncommande=explode('.', $reg[1]);

View File

@ -1432,7 +1432,7 @@ function migrate_paiementfourn_facturefourn($db, $langs, $conf)
} }
/** /**
* Mise a jour des totaux lignes de facture * Update total of invoice lines
* *
* @param DoliDB $db Database handler * @param DoliDB $db Database handler
* @param Translate $langs Object langs * @param Translate $langs Object langs
@ -1453,7 +1453,7 @@ function migrate_price_facture($db, $langs, $conf)
print '<br>'; print '<br>';
print '<b>'.$langs->trans('MigrationInvoice')."</b><br>\n"; print '<b>'.$langs->trans('MigrationInvoice')."</b><br>\n";
// Liste des lignes facture non a jour // List of invoice lines not up to date
$sql = "SELECT fd.rowid, fd.qty, fd.subprice, fd.remise_percent, fd.tva_tx as vatrate, fd.total_ttc, fd.info_bits,"; $sql = "SELECT fd.rowid, fd.qty, fd.subprice, fd.remise_percent, fd.tva_tx as vatrate, fd.total_ttc, fd.info_bits,";
$sql.= " f.rowid as facid, f.remise_percent as remise_percent_global, f.total_ttc as total_ttc_f"; $sql.= " f.rowid as facid, f.remise_percent as remise_percent_global, f.total_ttc as total_ttc_f";
$sql.= " FROM ".MAIN_DB_PREFIX."facturedet as fd, ".MAIN_DB_PREFIX."facture as f"; $sql.= " FROM ".MAIN_DB_PREFIX."facturedet as fd, ".MAIN_DB_PREFIX."facture as f";
@ -1551,7 +1551,7 @@ function migrate_price_facture($db, $langs, $conf)
} }
/** /**
* Mise a jour des totaux lignes de propal * Update total of proposal lines
* *
* @param DoliDB $db Database handler * @param DoliDB $db Database handler
* @param Translate $langs Object langs * @param Translate $langs Object langs
@ -1570,7 +1570,7 @@ function migrate_price_propal($db, $langs, $conf)
print '<br>'; print '<br>';
print '<b>'.$langs->trans('MigrationProposal')."</b><br>\n"; print '<b>'.$langs->trans('MigrationProposal')."</b><br>\n";
// Liste des lignes propal non a jour // List of proposal lines not up to date
$sql = "SELECT pd.rowid, pd.qty, pd.subprice, pd.remise_percent, pd.tva_tx as vatrate, pd.info_bits,"; $sql = "SELECT pd.rowid, pd.qty, pd.subprice, pd.remise_percent, pd.tva_tx as vatrate, pd.info_bits,";
$sql.= " p.rowid as propalid, p.remise_percent as remise_percent_global"; $sql.= " p.rowid as propalid, p.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."propaldet as pd, ".MAIN_DB_PREFIX."propal as p"; $sql.= " FROM ".MAIN_DB_PREFIX."propaldet as pd, ".MAIN_DB_PREFIX."propal as p";
@ -1679,7 +1679,7 @@ function migrate_price_contrat($db, $langs, $conf)
print '<br>'; print '<br>';
print '<b>'.$langs->trans('MigrationContract')."</b><br>\n"; print '<b>'.$langs->trans('MigrationContract')."</b><br>\n";
// Liste des lignes contrat non a jour // List of contract lines not up to date
$sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,"; $sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,";
$sql.= " c.rowid as contratid"; $sql.= " c.rowid as contratid";
$sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."contrat as c"; $sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."contrat as c";
@ -1748,7 +1748,7 @@ function migrate_price_contrat($db, $langs, $conf)
} }
/** /**
* Mise a jour des totaux lignes de commande * Update total of sales order lines
* *
* @param DoliDB $db Database handler * @param DoliDB $db Database handler
* @param Translate $langs Object langs * @param Translate $langs Object langs
@ -1767,7 +1767,7 @@ function migrate_price_commande($db, $langs, $conf)
print '<br>'; print '<br>';
print '<b>'.$langs->trans('MigrationOrder')."</b><br>\n"; print '<b>'.$langs->trans('MigrationOrder')."</b><br>\n";
// Liste des lignes commande non a jour // List of sales orders lines not up to date
$sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,"; $sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,";
$sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global"; $sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."commande as c"; $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."commande as c";
@ -1865,7 +1865,7 @@ function migrate_price_commande($db, $langs, $conf)
} }
/** /**
* Mise a jour des totaux lignes de commande fournisseur * Update total of purchase order lines
* *
* @param DoliDB $db Database handler * @param DoliDB $db Database handler
* @param Translate $langs Object langs * @param Translate $langs Object langs
@ -1884,7 +1884,7 @@ function migrate_price_commande_fournisseur($db, $langs, $conf)
print '<br>'; print '<br>';
print '<b>'.$langs->trans('MigrationSupplierOrder')."</b><br>\n"; print '<b>'.$langs->trans('MigrationSupplierOrder')."</b><br>\n";
// Liste des lignes commande non a jour // List of purchase order lines not up to date
$sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,"; $sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,";
$sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global"; $sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd, ".MAIN_DB_PREFIX."commande_fournisseur as c"; $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd, ".MAIN_DB_PREFIX."commande_fournisseur as c";

View File

@ -322,9 +322,7 @@ class Livraison extends CommonObject
// fetch optionals attributes and labels // fetch optionals attributes and labels
$this->fetch_optionals(); $this->fetch_optionals();
/* // Load lines
* Lignes
*/
$result=$this->fetch_lines(); $result=$this->fetch_lines();
if ($result < 0) if ($result < 0)
{ {

View File

@ -199,7 +199,7 @@ class ActionsCardProduct
if ($action == 'view') if ($action == 'view')
{ {
// Photo // Photo
$this->tpl['nblignes'] = 4; $this->tpl['nblines'] = 4;
if ($this->object->is_photo_available($conf->product->multidir_output[$this->object->entity])) if ($this->object->is_photo_available($conf->product->multidir_output[$this->object->entity]))
{ {
$this->tpl['photos'] = $this->object->show_photos('product', $conf->product->multidir_output[$this->object->entity], 1, 1, 0, 0, 0, 80); $this->tpl['photos'] = $this->object->show_photos('product', $conf->product->multidir_output[$this->object->entity], 1, 1, 0, 0, 0, 80);

View File

@ -56,7 +56,7 @@ dol_banner_tab($object, 'ref', $linkback, $shownav, 'ref');
<td><?php echo $object->label; ?></td> <td><?php echo $object->label; ?></td>
<?php if ($object->photos) { ?> <?php if ($object->photos) { ?>
<td valign="middle" align="center" width="30%" rowspan="<?php echo $object->nblignes; ?>"> <td valign="middle" align="center" width="30%" rowspan="<?php echo $object->nblines; ?>">
<?php echo $object->photos; ?> <?php echo $object->photos; ?>
</td> </td>
<?php } ?> <?php } ?>

View File

@ -195,7 +195,7 @@ class ActionsCardService
if ($action == 'view') if ($action == 'view')
{ {
// Photo // Photo
$this->tpl['nblignes'] = 4; $this->tpl['nblines'] = 4;
if ($this->object->is_photo_available($conf->service->multidir_output[$this->object->entity])) if ($this->object->is_photo_available($conf->service->multidir_output[$this->object->entity]))
{ {
$this->tpl['photos'] = $this->object->show_photos('product', $conf->service->multidir_output[$this->object->entity], 1, 1, 0, 0, 0, 80); $this->tpl['photos'] = $this->object->show_photos('product', $conf->service->multidir_output[$this->object->entity], 1, 1, 0, 0, 0, 80);

View File

@ -56,7 +56,7 @@ dol_banner_tab($object, 'ref', $linkback, $shownav, 'ref');
<td><?php echo $object->label; ?></td> <td><?php echo $object->label; ?></td>
<?php if ($object->photos) { ?> <?php if ($object->photos) { ?>
<td valign="middle" align="center" width="30%" rowspan="<?php echo $object->nblignes; ?>"> <td valign="middle" align="center" width="30%" rowspan="<?php echo $object->nblines; ?>">
<?php echo $object->photos; ?> <?php echo $object->photos; ?>
</td> </td>
<?php } ?> <?php } ?>

View File

@ -303,7 +303,7 @@ if ($resql)
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Lignes des titres //Line for column titles
print "<tr class=\"liste_titre\">"; print "<tr class=\"liste_titre\">";
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", $param, "", "", $sortfield, $sortorder); print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", $param, "", "", $sortfield, $sortorder);
print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label", $param, "", "", $sortfield, $sortorder); print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label", $param, "", "", $sortfield, $sortorder);

View File

@ -299,7 +299,7 @@ if ($resql)
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Lignes des titres //Line for column titles
print "<tr class=\"liste_titre\">"; print "<tr class=\"liste_titre\">";
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", $param, "", "", $sortfield, $sortorder); print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", $param, "", "", $sortfield, $sortorder);
print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label", $param, "", "", $sortfield, $sortorder); print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label", $param, "", "", $sortfield, $sortorder);

View File

@ -257,7 +257,7 @@ if ($id > 0 || ! empty($ref))
dol_fiche_end(); dol_fiche_end();
// Lignes de contacts // Lines of contacts
echo '<br>'; echo '<br>';
// Contacts lines (modules that overwrite templates must declare this into descriptor) // Contacts lines (modules that overwrite templates must declare this into descriptor)