From 7f3531a04c621aa2ee94c94a9e56d0572669b778 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 6 Dec 2015 13:34:57 +0100 Subject: [PATCH] Enhance script to track duplicate translation string and use it to remove around 50 duplicates. --- dev/translation/sanity_check_en_langfiles.php | 279 ++++++++++++------ htdocs/compta/facture.php | 2 +- .../core/triggers/dolibarrtriggers.class.php | 4 +- htdocs/install/fileconf.php | 6 +- htdocs/langs/en_US/accountancy.lang | 20 +- htdocs/langs/en_US/admin.lang | 8 - htdocs/langs/en_US/bills.lang | 4 - htdocs/langs/en_US/companies.lang | 1 - htdocs/langs/en_US/compta.lang | 2 - htdocs/langs/en_US/ecm.lang | 1 - htdocs/langs/en_US/errors.lang | 2 - htdocs/langs/en_US/hrm.lang | 1 - htdocs/langs/en_US/install.lang | 7 - htdocs/langs/en_US/main.lang | 3 +- htdocs/langs/en_US/members.lang | 1 - htdocs/langs/en_US/orders.lang | 1 - htdocs/langs/en_US/other.lang | 14 +- htdocs/langs/en_US/products.lang | 2 - htdocs/langs/en_US/projects.lang | 1 - htdocs/langs/en_US/supplier_proposal.lang | 1 - htdocs/langs/en_US/trips.lang | 2 - htdocs/langs/en_US/users.lang | 1 - htdocs/langs/en_US/withdrawals.lang | 1 - htdocs/product/admin/product.php | 5 +- 24 files changed, 205 insertions(+), 164 deletions(-) mode change 100644 => 100755 dev/translation/sanity_check_en_langfiles.php diff --git a/dev/translation/sanity_check_en_langfiles.php b/dev/translation/sanity_check_en_langfiles.php old mode 100644 new mode 100755 index a3b3911c77f..f54c179ac09 --- a/dev/translation/sanity_check_en_langfiles.php +++ b/dev/translation/sanity_check_en_langfiles.php @@ -1,82 +1,102 @@ +#!/usr/bin/php -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -*/ +/* Copyright (c) 2015 Tommaso Basilici + * Copyright (c) 2015 Laurent Destailleur + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ -echo ""; -echo ""; +$sapi_type = php_sapi_name(); +$script_file = basename(__FILE__); +$path=dirname(__FILE__).'/'; -echo ""; + + echo ""; } -tr:nth-child(odd) td { - background-color: #f1f1f1; -} +echo "If you call this file with the argument \"?unused=true\" it searches for the translation strings that exist in en_US but are never used.\n"; +if ($web) print "
"; +echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.\n"; +if ($web) print "
"; -"; - -echo ""; - -echo "If you call this file with the argument \"?unused=true\" it searches for the translation strings that exist in en_US but are never used.
"; -echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.
"; -echo "Happy translating :)
"; // STEP 1 - Search duplicates keys // directory containing the php and lang files -$htdocs = "../../htdocs/"; +$htdocs = $path."/../../htdocs/"; // directory containing the english lang files $workdir = $htdocs."langs/en_US/"; @@ -114,8 +134,10 @@ foreach ($files AS $file) { } } -foreach ($langstrings_3d AS $filename => $file) { - foreach ($file AS $linenum => $value) { +foreach ($langstrings_3d AS $filename => $file) +{ + foreach ($file AS $linenum => $value) + { $keys = array_keys($langstrings_full, $value); if (count($keys)>1) { @@ -126,30 +148,95 @@ foreach ($langstrings_3d AS $filename => $file) { } } -echo "

Duplicate strings in lang files in $workdir - ".count($dups)." found

"; +if ($web) print "

"; +print "Duplicate strings in lang files in $workdir - ".count($dups)." found\n"; +if ($web) print "

