dolibarr  7.0.0-beta
Public Member Functions | Private Member Functions | List of all members
Translate Class Reference

Class to manage translations. More...

Public Member Functions

 __construct ($dir, $conf)
 Constructor. More...
 
 setDefaultLang ($srclang='en_US')
 Set accessor for this->defaultlang. More...
 
 getDefaultLang ($mode=0)
 Return active language code for current user It's an accessor for this->defaultlang. More...
 
 loadLangs ($domains)
 Load translation files. More...
 
 load ($domain, $alt=0, $stopafterdirection=0, $forcelangdir='', $loadfromfileonly=0)
 Load translation key-value for a particular file, into a memory array. More...
 
 loadFromDatabase ($db)
 Load translation key-value from database into a memory array. More...
 
 trans ($key, $param1='', $param2='', $param3='', $param4='', $maxsize=0)
 Return text translated of text received as parameter (and encode it into HTML) Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif et si toujours pas trouve, il est retourne tel quel Les parametres de cette methode peuvent contenir de balises HTML. More...
 
 transnoentities ($key, $param1='', $param2='', $param3='', $param4='')
 Return translated value of a text string Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif et si toujours pas trouve, il est retourne tel quel. More...
 
 transnoentitiesnoconv ($key, $param1='', $param2='', $param3='', $param4='')
 Return translated value of a text string Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif et si toujours pas trouve, il est retourne tel quel. More...
 
 transcountry ($str, $countrycode)
 Return translation of a key depending on country. More...
 
 transcountrynoentities ($str, $countrycode)
 Retourne la version traduite du texte passe en parametre complete du code pays. More...
 
 convToOutputCharset ($str, $pagecodefrom='UTF-8')
 Convert a string into output charset (this->charset_output that should be defined to conf->file->character_set_client) More...
 
 get_available_languages ($langdir=DOL_DOCUMENT_ROOT, $maxlength=0, $usecode=0)
 Return list of all available languages. More...
 
 file_exists ($filename, $searchalt=0)
 Return if a filename $filename exists for current language (or alternate language) More...
 
 getLabelFromNumber ($number, $isamount=0)
 Return full text translated to language label for a key. More...
 
 getLabelFromKey ($db, $key, $tablename, $fieldkey, $fieldlabel, $keyforselect='', $filteronentity=0)
 Return a label for a key. More...
 
 getCurrencyAmount ($currency_code, $amount)
 Return a currency code into its symbol. More...
 
 getCurrencySymbol ($currency_code, $forceloadall=0)
 Return a currency code into its symbol. More...
 
 loadCacheCurrencies ($currency_code)
 Load into the cache this->cache_currencies, all currencies. More...
 
 get_translations_for_substitutions ()
 Return an array with content of all loaded translation keys (found into this->tab_translate) so we get a substitution array we can use for substitutions (for mail or ODT generation for example) More...
 

Private Member Functions

 getTradFromKey ($key)
 Return translated value of key for special keys ("Currency...", "Civility...", ...). More...
 

Detailed Description

Class to manage translations.

Definition at line 30 of file translate.class.php.

Constructor & Destructor Documentation

Translate::__construct (   $dir,
  $conf 
)

Constructor.

