getTranslatedText function

String getTranslatedText(
  1. String multilingualText,
  2. dynamic valueByNameMap, [
  3. String? languageTag_,
  4. String? defaultLanguageTag,
])

Implementation

String getTranslatedText(
    String multilingualText,
    dynamic valueByNameMap,
    [String? languageTag_,
    String? defaultLanguageTag]
    )
{
    if ( languageTag_ != null
         && valueByNameMap is String )
    {
        languageTag_ = valueByNameMap;
        valueByNameMap = null;
    }

    List<String> translatedTextArray = multilingualText.split( languageSeparator );

    if ( languageTag_ == null )
    {
        languageTag_ = languageTag;
    }

    if ( languageTag_ != defaultLanguageTag )
    {
        for ( int translatedTextIndex = translatedTextArray.length - 1;
              translatedTextIndex >= 1;
              --translatedTextIndex )
        {
            String translatedText = translatedTextArray[ translatedTextIndex ];
            int colonCharacterIndex = translatedText.indexOf( ':' );

            if ( colonCharacterIndex >= 0 )
            {
                if ( matchesTranslationSpecifier( translatedText.substring( 0, colonCharacterIndex ), valueByNameMap, languageTag_ ) )
                {
                    return getSubstitutedText( translatedText.substring( colonCharacterIndex + 1 ), valueByNameMap );
                }
            }
        }
    }

    return getSubstitutedText( translatedTextArray[ 0 ], valueByNameMap as Map<String, dynamic>? );
}