Getting Equivalent and Nearest Equivalent Languages

This section describes how to call functions of BaflUtils to get an equivalent language list and a nearest equivalent language.


BaflUtils provides the following two static functions to get the equivalent language list and a nearest equivalent language:

  • GetEquivalentLanguageList(TLanguage aLang, TLanguagePath& aEquivalents)

    For a given language (TLanguage), it returns an array (TLanguagePath) which contains the equivalent languages. If no equivalent language is found, ELangNone is returned.

  • NearestLanguageFileV2(const RFs& aFs,TFileName& aName, TLanguage& aLanguage)

    A TLanguage value is used at the end of a resource file name to identify a resource file for a language. For example, filename.r01 and filename.r02 are the English and French versions of the filename.rsc resource file.

    An application calls BaflUtils::NearestLanguageFileV2() to determine which localized resource file is the closest to the current system language. The function searches the following drives in the given sequence for the available resource files, which have the same file name (without extension) as aName. Once the resource files are searched on a drive, the function stops searching on the next drive.

    • The custom resource drive if it is set using the HAL::ECustomResourceDrive attribute or the legacy HAL::ESystemDrive attribute.

    • The optional drive if it is specified in the aName parameter.

    • Z: drive if the optional drive is not set in the aName parameter.

    The current system language is then taken as a given language. All the available resource file names are prioritized according to the equivalent language list. The resource file name with the highest priority is returned.


This tutorial assumes that you have an understanding of Equivalent Language Reference which explains the equivalent language table, including the equivalent language list and its priority.