2.11  Skrypty wielojęzyczne

 

W przypadku skryptów pracujących w ramach aplikacji wielojęzycznej istotne staje się użycie tekstów zgodnych z aktualnym językiem pracy aplikacji. W tego typu skryptach możliwe jest użycie dwóch mechanizmów. Można wykorzystać pulę wielojęzycznych napisów aplikacji lub wyliczać właściwą postać napisu w kodzie skryptu.

C#

using System;
using
 System.Windows.Forms;
using
 Askom.AsixEvo.Scripting;
 

public
 class LangMessage : IScript
{
   IApplication application;
   
public bool Initialize(string[] aParameters, IApplication aApplication)
   {
      application = aApplication;
      aApplication.ReportMessage(EvoMessageType.Info,

                                 aApplication.ApplicationText("ScriptStartInfo"));
      aApplication.ReportMessage(EvoMessageType.Info, StartMsg());
      return true;
   }
 
   public void FinalizeScript()
   {
   }
 
   string StartMsg()
   {
      switch (application.CurrentApplicationLanguage)
      {
         case "pl":
            return "Skrypt uruchomiony";
 
         case "en":
         default:
            return "Script started";
      }
   }

 

VB

Imports System
Imports
 System.Windows.Forms
Imports
 Askom.AsixEvo.Scripting
 

Public
 Class LangMessageVB
    
Implements IScript
 
    
Dim application As IApplication
    
Public Function Initialize(ByVal aParameters() As StringByVal aApplication As _

                                      IApplication) As Boolean Implements IScript.Initialize
 
        application = aApplication
        aApplication.ReportMessage(EvoMessageType.Info, _

                                   aApplication.ApplicationText("ScriptStartInfo"))
        aApplication.ReportMessage(EvoMessageType.Info, StartMsg())
        Return True
 
    End Function
 
    Public Sub FinalizeScript() Implements IScript.FinalizeScript
    End Sub
 
    Function StartMsg() As String
 
        Select Case application.CurrentApplicationLanguage
 
            Case "pl"
                Return "Skrypt uruchomiony"
 
            Case "en"
                Return "Script started"
            Case Else
                Return "Script started"
 
        End Select
 
    End Function
 
End
 Class 

 

W powyższym kodzie w pierwszym wywołaniu metody ReportMessage treść komunikatu pobierana jest z puli napisów aplikacji przy pomocy metody ApplicationText. Parametr „ScriptStartInfo” jest identyfikatorem napisu użytym w puli napisów aplikacji. Metoda ApplicationText zwraca wersję napisu zgodną z aktualnym językiem pracy.

W drugim wywołaniu ReportMessage treść komunikatu jest określona przez funkcję StartMsg. Funkcja ta wylicza właściwą wersję językową na podstawie aktualnej wartości właściwości CurrentApplicationLanguage interfejsu IApplication.