|
|||
| Moderated by: Renate.Reinartz, Markus.Kreisel, Jaakko.Salmenius, Ilkka.Salmenius |
|
|||||||||||||
| SlMake usage - Usage - Three simple steps to localize - Technical Support (You need to be registered at the forum to write) - Localization Tool for VB, Delphi, .NET, C#, VB.NET, XML, Online Help, HTML ... | ||||||||||||||
| Author | Post | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||
|
Dan L Member
|
Hi, could you please give me some guidance on using SlMake to create a package for translation at the end of an automated .Net build Starting with the following in source control: - Source code (C#) - English resources (*.resx) - Some/none foreign language resources (*.resx) Apply a build process (using Nant) to: - build Application.exe (including set up of version numbers and strong naming) - build resources.dlls from existing foreign resx files - linked with correct version numbers and strong name key etc. using resgen and al. I would like to optionally include another build step to produce packages to send for translation. I thought the process would be something like this: - create new Sisulizer project - "add" source Application.EXE (or possibly resx files) - define languages (fr, de etc) - "import" existing translations from foreign resource.dll (if any) (or possibly resx) - "exchange" to create package for each language I've played a bit with SlMake but I'm not sure what each task does in detail In particular - How to create a blank project in order to add sources? - If I call "add" with an EXE from a folder which has \fr \de subfolders do these foreign resources get imported automatically? - Or maybe I have to manually create the original project (add the source EXE and define languages of interest), in which case: - If I call "exchange" on an existing project, which of the steps above will be carried out (will it automatically re-load the latest application.EXE and foreign resources?) Thanks, DanL
|
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Jaakko.Salmenius Administrator
|
I am working on your case. Please wait until tomorrow until I get documentation updated and samples tested. Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Jaakko.Salmenius Administrator
|
Hi, You can make Sisulizer to sign satellite assembly files it creates. Download Sisulizer 1.5.5. If you create a new project using this new version it will automatically turn on signing. For older version you have to turn it on. Search for “signing” index in Sisuslizer’s help (1.5.5). Sisulizer will automatically create the satellite assembly files then you build the project (Project | Build) or (slmake create ...). If you have added Visual Studio project file (.csproj or .vbproj) to Sisulizer project SL creates first localized .resx files, compiles them to .resources files and finally create the satellite assembly files. When you create an exchange package for translator you do not have to create a new project. Just open existing project and choose File | Exchange or uses “slmake exchange ... “. This creates an exchange package (either .exe or .sle) that you sent you translator. Of course you can always just send the Sisulizer project file (.slp). Normally Sisulizer imports existing translations only when you create a new project and there are existing localized files. You better create new projects using Sisulizer itself and not slmake. Anyway starting from 1.5.5 “slmake add ... “ will create the project if it does not exist. Also starting from 1.5.5 it imports existing translations when add task is performed. Please wait few hours until I get 1.5.5 uploaded to your server. I will inform you when you can download it. Best regards, Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Dan L Member
|
Hi Jaakko Thanks for your quick response - I'll try 1.5.5. when it is available. Meanwhile, regarding the process in general: I would like to continue to use resx files as the primary format for source control. (It is what we are already doing; it efficient to store in our version control system and easy to do differencing between versions etc.; and we already have the necessary mechanisms in place to go from resx to compiled satellite dlls with our current build process.) Is it possible to get resx files as output from a project after translation if that project was created from the EXE source rather than the source code? Thanks, Dan L
|
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Jaakko.Salmenius Administrator
|
No. If EXE source is used Sisulizer does not create .resx at all. EXE does not contain them but the compiled resource data (.resources). Sisulizer translates them and makes temporal .resources before linking the satellite assembly files and finally deletes the temporal .resources files. If you want to keed the localized .resx file you have to use .csproj or .vsproj source. Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Dan L Member
|
Is it possible to output the temporal .resources files? (which could be converted to resx using resgen), thanks, Dan L [ oops forget that - I see above you say they are deleted .csproj it is then.] Last edited on Wed May 23rd, 2007 07:28 pm by Dan L |
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Jaakko.Salmenius Administrator
|
I implemented a new feature (1.5.5) where you can disable deletion of .resources files. By default SL deletes tehm but you can make SL to keep them by right clicking the .EXE on the project tree, choosing Properties... and unchecking Delete .resources ... check box. The files will be written to the same file as the satellite assembly file. You can use ResGen.exe to convert them to .resx files. Note! This feature does not exist in 1.5.4 Jaakko Attachment: untitled.PNG (Downloaded 71 times)
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Markus.Kreisel Administrator
|
Hello, 1.5.5 can be downloaded now! Updating is easy as can be: Simply load the newest version from http://www.sisulizer.com/downloads.shtml and freshen your current installation. Best Markus
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Dan L Member
|
Hi, that's great, many thanks! The SlMake "add" command now works for me (creates a new SLP project including all four languages with existing resources.dlls in subfolders) Building with "Delete .resources" unchecked includes the *.resources in the output so I can get back to resx files. DanL PS during my experiment I noticed some other "quirks" : - calling "SlMake exchange trans.exe proj.slp" the package seems to include the installer but not the project (trans.exe is 7090 kB for any language). - calling "SlMake exchange trans.sle proj.slp" works OK - Exchange worked OK from the UI, except for another minor issue - I coud not select just one output language from the four languages I'd imported. - I ran the package (EXE) made from manual exchange from UI on another PC, modified some text and "returned" the SLP. Re-loading with full Sisulizer there was no "properties" item on the project tree's context menu for the EXE (for setting output options)
|
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Jaakko.Salmenius Administrator
|
Dan L wrote: - calling "SlMake exchange trans.exe proj.slp" the package seems to include the installer but not the project (trans.exe is 7090 kB for any language). Oops. You are right. The project is missing in the exchange setup package if it is made by SlMake. I fixed this to 1.5.6 Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Jaakko.Salmenius Administrator
|
Dan L wrote: - Exchange worked OK from the UI, except for another minor issue - I coud not select just one output language from the four languages I'd imported. When you run Exchange wizard click the language or languages(s) you want to include. See the screenshot. Attachment: untitled.PNG (Downloaded 70 times)
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Jaakko.Salmenius Administrator
|
Dan L wrote: - I ran the package (EXE) made from manual exchange from UI on another PC, modified some text and "returned" the SLP. Re-loading with full Sisulizer there was no "properties" item on the project tree's context menu for the EXE (for setting output options) This is because exchanged project is in the translate only mode. In that node you can only translate it. You can change it back to normal node by choosing Project | Options and unchecking Project is in translate only mode check box. Jaakko Attachment: untitled1.PNG (Downloaded 69 times)
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Dan L Member
|
Hi Jaakko, Got it - thanks again for your help! Dan L
|
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Sophie Rattier Member
|
I also want to use SlMake at the end of an automated build. My questions are: 1) In a *.bat, I write SlMake scan Lancelot_DotNet.slp >>Localization.log. Imagine the file Lancelot_DotNet does not exist, SlMake returns 1 but the error message is not logged in Localization.log. (Note that if I execute this line in a command prompt window, I can see the error message in the window.). How can I log the error in my log file? NB: see my *.bat file bellow: SlMake scan Lancelot_DotNet.slp >>Localization.log IF %ERRORLEVEL% EQU 0 ECHO Project was scanned with Success ... >>Localization.log IF %ERRORLEVEL% GEQ 1 ECHO Report Error when scanning project, error = %ERRORLEVEL% >>Localization.log 2) I try to use your option "-status:untranslated" for the "SlMake exchange" command, but it does not recognize it. This option does not exist? 3) The process we plan is the following: We create the original file Lancelot_DotNet manually. Then, we have in our automated build a *.bat file working on that file, with steps using SlMake: a) Scan: OK b) Validate original: does not exist in SlMake command? c) Exchange: OK d) Import: OK e) Validation translation: does not exist in SlMake command? f) Build: does not exist? g) Report: OK --> It would be great to have the SlMake commands: - "SlMake build”: generate all the satellite assemblies from the slp. I do not understand how people work without this option. Using Al.exe is not sufficient(?) - “SlMake ValidateTranslation” and even “SlMake ValidateOriginal”. What is your opinion towards these features? Thank you for your help.
|
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Markus.Kreisel Administrator
|
Hello Sophie, Sophie Rattier wrote: I also want to use SlMake at the end of an automated build. this is because >> Localization.log captures stdout while the errors are returned on errout. The right dos syntax is SlMake scan Lancelot_DotNet.slp 2>>Localization.log
You are right. It returns: Invalid -status option value: "untranslated". This seems to be a bug. I have to check that with the developers.
Perhaps you mean SLMake create? In SLMake the build process uses the token "create". I myself wondered about that. Perhaps SLMake should accept both tokens for build in a future release.
Good idea. Please open a new thread under the section Wish list for software localization tool for that. Chances are good that we add that in the future.
You are welcome. Best Markus
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Sophie Rattier Member
|
Thanks for the answer. Indeed, I mean SLMake create! One questions more: I have a problem with the import option. - First I exchange my file: SlMake exchange E:\Work\Sisulizer\ToBeLocalisedProjectFr.sle -lang:fr E:\Work\Sisulizer\ToBeLocalizedProject.slp: OK - Then, I modify the exchanged file and do a modification in it. Then I save it: a file ToBeLocalisedProjectFr.slp is created: OK - Finally, I want to import ToBeLocalisedProjectFr.slp in my original project: SlMake import E:\Work\Sisulizer\ToBeLocalisedProjectFr.slp -type:net -lang:fr E:\Work\ Sisulizer\ToBeLocalizedProject.slp The import is not done and I get the error OLE error 8013110EOLE. What’s wrong? NB: the import works perfectly when done in the User Interface.
|
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Markus.Kreisel Administrator
|
Hi, seems to be a bug while I wonder that you get an OLE error message.... We have to debug that. Please send E:\Work\Sisulizer\ToBeLocalisedProjectFr.slp and E:\Work\ Sisulizer\ToBeLocalizedProject.slp to support_(at)_sisulizer.fi and mention this topic in your mail. Our developers will sort that out. Best Markus
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
| ||||||||||||||
|
Jaakko.Salmenius Administrator
|
Hi Sophie, The error was caused because SlMake tried to handle ToBeLocalisedProjectFr.slp as .NET assembly file (e.g. .exe or .dll). This was done because the command line contained -type:net parameter. Importing works correctly if you remove -type:net SlMake import ToBeLocalisedProjectFr.slp -type:net -lang:fr SisulizerToBeLocalizedProject.slp -> SlMake import ToBeLocalisedProjectFr.slp -lang:fr SisulizerToBeLocalizedProject.slp When the type parameter is not given SlMake tried to detect the format. It always can detect .slp right because it is XML. However if type is given SlMake does not even try to detect the file format and just handles the file as it would be the given format. I added extra checking (1.6.18) in the case that if given and detected fiel formats do not match SlMake gives a warning. Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
|
||||||||||||||
|
Jaakko.Salmenius Administrator
|
Next build of SlMake (1.6.18) will have build command as synonym of create. In addition it will have validate command that you canuse to run validations. Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
|||||||||||||
| ||||||||||||||
| Current time is 12:35 pm | |
| Localization Tool for VB, Delphi, .NET, C#, VB.NET, XML, Online Help, HTML ... > Technical Support (You need to be registered at the forum to write) > Usage - Three simple steps to localize > SlMake usage | |
Sisulizer software localization tool - Three simple steps to localize