Parameters
string$dirForce directory that contains /langs subdirectory (value is sometimes '..' like into install/* pages or support/* pages). Use '' by default.
Conf$confObject with Dolibarr configuration

Definition at line 51 of file translate.class.php.

Member Function Documentation

Translate::convToOutputCharset (   $str,
  $pagecodefrom = 'UTF-8' 
)

Convert a string into output charset (this->charset_output that should be defined to conf->file->character_set_client)

Parameters
string$strString to convert
string$pagecodefromPage code of src string
Returns
string Converted string

Definition at line 748 of file translate.class.php.

Referenced by pdfBuildThirdpartyName(), and transnoentities().

Translate::file_exists (   $filename,
  $searchalt = 0 
)

Return if a filename $filename exists for current language (or alternate language)

Parameters
string$filenameLanguage filename to search
integer$searchaltSearch also alernate language file
Returns
boolean true if exists and readable

Definition at line 802 of file translate.class.php.

References dol_osencode().

Referenced by getLabelFromNumber().

Translate::get_available_languages (   $langdir = DOL_DOCUMENT_ROOT,
  $maxlength = 0,
  $usecode = 0 
)

Return list of all available languages.

Parameters
string$langdirDirectory to scan
integer$maxlengthMax length for each value in combo box (will be truncated)
int$usecode1=Show code instead of country name for language variant, 2=Show only code
Returns
array List of languages

Definition at line 764 of file translate.class.php.

References dol_trunc(), load(), and trans().

Translate::get_translations_for_substitutions ( )

Return an array with content of all loaded translation keys (found into this->tab_translate) so we get a substitution array we can use for substitutions (for mail or ODT generation for example)

Returns
array Array of translation keys lang_key => string_translation_loaded

Definition at line 1024 of file translate.class.php.

Translate::getCurrencyAmount (   $currency_code,
  $amount 
)

Return a currency code into its symbol.

Parameters
string$currency_codeCurrency Code
string$amountIf not '', show currency + amount according to langs ($10, 10€).
Returns
string Amount + Currency symbol encoded into UTF8
Deprecated:
Use method price to output a price
See also
price()

Definition at line 928 of file translate.class.php.

References getCurrencySymbol().

Translate::getCurrencySymbol (   $currency_code,
  $forceloadall = 0 
)

Return a currency code into its symbol.

If mb_convert_encoding is not available, return currency code.

Parameters
string$currency_codeCurrency code
integer$forceloadall1=Force to load all currencies into cache. We know we need to use all of them. By default read and cache only required currency.
Returns
string Currency symbol encoded into UTF8

Definition at line 944 of file translate.class.php.

References loadCacheCurrencies().

Referenced by getCurrencyAmount().

Translate::getDefaultLang (   $mode = 0)

Return active language code for current user It's an accessor for this->defaultlang.

Parameters
int$mode0=Long language code, 1=Short language code
Returns
string Language code used (en_US, en_AU, fr_FR, ...)

Definition at line 135 of file translate.class.php.

Translate::getLabelFromKey (   $db,
  $key,
  $tablename,
  $fieldkey,
  $fieldlabel,
  $keyforselect = '',
  $filteronentity = 0 
)

Return a label for a key.

Search into translation array, then into cache, then if still not found, search into database. Store key-label found into cache variable $this->cache_labels to save SQL requests to get labels.

Parameters
DoliDB$dbDatabase handler
string$keyTranslation key to get label (key in language file)
string$tablenameTable name without prefix
string$fieldkeyField for key
string$fieldlabelField for label
string$keyforselectUse another value than the translation key for the where into select
int$filteronentityUse a filter on entity
Returns
string Label in UTF8 (but without entities)
See also
dol_getIdFromCode

Definition at line 876 of file translate.class.php.

References $resql, dol_syslog(), getEntity(), and transnoentitiesnoconv().

Referenced by getTradFromKey().

Translate::getLabelFromNumber (   $number,
  $isamount = 0 
)

Return full text translated to language label for a key.

Store key-label in a cache. This function need module "numberwords" to be installed. If not it will return same number (this module is not provided by default as it use non GPL source code).

Parameters
int$numberNumber to encode in full text
int$isamount1=It's an amount, 0=it's just a number
Returns
string Label translated in UTF8 (but without entities) 10 if setDefaultLang was en_US => ten 123 if setDefaultLang was fr_FR => cent vingt trois

Definition at line 833 of file translate.class.php.

References dol_buildpath(), dol_osencode(), and file_exists().

Translate::getTradFromKey (   $key)
private

Return translated value of key for special keys ("Currency...", "Civility...", ...).

Search in lang file, then into database. Key must be any complete entry into lang file: CurrencyEUR, ... If not found, return key. The string return is not formated (translated with transnoentitiesnoconv) NOTE: To avoid infinite loop (getLabelFromKey->transnoentities->getTradFromKey), if you modify this function, check that getLabelFromKey is not called with same value than input.

Parameters
string$keyKey to translate
Returns
string Translated string (translated with transnoentitiesnoconv)

Definition at line 543 of file translate.class.php.

References getLabelFromKey().

Referenced by trans(), and transnoentitiesnoconv().

Translate::load (   $domain,
  $alt = 0,
  $stopafterdirection = 0,
  $forcelangdir = '',
  $loadfromfileonly = 0 
)

Load translation key-value for a particular file, into a memory array.

If data for file already loaded, do nothing. All data in translation array are stored in UTF-8 format. tab_loaded is completed with $domain key. rule "we keep first entry found with we keep last entry found" so it is probably not what you want to do.

Value for hash are: 1:Loaded from disk, 2:Not found, 3:Loaded from cache

Parameters
string$domainFile name to load (.lang file). Must be "file" or "file@module" for module language files: If $domain is "file@module" instead of "file" then we look for module lang file in htdocs/custom/modules/mymodule/langs/code_CODE/file.lang then in htdocs/module/langs/code_CODE/file.lang instead of htdocs/langs/code_CODE/file.lang
integer$alt0 (try xx_ZZ then 1), 1 (try xx_XX then 2), 2 (try en_US)
int$stopafterdirectionStop when the DIRECTION tag is found (optimize speed)
int$forcelangdirTo force a different lang directory
int$loadfromfileonly1=Do not load overwritten translation from file or old conf.
Returns
int <0 if KO, 0 if already loaded or loading not required, >0 if OK
See also
loadLangs

Read each lines until a '=' (with any combination of spaces around it) and split the rest until a line feed. This is more efficient than fgets + explode + trim by a factor of ~2.

Definition at line 176 of file translate.class.php.

References dol_getcache(), dol_osencode(), dol_print_error(), dol_setcache(), dol_syslog(), and loadFromDatabase().

Referenced by get_available_languages(), loadCacheCurrencies(), loadLangs(), InterfaceLogevents\runTrigger(), and InterfaceActionsAuto\runTrigger().

Translate::loadCacheCurrencies (   $currency_code)

Load into the cache this->cache_currencies, all currencies.

Parameters
string$currency_codeGet only currency. Get all if ''.
Returns
int Nb of loaded lines, 0 if already loaded, <0 if KO

Definition at line 970 of file translate.class.php.

References $resql, dol_print_error(), dol_syslog(), load(), and trans().

Referenced by getCurrencySymbol().

Translate::loadFromDatabase (   $db)

Load translation key-value from database into a memory array.

If data already loaded, do nothing. All data in translation array are stored in UTF-8 format. tab_loaded is completed with $domain key. rule "we keep first entry found with we keep last entry found" so it is probably not what you want to do.

Value for hash are: 1:Loaded from disk, 2:Not found, 3:Loaded from cache

Parameters
Database$dbDatabase handler
Returns
int <0 if KO, 0 if already loaded or loading not required, >0 if OK

Definition at line 401 of file translate.class.php.

References $resql, dol_getcache(), dol_print_error(), dol_setcache(), and dol_syslog().

Referenced by load().

Translate::loadLangs (   $domains)

Load translation files.

Parameters
array$domainsArray of lang files to load
Returns
int <0 if KO, 0 if already loaded or loading not required, >0 if OK

Definition at line 148 of file translate.class.php.

References load().

Translate::setDefaultLang (   $srclang = 'en_US')

Set accessor for this->defaultlang.

Parameters
string$srclangLanguage to use. If '' or 'auto', we use browser lang.
Returns
void

Definition at line 65 of file translate.class.php.

Translate::trans (   $key,
  $param1 = '',
  $param2 = '',
  $param3 = '',
  $param4 = '',
  $maxsize = 0 
)

Return text translated of text received as parameter (and encode it into HTML) Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif et si toujours pas trouve, il est retourne tel quel Les parametres de cette methode peuvent contenir de balises HTML.

Parameters
string$keyKey to translate
string$param1chaine de param1
string$param2chaine de param2
string$param3chaine de param3
string$param4chaine de param4
int$maxsizeMax length of text
Returns
string Translated string (encoded into HTML entities and UTF8)

Definition at line 597 of file translate.class.php.

References dol_trunc(), and getTradFromKey().

Referenced by get_available_languages(), loadCacheCurrencies(), and transcountry().

Translate::transcountry (   $str,
  $countrycode 
)

Return translation of a key depending on country.

Parameters
string$strstring root to translate
string$countrycodecountry code (FR, ...)
Returns
string translated string

Definition at line 720 of file translate.class.php.

References trans().

Translate::transcountrynoentities (   $str,
  $countrycode 
)

Retourne la version traduite du texte passe en parametre complete du code pays.

Parameters
string$strstring root to translate
string$countrycodecountry code (FR, ...)
Returns
string translated string

Definition at line 734 of file translate.class.php.

References transnoentities().

Translate::transnoentities (   $key,
  $param1 = '',
  $param2 = '',
  $param3 = '',
  $param4 = '' 
)

Return translated value of a text string Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif et si toujours pas trouve, il est retourne tel quel.

Parameters of this method must not contains any HTML tags.

Parameters
string$keyKey to translate
string$param1chaine de param1
string$param2chaine de param2
string$param3chaine de param3
string$param4chaine de param4
Returns
string Translated string (encoded into UTF8)

Definition at line 657 of file translate.class.php.

References convToOutputCharset(), and transnoentitiesnoconv().

Referenced by InterfaceLogevents\runTrigger(), InterfaceActionsAuto\runTrigger(), and transcountrynoentities().

Translate::transnoentitiesnoconv (   $key,
  $param1 = '',
  $param2 = '',
  $param3 = '',
  $param4 = '' 
)

Return translated value of a text string Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif et si toujours pas trouve, il est retourne tel quel.

No convert to encoding charset of lang object is done. Parameters of this method must not contains any HTML tags.

Parameters
string$keyKey to translate
string$param1chaine de param1
string$param2chaine de param2
string$param3chaine de param3
string$param4chaine de param4
Returns
string Translated string

Definition at line 677 of file translate.class.php.

References dol_eval(), and getTradFromKey().

Referenced by getLabelFromKey(), and transnoentities().


The documentation for this class was generated from the following file: