ezFIT 5 Localization
Application Localization
  • Add RESX files to project (See Localization Using ResX Files).
  • Edit class AHI.App.Localization.TLocalizationTools in src\AHI.App.Localization\Tools.cs to include new supported language:
    public static ObservableCollection<TLanguageInfo> SupportedLanguageInfo = new ObservableCollection<TLanguageInfo>() 
            { 
                //new TLanguageInfo() {LanguageNative = Resources.rsLangBulgarian,  LanguageEnglish = "Bulgarian",  LanguageCode = "bg-BG"},
                //new TLanguageInfo() {LanguageNative = Resources.rsLangDanish,     LanguageEnglish = "Danish",     LanguageCode = "da-DK"},
                new TLanguageInfo() {LanguageNative = Resources.rsLangEnglish,    LanguageEnglish = "English",    LanguageCode = "en-US"},
                //new TLanguageInfo() {LanguageNative = Resources.rsLangFrench,     LanguageEnglish = "French",     LanguageCode = "fr-CA"},
                //new TLanguageInfo() {LanguageNative = Resources.rsLangGerman,     LanguageEnglish = "German",     LanguageCode = "de-DE"},
                new TLanguageInfo() {LanguageNative = Resources.rsLangKorean,     LanguageEnglish = "Korean",     LanguageCode = "ko-KR"},
                new TLanguageInfo() {LanguageNative = Resources.rsLangItalian,    LanguageEnglish = "Italian",    LanguageCode = "it-IT"},
                new TLanguageInfo() {LanguageNative = Resources.rsLangSpanish,    LanguageEnglish = "Spanish",    LanguageCode = "es-ES"},
                //new TLanguageInfo() {LanguageNative = Resources.rsLangPortuguese, LanguageEnglish = "Portuguese", LanguageCode = "pt-BR"},
                //new TLanguageInfo() {LanguageNative = Resources.rsLangRussian,    LanguageEnglish = "Russian",    LanguageCode = "ru-RU"},
                //new TLanguageInfo() {LanguageNative = Resources.rsLangTurkish,    LanguageEnglish = "Turkish",    LanguageCode = "tr-TR"},
                //new TLanguageInfo() {LanguageNative = Resources.rsLangPolish,     LanguageEnglish = "Polish",     LanguageCode = "pl-PL"},
            };
  • Translate original English RESX strings using Google Translate and Resx Translator Bot.
  • Build ezFIT project. Localization files should be generated under <rootEzFIT>\src\ezFIT\bin\x86\Debug\<langcode>.
Installer Localization

Instructions for Developers

  • Open InnoSetup installer script.
  • Create file entries for all application localization files to distribute:
    installer-ezfit.iss
    [InstallDelete]
    . . .
    ;---------------------------------------------------
    ; Localization files
    ;---------------------------------------------------
    Name: {app}\AHI.App.Localization.dll; Type: files
    Name: {app}\es\AHI.App.Localization.resources.dll; Type: files
    . . .
     
    [Files]
    . . .
    ;---------------------------------------------------
    ; Localization files
    ;---------------------------------------------------
    Source: {#SrcAppDir}\AHI.App.Localization.resources.dll; DestDir: {app}; Flags: ignoreversion skipifsourcedoesntexist
    Source: {#SrcAppDir}\es\AHI.App.Localization.resources.dll; DestDir: {app}\es; Flags: ignoreversion skipifsourcedoesntexist
    . . .
  • Add a directive to define language (in includes\sysutils.iss):
    sysutils.iss
    #if AppLangSupp == "<LanguageNameHere>"
      #define <LanguageNameHere>
      ...
    #elif...
    #else
      #define English
    #endif
  • Add Language resources under section [Languages]:
    sysutils.iss
    [Languages]
    #ifdef English
    Name: English; MessagesFile: compiler:Default.isl
    #endif
    #ifdef <LanguageNameHere>
    Name: <LanguageNameHere>; MessagesFile: compiler:Languages\<LanguageNameHere>.isl
    #endif
  • Add and translate resource strings under section [CustomMessages]:
    sysutils.iss
    [CustomMessages]
    #ifdef English
    SelectDrivers=Select Drivers
    ...
    #endif
    ; <LanguageNameHere> should be replaced by the target language to localize
    #ifdef <LanguageNameHere>
    ;<LanguageNameHere>.String=<TranslatedString>
    <LanguageNameHere>.SelectDrivers=Seleccionar Controladores
    ...
    #endif
  • Add and translate resource strings under section [CustomMessages] for the following files:
    • installer-ezfit.iss
    • includes\database.iss
    • includes\net-framework.iss
    • includes\noah-support.iss
    • includes\sysutils.iss
    • includes\user-registration.iss

Instructions for Translators

Syntax for resource strings to translate:

; <LanguageNameHere>
<LanguageNameHere>.<ResourceStringName>=<ResourceStringValueToTranslate>
...

Example

; English (Default)
rsSelectDrivers=Select Drivers

; Spanish
Spanish.rsSelectDrivers=Seleccionar Controladores
...