Exportfile for AOT version 1.0 or later Formatversion: 1 ***Element: REF ; Microsoft Dynamics AX REFERENCE : Microsoft.Translator unloaded ; -------------------------------------------------------------------------------- VERSION 1 REFERENCE #Microsoft.Translator PROPERTIES Name #Microsoft.Translator AssemblyName #Microsoft.Translator AssemblyDisplayName #Microsoft.Translator, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null Culture # PublicKeyToken # Version #0.0.0.0 ServiceReference #Yes WSDLURL #http://api.microsofttranslator.com/V1/SOAP.svc .NETCodeNamespace #Microsoft.Translator ServiceDescription #http://api.microsofttranslator.com/V1/SOAP.svc ENDPROPERTIES ENDREFERENCE ***Element: CLS ; Microsoft Dynamics AX Class: MicrosoftTranslator unloaded ; -------------------------------------------------------------------------------- CLSVERSION 1 CLASS #MicrosoftTranslator PROPERTIES Name #MicrosoftTranslator Extends # RunOn #Server ENDPROPERTIES METHODS Version: 3 SOURCE #classDeclaration #/* # JAEE - www.jaestevan.com # # @created 10/10/2009 tested in AX2009 SP1 #*/ #class MicrosoftTranslator #{ # str appId; # Map transLang; // List of languages to translate # LabelModuleId moduleId; #} ENDSOURCE SOURCE #createLabel #public void createLabel(str _txt, str _txtLang) #{ # MapEnumerator langEnum; # Label l; # str res; # # LabelId labelId; # SysLabelEdit labelEd = new SysLabelEdit(); # SysLabel sysLabel = new SysLabel('es'); # ; # # // Find or create the label (busca la etiqueta y si no existe la crea) # labelId = labelEd.findLabel(_txtLang, _txt); # if (!labelId) # { # sysLabel.insert(_txt, _txt, this.parmModuleId()); # labelId = labelEd.findLabel(_txtLang, _txt); # } # # //Log # InfoLog.add(Exception::Info, strfmt("Traduciendo: (%1) %2", _txtLang, _txt)); # # // Update the label for each language (actualiza la etiqueta para cada idioma) # langEnum = new MapEnumerator(this.parmLangs()); # while (langEnum.moveNext()) # { # // Call to translate (función de traducir) # res = this.strTranslate(_txt, _txtLang, langEnum.currentValue()); # # // Modify label with new translated text (modifica la etiqueta con el texto traducido) # labelEd.labelModify(langEnum.currentValue(), labelId, res, _txt, SysLabelApplModule::None, true); # # // Log # InfoLog.add(Exception::Info, strfmt("(%1) %2", langEnum.currentKey(), res)); # } #} ENDSOURCE SOURCE #new #void new(LabelModuleId _modulo = SysLabel::defaultModuleId()) #{ # // Axapta Label Module Id # moduleId = _modulo; # # // Microsoft BING AppID - http://www.bing.com/developers # appId = 'xxxxxxxxxxxxxxxxxxxxxxx'; # # // List of languages to translate (AX lang, BING lang) (Idiomas a traducir) # transLang = new Map(Types::String, Types::String); # transLang.insert('de','de'); # transLang.insert('ru','ru'); # transLang.insert('en-us','en-us'); # transLang.insert('fr','fr'); # #} ENDSOURCE SOURCE #parmLangs #public Map parmLangs(Map _transLang = transLang) #{ # transLang = _transLang; # return transLang; #} ENDSOURCE SOURCE #parmModuleId #public LabelModuleId parmModuleId(LabelModuleId _moduleId = moduleId) #{ # moduleId = _moduleId; # return moduleId; #} ENDSOURCE SOURCE #strTranslate #// Method based on Arijit Basu's blog post #// http://daxguy.blogspot.com/2009/10/dynamics-ax-bing-language-translation.html #protected str strTranslate(str _txt, str _fromLang, str _toLang) #{ # Microsoft.Translator.LanguageServiceClient svcTrans; // NS: Microsoft.Translator # str res = ''; # ; # # try # { # new InteropPermission(InteropKind::ClrInterop).assert(); # svcTrans = new Microsoft.Translator.LanguageServiceClient(); # res = svcTrans.Translate(appId, _txt, _fromLang, _toLang); # CodeAccessPermission::revertAssert(); # } # catch(Exception::CLRError) # { # throw error(AifUtil::getClrErrorMessage()); # } # # return res; #} ENDSOURCE ENDMETHODS ENDCLASS ***Element: JOB ; Microsoft Dynamics AX Job: MicrosoftTranslatorTest unloaded ; -------------------------------------------------------------------------------- JOBVERSION 1 SOURCE #MicrosoftTranslatorTest #/* # JAEE - www.jaestevan.com # # @created 10/10/2009 tested in AX2009 SP1 #*/ #static void MicrosoftTranslatorTest(Args _args) #{ # MicrosoftTranslator msTrans = new MicrosoftTranslator(); # ; # # msTrans.createLabel("Ahora axapta puede traducir etiquetas! (jaestevan.com)", "es"); #} ENDSOURCE ***Element: PRN ; Microsoft Dynamics AX Project : JAEE_MicrosoftTranslatorText unloaded ; -------------------------------------------------------------------------------- PROJECTVERSION 2 PROJECT #JAEE_MicrosoftTranslatorText PRIVATE PROPERTIES Name #JAEE_MicrosoftTranslatorText ENDPROPERTIES PROJECTCLASS ProjectNode GROUP #References PROPERTIES Name #References ProjectGroupType #References GroupMask # PreventEditProperties #No ENDPROPERTIES BEGINNODE FILETYPE 0 UTILTYPE 53 UTILOBJECTID 0 NODETYPE 822 NAME #Microsoft.Translator ENDNODE ENDGROUP GROUP #Classes PROPERTIES Name #Classes ProjectGroupType #Classes GroupMask # PreventEditProperties #No ENDPROPERTIES BEGINNODE FILETYPE 0 UTILTYPE 45 UTILOBJECTID 30009 NODETYPE 329 NAME #MicrosoftTranslator ENDNODE ENDGROUP GROUP #Jobs PROPERTIES Name #Jobs ProjectGroupType #Jobs GroupMask # PreventEditProperties #No ENDPROPERTIES BEGINNODE FILETYPE 0 UTILTYPE 5 UTILOBJECTID 0 NODETYPE 215 NAME #MicrosoftTranslatorTest ENDNODE ENDGROUP ENDPROJECT ***Element: END