Collections functions
General functions
Node functions
Render functions
Theme permission functions
User functions
Resource functions

i18n_get_translated()

Description

For field names / values using the i18n syntax, return the version in the current user's language. Format is ~en:Somename~es:Someothername

Parameters

ColumnTypeDefaultDescription
$text string|null

Return

string

Location

include/language_functions.php lines 40 to 87

Definition

 
function i18n_get_translated($text)
{
    
$text ??= ''
        
    global 
$language,$defaultlanguage;

    
$asdefaultlanguage $defaultlanguage;

    if (!isset(
$asdefaultlanguage)) {
        
$asdefaultlanguage 'en';
    }

    
# Split
    
$s explode("~",$text);

    
# Not a translatable field?
    
if (count($s) < 2) {
        return 
$text;
    }

    
# Find the current language and return it
    
$default "";
    for (
$n 1$n count($s); $n++) {
        
# Not a translated string, return as-is
        
if (substr($s[$n], 21) != ":" && substr($s[$n], 51) != ":" && substr($s[$n], 01) != ":") {
            return 
$text;
        }
        
        
# Support both 2 character and 5 character language codes (for example en, en-US).
        
$p strpos($s[$n], ':');
        
$textLanguage substr($s[$n], 0$p);
        if (
strtolower($textLanguage) == strtolower($language)) {
            return 
substr($s[$n], $p 1);
        }
        
        if (
strtolower($textLanguage) == strtolower($asdefaultlanguage) || $p == || $n == 1) {
            
$default substr($s[$n], $p 1);
        }
    }
    
    
# Translation not found? Return default language
    # No default language entry? Then consider this a broken language string and return the string unprocessed.
    
if ($default != "") {
        return 
$default;
    } else {
        return 
$text;
    }
}

This article was last updated 5th May 2024 12:35 Europe/London time based on the source file dated 3rd May 2024 14:45 Europe/London time.