"; -echo " "; -echo ""; -echo ""; -$count = 0; -foreach ($dups as $string => $pages) { - $count++; - echo ""; - echo ""; - echo ""; - echo "\n"; +if ($web) +{ + echo '
#StringFile and lines
$count$string"; - foreach ($pages AS $page => $lines ) { - echo "$page "; - foreach ($lines as $line => $translatedvalue) { - //echo "($line - ".(substr($translatedvalue,0,20)).") "; - echo "($line - ".htmlentities($translatedvalue).") "; - } - echo "
"; - } - echo "
'."\n"; + echo "\n"; + echo "\n"; +} + +$sduplicateinsamefile=''; +$sinmainandother=''; +$sininstallandadmin=''; +$sother=''; + +$count = 0; +foreach ($dups as $string => $pages) +{ + $count++; + $s=''; + + // Keyword $string + if ($web) $s.=""; + if ($web) $s.=""; + if ($web) $s.=""; + if ($web) $s.=""; + $s.="\n"; + + if ($duplicateinsamefile) $sduplicateinsamefile .= $s; + else if ($inmain) $sinmainandother .= $s; + else if ($inadmin) $sininstallandadmin .= $s; + else $sother .= $s; +} + +if (! $web) print "\n***** Entries duplicated in same file\n"; +print $sduplicateinsamefile; +if (! $web && empty($sduplicateinsamefile)) print "None\n"; +if (! $web) print "\n"; + +if (! $web) print "***** Entries in main and another (keep only entry in main)\n"; +print $sinmainandother; +if (! $web && empty($sinmainandother)) print "None\n"; +if (! $web) print "\n"; + +if (! $web) print "***** Entries in admin and another\n"; +print $sininstallandadmin; +if (! $web && empty($sininstallandadmin)) print "None\n"; +if (! $web) print "\n"; + +if (! $web) print "***** Other\n"; +print $sother; +if (! $web && empty($sother)) print "None\n"; +if (! $web) print "\n"; + +if ($web) +{ + echo "\n"; + echo "
#StringFile and lines
"; + if ($web) $s.=$count; + if ($web) $s.=""; + $s.=$string; + if ($web) $s.=""; + if (! $web) $s.= ' : '; + + // Loop on each files keyword was found + $duplicateinsamefile=0; + $inmain=0; + $inadmin=0; + foreach ($pages AS $file => $lines) + { + if ($file == 'main.lang') { $inmain=1; $inadmin=0; } + if ($file == 'admin.lang' && ! $inmain) { $inadmin=1; } + + $s.=$file." "; + + // Loop on each line keword was found into file. + $listoffilesforthisentry=array(); + foreach ($lines as $line => $translatedvalue) + { + if (! empty($listoffilesforthisentry[$file])) $duplicateinsamefile=1; + $listoffilesforthisentry[$file]=1; + + $s.= "(".$line." - ".htmlentities($translatedvalue).") "; + } + if ($web) $s.="
"; + } + if ($web) $s.="
\n"; } -echo ""; -echo ""; // STEP 2 - Search key not used @@ -168,12 +255,20 @@ if (! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') } } - echo "

Strings in en_US that are never used

"; - echo "
";
+	if ($web) print "

\n"; + print "Strings in en_US that are never used\n"; + if ($web) print "

\n"; + if ($web) echo "
";
 	print_r($unused);
-	echo "
"; + if ($web) echo "
\n"; } echo "\n"; -echo ""; -echo ""; +if ($web) +{ + echo "\n"; + echo "\n"; +} + +exit; + diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index d5e99af0df6..9ce11ee5abf 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -2833,7 +2833,7 @@ else if ($id > 0 || ! empty($ref)) print '' . $langs->trans('Company') . ''; print ''; if (! empty($conf->global->FACTURE_CHANGE_THIRDPARTY) && $action != 'editthirdparty' && $object->brouillon && $user->rights->facture->creer) - print 'id . '">' . img_edit($langs->trans('SetLinkToThirdParty'), 1) . ''; + print 'id . '">' . img_edit($langs->trans('SetLinkToAnotherThirdParty'), 1) . ''; print ''; print ''; if ($action == 'editthirdparty') { diff --git a/htdocs/core/triggers/dolibarrtriggers.class.php b/htdocs/core/triggers/dolibarrtriggers.class.php index d4cffc24a01..61a89b083f8 100644 --- a/htdocs/core/triggers/dolibarrtriggers.class.php +++ b/htdocs/core/triggers/dolibarrtriggers.class.php @@ -121,9 +121,9 @@ abstract class DolibarrTriggers $langs->load("admin"); if ($this->version == self::VERSION_DEVELOPMENT) { - return $langs->trans("Development"); + return $langs->trans("VersionDevelopment"); } elseif ($this->version == self::VERSION_EXPERIMENTAL) { - return $langs->trans("Experimental"); + return $langs->trans("VersionExperimental"); } elseif ($this->version == self::VERSION_DOLIBARR) { return DOL_VERSION; } elseif ($this->version) { diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php index 21e975f8b29..8d040e06ed4 100644 --- a/htdocs/install/fileconf.php +++ b/htdocs/install/fileconf.php @@ -333,9 +333,9 @@ if (! empty($force_install_message)) if ($note) $option.=' '.$note; // Deprecated and experimental if ($type=='mysql') $option.=' ' . $langs->trans("Deprecated"); - elseif ($type=='mssql') $option.=' '.$langs->trans("Experimental"); - elseif ($type=='sqlite') $option.=' '.$langs->trans("Experimental"); - elseif ($type=='sqlite3') $option.=' '.$langs->trans("Experimental"); + elseif ($type=='mssql') $option.=' '.$langs->trans("VersionExperimental"); + elseif ($type=='sqlite') $option.=' '.$langs->trans("VersionExperimental"); + elseif ($type=='sqlite3') $option.=' '.$langs->trans("VersionExperimental"); // No available elseif (! function_exists($testfunction)) $option.=' - '.$langs->trans("FunctionNotAvailableInThisPHP"); $option.=''; diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index edc0a8d512d..a9451deb151 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -1,5 +1,4 @@ # Dolibarr language file - en_US - Accounting Expert -CHARSET=UTF-8 ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file ACCOUNTING_EXPORT_DATE=Date format for export file ACCOUNTING_EXPORT_PIECE=Export the number of piece @@ -12,8 +11,6 @@ ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name Accounting=Accounting Globalparameters=Global parameters -Chartofaccounts=Chart of accounts -Fiscalyear=Fiscal years Menuaccount=Accounting accounts Menuthirdpartyaccount=Thirdparty accounts MenuTools=Tools @@ -33,23 +30,17 @@ Back=Return Definechartofaccounts=Define a chart of accounts Selectchartofaccounts=Select a chart of accounts -Validate=Validate Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingSuggest=Accounting account suggest Ventilation=Breakdown -ToDispatch=To dispatch -Dispatched=Dispatched CustomersVentilation=Breakdown customers SuppliersVentilation=Breakdown suppliers TradeMargin=Trade margin Reports=Reports ByCustomerInvoice=By invoices customers -ByMonth=By Month NewAccount=New accounting account -Update=Update -List=List Create=Create CreateMvts=Create movement UpdateAccount=Modification of an accounting account @@ -61,7 +52,6 @@ AccountBalanceByMonth=Account balance by month AccountingVentilation=Breakdown accounting AccountingVentilationSupplier=Breakdown accounting supplier AccountingVentilationCustomer=Breakdown accounting customer -Line=Line CAHTF=Total purchase supplier before tax InvoiceLines=Lines of invoice to be ventilated @@ -112,17 +102,12 @@ Docref=Reference Numerocompte=Account Code_tiers=Thirdparty Labelcompte=Label account -Debit=Debit -Credit=Credit -Amount=Amount Sens=Sens Codejournal=Journal DelBookKeeping=Delete the records of the general ledger -SellsJournal=Sells journal -PurchasesJournal=Purchases journal -DescSellsJournal=Sells journal +DescSellsJournal=Sales journal DescPurchasesJournal=Purchases journal BankJournal=Bank journal DescBankJournal=Bank journal including all the types of payments other than cash @@ -150,9 +135,6 @@ Pcgversion=Version of the plan Pcgtype=Class of account Pcgsubtype=Under class of account Accountparent=Root of the account -Active=Statement - -NewFiscalYear=New fiscal year DescVentilCustomer=Consult here the annual breakdown accounting of your invoices customers TotalVente=Total turnover before tax diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 232eb3e573f..5bac55fddc0 100755 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -105,7 +105,6 @@ DetailPosition=Sort number to define menu position PersonalizedMenusNotSupported=Personalized menus not supported AllMenus=All NotConfigured=Module not configured -Setup=Setup Activation=Activation Active=Active SetupShort=Setup @@ -193,15 +192,12 @@ ExportOptions=Export Options AddDropDatabase=Add DROP DATABASE command AddDropTable=Add DROP TABLE command ExportStructure=Structure -Datas=Data NameColumn=Name columns ExtendedInsert=Extended INSERT NoLockBeforeInsert=No lock commands around INSERT DelayedInsert=Delayed insert EncodeBinariesInHexa=Encode binary data in hexadecimal IgnoreDuplicateRecords=Ignore errors of duplicate records (INSERT IGNORE) -Yes=Yes -No=No AutoDetectLang=Autodetect (browser language) FeatureDisabledInDemo=Feature disabled in demo Rights=Permissions @@ -926,7 +922,6 @@ MenuCompanySetup=Company/Foundation MenuNewUser=New user MenuTopManager=Top menu manager MenuLeftManager=Left menu manager -MenuManager=Menu manager MenuSmartphoneManager=Smartphone menu manager DefaultMenuTopManager=Top menu manager DefaultMenuLeftManager=Left menu manager @@ -1110,7 +1105,6 @@ XDebugInstalled=XDebug is loaded. XCacheInstalled=XCache is loaded. AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". FieldEdition=Edition of field %s -FixTZ=TimeZone fix FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) GetBarCode=Get barcode EmptyNumRefModelDesc=The code is free. This code can be modified at any time. @@ -1644,8 +1638,6 @@ OpenFiscalYear=Open fiscal year CloseFiscalYear=Close fiscal year DeleteFiscalYear=Delete fiscal year ConfirmDeleteFiscalYear=Are you sure to delete this fiscal year ? -Opened=Open -Closed=Closed AlwaysEditable=Can always be edited MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) NbMajMin=Minimum number of uppercase characters diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index a567fd4f062..db2b9ea4b62 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -59,7 +59,6 @@ PaymentBack=Payment back Payments=Payments PaymentsBack=Payments back PaidBack=Paid back -DatePayment=Payment date DeletePayment=Delete payment ConfirmDeletePayment=Are you sure you want to delete this payment ? ConfirmConvertToReduc=Do you want to convert this credit note or deposit into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. @@ -103,7 +102,6 @@ ConvertToReduc=Convert into future discount EnterPaymentReceivedFromCustomer=Enter payment received from customer EnterPaymentDueToCustomer=Make payment due to customer DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero -Amount=Amount PriceBase=Price base BillStatus=Invoice status BillStatusDraft=Draft (needs to be validated) @@ -187,7 +185,6 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show deposit invoice ShowPayment=Show payment -File=File AlreadyPaid=Already paid AlreadyPaidBack=Already paid back AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) @@ -240,7 +237,6 @@ Reduction=Reduction ReductionShort=Reduc. Reductions=Reductions ReductionsShort=Reduc. -Discount=Discount Discounts=Discounts AddDiscount=Create discount AddRelativeDiscount=Create relative discount diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 297556d6533..e31c347605e 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -56,7 +56,6 @@ ReportByCustomers=Report by customers ReportByQuarter=Report by rate CivilityCode=Civility code RegisteredOffice=Registered office -Name=Name Lastname=Last name Firstname=First name PostOrFunction=Post/Function diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index c7cbb6d0a9b..c71b18adc6f 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -79,7 +79,6 @@ ListPayment=List of payments ListOfPayments=List of payments ListOfCustomerPayments=List of customer payments ListOfSupplierPayments=List of supplier payments -DatePayment=Payment date DateStartPeriod=Date start period DateEndPeriod=Date end period NewVATPayment=New VAT payment @@ -200,7 +199,6 @@ ByProductsAndServices=By products and services RefExt=External ref ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice". LinkedOrder=Link to order -ReCalculate=Recalculate Mode1=Method 1 Mode2=Method 2 CalculationRuleDesc=To calculate total VAT, there is two methods:
Method 1 is rounding vat on each line, then summing them.
Method 2 is summing all vat on each line, then rounding result.
Final result may differs from few cents. Default mode is mode %s. diff --git a/htdocs/langs/en_US/ecm.lang b/htdocs/langs/en_US/ecm.lang index 96995adc8ac..d5d69daa7cf 100644 --- a/htdocs/langs/en_US/ecm.lang +++ b/htdocs/langs/en_US/ecm.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - ecm -MenuECM=Documents DocsMine=My documents DocsGenerated=Generated documents DocsElements=Elements documents diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 858e76af447..f3efba10999 100755 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -3,8 +3,6 @@ # No errors NoErrorCommitIsDone=No error, we commit # Errors -Error=Error -Errors=Errors ErrorButCommitIsDone=Errors found but we validate despite this ErrorBadEMail=EMail %s is wrong ErrorBadUrl=Url %s is wrong diff --git a/htdocs/langs/en_US/hrm.lang b/htdocs/langs/en_US/hrm.lang index 1ea8d970a3f..1d03a8ebbf9 100644 --- a/htdocs/langs/en_US/hrm.lang +++ b/htdocs/langs/en_US/hrm.lang @@ -1,5 +1,4 @@ # Dolibarr language file - en_US - hrm -CHARSET=UTF-8 # Admin HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service Establishments=Establishments diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index f21af4e072e..ed692c07424 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -52,9 +52,7 @@ ServerPortDescription=Database server port. Keep empty if unknown. DatabaseServer=Database server DatabaseName=Database name DatabasePrefix=Database prefix table -Login=Login AdminLogin=Login for Dolibarr database owner. -Password=Password PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database @@ -62,14 +60,11 @@ CreateUser=Create owner DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
In this case, you must fill the login/password for superuser account at the bottom of this page. CheckToCreateUser=Check box if database owner does not exist and must be created.
In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. -Experimental=(experimental) -Deprecated=(deprecated) DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values ConfigurationSaving=Saving configuration file ServerConnection=Server connection -DatabaseConnection=Database connection DatabaseCreation=Database creation UserCreation=User creation CreateDatabaseObjects=Database objects creation @@ -92,7 +87,6 @@ GoToDolibarr=Go to Dolibarr GoToSetupArea=Go to Dolibarr (setup area) MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again. GoToUpgradePage=Go to upgrade page again -Examples=Examples WithNoSlashAtTheEnd=Without the slash "/" at the end DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages. LoginAlreadyExists=Already exists @@ -113,7 +107,6 @@ Upgrade=Upgrade UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data. Start=Start InstallNotAllowed=Setup not allowed by conf.php permissions -NotAvailable=Not available YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process. CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page. AlreadyDone=Already migrated diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index db1cebac45d..9e27d6cb881 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -28,6 +28,7 @@ NoTranslation=No translation NoRecordFound=No record found NoError=No error Error=Error +Errors=Errors ErrorFieldRequired=Field '%s' is required ErrorFieldFormat=Field '%s' has a bad value ErrorFileDoesNotExists=File %s does not exist @@ -671,7 +672,7 @@ NewAttribute=New attribute AttributeCode=Attribute code OptionalFieldsSetup=Extra attributes setup URLPhoto=URL of photo/logo -SetLinkToThirdParty=Link to another third party +SetLinkToAnotherThirdParty=Link to another third party CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index daab8dcc3e5..1844a22c227 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -121,7 +121,6 @@ AttributeName=Attribute name String=String Text=Text Int=Int -Date=Date DateAndTime=Date and time PublicMemberCard=Member public card MemberNotOrNoMoreExpectedToSubscribe=Member not or no more expected to subscribe diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index 513fb091918..802fb02e6ef 100644 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -64,7 +64,6 @@ SearchOrder=Search order SearchACustomerOrder=Search a customer order SearchASupplierOrder=Search a supplier order ShipProduct=Ship product -Discount=Discount CreateOrder=Create Order RefuseOrder=Refuse order ApproveOrder=Approve order diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang index d2faa9baae5..fe618aa58c4 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -10,27 +10,26 @@ BirthdayAlertOn= birthday alert active BirthdayAlertOff= birthday alert inactive Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail -Notify_BILL_VALIDATE=Customer invoice validated -Notify_BILL_UNVALIDATE=Customer invoice unvalidated +Notify_ORDER_VALIDATE=Customer order validated +Notify_ORDER_SENTBYMAIL=Customer order sent by mail +Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused -Notify_ORDER_VALIDATE=Customer order validated Notify_PROPAL_VALIDATE=Customer proposal validated Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused +Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail Notify_WITHDRAW_TRANSMIT=Transmission withdrawal Notify_WITHDRAW_CREDIT=Credit withdrawal Notify_WITHDRAW_EMIT=Perform withdrawal -Notify_ORDER_SENTBYMAIL=Customer order sent by mail Notify_COMPANY_CREATE=Third party created Notify_COMPANY_SENTBYMAIL=Mails sent from third party card -Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail +Notify_BILL_VALIDATE=Customer invoice validated +Notify_BILL_UNVALIDATE=Customer invoice unvalidated Notify_BILL_PAYED=Customer invoice payed Notify_BILL_CANCEL=Customer invoice canceled Notify_BILL_SENTBYMAIL=Customer invoice sent by mail -Notify_ORDER_SUPPLIER_VALIDATE=Supplier order validated -Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail @@ -138,7 +137,6 @@ VolumeUnitinch3=in³ VolumeUnitounce=ounce VolumeUnitlitre=litre VolumeUnitgallon=gallon -Size=size SizeUnitm=m SizeUnitdm=dm SizeUnitcm=cm diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 0d3f83d49a9..f345e59891a 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -106,7 +106,6 @@ AddToOtherProposals=Add to other proposals AddToMyBills=Add to my bills AddToOtherBills=Add to other bills CorrectStock=Correct stock -AddPhoto=Add photo ListOfStockMovements=List of stock movements BuyingPrice=Buying price PriceForEachProduct=Products with specific prices @@ -139,7 +138,6 @@ KeywordFilter=Keyword filter CategoryFilter=Category filter ProductToAddSearch=Search product to add AddDel=Add/Delete -Quantity=Quantity NoMatchFound=No match found ProductAssociationList=List of products/services that are component of this virtual product/package ProductParentList=List of package products/services with this product as a component diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index c82d651a01d..4bb6a52af8b 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -99,7 +99,6 @@ ReOpenAProject=Open project ConfirmReOpenAProject=Are you sure you want to re-open this project ? ProjectContact=Project contacts ActionsOnProject=Events on project -OpenedProjects=Opened projects YouAreNotContactOfProject=You are not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent ? diff --git a/htdocs/langs/en_US/supplier_proposal.lang b/htdocs/langs/en_US/supplier_proposal.lang index 7bd743881c1..c90b7abeba2 100644 --- a/htdocs/langs/en_US/supplier_proposal.lang +++ b/htdocs/langs/en_US/supplier_proposal.lang @@ -11,7 +11,6 @@ DraftRequests=Draft requests LastModifiedRequests=Last %s modified price requests RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area -SupplierProposal=Supplier proposal SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals NewAskPrice=New price request diff --git a/htdocs/langs/en_US/trips.lang b/htdocs/langs/en_US/trips.lang index c6f4f316a04..ccf89b73c79 100644 --- a/htdocs/langs/en_US/trips.lang +++ b/htdocs/langs/en_US/trips.lang @@ -53,8 +53,6 @@ AddLineMini=Add Date_DEBUT=Period date start Date_FIN=Period date end ModePaiement=Payment mode -Note=Note -Project=Project VALIDATOR=User responsible for approval VALIDOR=Approved by diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index 81e1d48d46c..c202fa13002 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -41,7 +41,6 @@ SearchAUser=Search a user LoginNotDefined=Login is not defined. NameNotDefined=Name is not defined. ListOfUsers=List of users -Administrator=Administrator SuperAdministrator=Super Administrator SuperAdministratorDesc=Global administrator AdministratorDesc=Administrator diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang index 47b8863cf25..8248042d10c 100644 --- a/htdocs/langs/en_US/withdrawals.lang +++ b/htdocs/langs/en_US/withdrawals.lang @@ -48,7 +48,6 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) -Status=Status StatusUnknown=Unknown StatusWaiting=Waiting StatusTrans=Sent diff --git a/htdocs/product/admin/product.php b/htdocs/product/admin/product.php index 9c979862933..b3d17646db5 100644 --- a/htdocs/product/admin/product.php +++ b/htdocs/product/admin/product.php @@ -51,8 +51,9 @@ $select_pricing_rules=array( ); if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - $select_pricing_rules['PRODUIT_CUSTOMER_PRICES_BY_QTY'] = $langs->trans('PriceByQuantity').' ('.$langs->trans("Experimental").')'; // TODO If this is enabled, price must be hidden when price by qty is enabled, also price for quantity must be used when adding product into order/propal/invoice - $select_pricing_rules['PRODUIT_CUSTOMER_PRICES_BY_QTY&PRODUIT_MULTIPRICES'] = $langs->trans('MultiPricesAbility') . '+' . $langs->trans('PriceByQuantity').' ('.$langs->trans("Experimental").')'; + $langs->load("admin"); + $select_pricing_rules['PRODUIT_CUSTOMER_PRICES_BY_QTY'] = $langs->trans('PriceByQuantity').' ('.$langs->trans("VersionExperimental").')'; // TODO If this is enabled, price must be hidden when price by qty is enabled, also price for quantity must be used when adding product into order/propal/invoice + $select_pricing_rules['PRODUIT_CUSTOMER_PRICES_BY_QTY&PRODUIT_MULTIPRICES'] = $langs->trans('MultiPricesAbility') . '+' . $langs->trans('PriceByQuantity').' ('.$langs->trans("VersionExperimental").')'; } // Clean param