Support forum of the software localization tool Sisulizer


.NET, Delphi, ... - Sisulizer Localization Tool Support Home

Get in contact with the makers of Sisulizer.
Our forum is open for all questions around Sisulizer from customers and prospects.
Don't hesitate to register and ask. The Sisulizer team will answer ASAP.

Search     Help Home Sisulizer Website Download
Search by username
Not logged in - Login | Register 

 Moderated by: Sisusupport, Renate.Reinartz, Markus.Kreisel, Ilkka.Salmenius
New Topic Reply Printer Friendly
SLMAKE: Change <source name="..."> attribut in SLP file? - Usage - Three simple steps to localize - Technical Support (You need to be registered at the forum to write) - .NET, Delphi, ... - Sisulizer Localization Tool Support
AuthorPost
 Posted: Tue Dec 17th, 2019 01:02 pm
PM Private Upload Quote Reply
TiGü
Member
 

Joined: Tue Dec 17th, 2019
Location:  
Posts: 7
Status: 
Offline
Hello,

I need some advice. I've read through various support sites from sisulizer and also looked through several threads here in the forum, but I haven't found a solution yet.

We have a handful of Delphi applications and DLLs.
These projects have been built in the Delphi IDE and translated with the Sisulizer program (GUI) from German to English.

I am currently setting up a build server with Jenkins.
You know, Continuous Integration and all the funny stuff...;)

I experimented with the slmake.exe tool and encountered a problem.

Normally the Delphi projects were built relative to their DPR/DPROJ file.

For example (root is just a placeholder):
Delphi project:
"root/develop/_XE5/ABC.dproj"

Output Path (where the EXE/DLL is built):
"root/develop/Ausgabe"

SLP file location:
"root/develop/ABC.slp"


So, in the SLP file, we find something like this:

<?xml version="1.0" encoding="utf-8"?>
<document created="20120427180644" version="4.0.374" date="20191210125800" scan="1167" scanned="20191210124126" useexcludechars="1" excludechars="-+0123456789€$£=_,.;:<>()[]{}/?!*#_(at)_%&¤~^|'"">
<summary author="World Greatest Software Development Team"/>
<lang id="en"/>
<lang id="de"/>
<source class="TDelphiSource" name="ausgabeABC.exe" original="de-DE" encoding="utf-8" outputitems="[oiResource]" date="20191210114114" inputdir=".." options="[voSetBiDiMode,voMirrorForms,voScanOnlyForms,voScanFormsHierarchically]" widestringusage="wsYes" projectfile=".._XE5ABC.dpr">
...


In the build process I use MSBUILD to change the output path of the Delphi projects using the parameter "/p:DCC_ExeOutput=...", so that the EXE/DLL end up in a different output directory and no longer in "root/develop/Ausgabe".

The problem is that SLMAKE for creating the language files for German and English (.DE and .EN) refers to the relative paths in the attributes name="ausgabe/ABC.exe" and projectfile=".._XE5/ABC.dpr".
The folder "Ausgabe" does not exist on the build server!

Similar to MSBUILD with p:DCC_ExeOutput, can I give SLMAKE a different value for "name=..."?

This is my CMD file:
SET SISULIZER_DIR=C:Program Files (x86)Sisulizer 4
SET SIS_INPUT_DIR=D:JenkinsworkspaceIPM Command Release Win64IPMdevelop
SET SIS_INPUT_PROJECT="%SIS_INPUT_DIR%IPM.slp"
SET SIS_OUTPUT_DIR=D:JenkinsworkspaceIPM Command Release Win64bin

CALL "%SISULIZER_DIR%slmake.exe" create %SIS_INPUT_PROJECT% -lang:en;de -w -e -output:"%SIS_OUTPUT_DIR%"

PAUSE


This is the output of SLMAKE:

C:UsersBuild>D:JenkinsscriptsTranslate.cmd

C:UsersBuild>SET SISULIZER_DIR=C:Program Files (x86)Sisulizer 4

C:UsersBuild>SET SIS_INPUT_DIR=D:JenkinsworkspaceABC Command Release Win64ABCdevelop

C:UsersBuild>SET SIS_INPUT_PROJECT="D:JenkinsworkspaceABC Command Release Win64ABCdevelopABC.slp"

C:UsersBuild>SET SIS_OUTPUT_DIR=D:JenkinsworkspaceABC Command Release Win64bin

C:UsersBuild>CALL "C:Program Files (x86)Sisulizer 4slmake.exe" create "D:JenkinsworkspaceABC Command Release Win64ABCdevelopABC.slp" -lang:en;de -w -e -output:"D:JenkinsworkspaceABC Command Release Win64bin"
SlMake version 4.0.374 Copyrights (c) 2005-2018 Sisulizer

Loading file "D:JenkinsworkspaceABC Command Release Win64ABCdevelopABC.slp"

Building "D:JenkinsworkspaceABC Command Release Win64binABC.EN", the English resource file of "D:JenkinsworkspaceABC Command Release Win64ABCdevelopausgabeABC.exe"
"D:JenkinsworkspaceABC Command Release Win64ABCdevelopausgabeABC.exe" file does not exist.
Building "D:JenkinsworkspaceABC Command Release Win64binABC.DE", the German resource file of "D:JenkinsworkspaceABC Command Release Win64ABCdevelopausgabeABC.exe"
"D:JenkinsworkspaceABC Command Release Win64ABCdevelopausgabeABC.exe" file does not exist.
C:UsersBuild>PAUSE
Drücken Sie eine beliebige Taste . . .

Last edited on Tue Dec 17th, 2019 03:13 pm by TiGü

Back To Top PM Private Upload Quote Reply

 Posted: Tue Dec 17th, 2019 01:10 pm
PM Private Upload Quote Reply
TiGü
Member
 

Joined: Tue Dec 17th, 2019
Location:  
Posts: 7
Status: 
Offline
Ähm? Board Software eat all Backslashes??? WTF?

Back To Top PM Private Upload Quote Reply

 Posted: Tue Dec 17th, 2019 01:12 pm
PM Private Upload Quote Reply
TiGü
Member
 

Joined: Tue Dec 17th, 2019
Location:  
Posts: 7
Status: 
Offline
For readability, I've changed all backslashes to slashes

<?xml version="1.0" encoding="utf-8"?>
<document created="20120427180644" version="4.0.374" date="20191210125800" scan="1167" scanned="20191210124126" useexcludechars="1" excludechars="-+0123456789€$£=_,.;:<>()[]{}//?!*#_(at)_%&¤~^|'"">
<summary author="World Greatest Software Development Team"/>
<lang id="en"/>
<lang id="de"/>
<source class="TDelphiSource" name="ausgabe/ABC.exe" original="de-DE" encoding="utf-8" outputitems="[oiResource]" date="20191210114114" inputdir=".." options="[voSetBiDiMode,voMirrorForms,voScanOnlyForms,voScanFormsHierarchically]" widestringusage="wsYes" projectfile="../_XE5/ABC.dpr">
...


This is my CMD file:

SET SISULIZER_DIR=C:/Program Files (x86)/Sisulizer 4
SET SIS_INPUT_DIR=D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop
SET SIS_INPUT_PROJECT="%SIS_INPUT_DIR%/ABC.slp"
SET SIS_OUTPUT_DIR=D:/Jenkins/workspace/ABC Command Release Win64/bin

CALL "%SISULIZER_DIR%/slmake.exe" create %SIS_INPUT_PROJECT% -lang:en;de -w -e -output:"%SIS_OUTPUT_DIR%"

PAUSE


This is the output of SLMAKE:

C:/Users/Build>D:/Jenkins/scripts/Translate.cmd

C:/Users/Build>SET SISULIZER_DIR=C:/Program Files (x86)/Sisulizer 4

C:/Users/Build>SET SIS_INPUT_DIR=D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop

C:/Users/Build>SET SIS_INPUT_PROJECT="D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop/ABC.slp"

C:/Users/Build>SET SIS_OUTPUT_DIR=D:/Jenkins/workspace/ABC Command Release Win64/bin

C:/Users/Build>CALL "C:/Program Files (x86)/Sisulizer 4/slmake.exe" create "D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop/ABC.slp" -lang:en;de -w -e -output:"D:/Jenkins/workspace/ABC Command Release Win64/bin"
SlMake version 4.0.374 Copyrights (c) 2005-2018 Sisulizer

Loading file "D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop/ABC.slp"

Building "D:/Jenkins/workspace/ABC Command Release Win64/bin/ABC.EN", the English resource file of "D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop/ausgabe/ABC.exe"
"D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop/ausgabe/ABC.exe" file does not exist.
Building "D:/Jenkins/workspace/ABC Command Release Win64/bin/ABC.DE", the German resource file of "D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop/ausgabe/ABC.exe"
"D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop/ausgabe/ABC.exe" file does not exist.
C:/Users/Build>PAUSE
Drücken Sie eine beliebige Taste . . .

Last edited on Tue Dec 17th, 2019 03:27 pm by TiGü

Back To Top PM Private Upload Quote Reply

 Posted: Wed Dec 18th, 2019 10:57 am
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3322
Status: 
Offline
Sisulizer uses the original binaries as a blue print for the localized target. It seems your .slp doesn't point to some valid binary (ABC.EXE). Open the .slp in the GUI and check the path under Project - Edit Source - <your source> - File. Correct it and save the .slp. You only need to do this once.
If you need to post code or paths you can use code tags
Inside these tags it is no problem to have <b>tags</b> and backslashes. If you want to encode only one single \ you can write outside the code tags \.

Code tags can be inserted with the icon in the little edit bar with {}.
Markus
P.S. Please don't use rude or impolite wording. We are a happy little community.




____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed Dec 18th, 2019 12:11 pm
PM Private Upload Quote Reply
TiGü
Member
 

Joined: Tue Dec 17th, 2019
Location:  
Posts: 7
Status: 
Offline
Hi Markus,

thank you for your reply.


Maybe you just read the last part with the console output.
I know and understand that the original SLP project file points to a path that does not exist on the build server.

I don't want to have to handle every single SLP project file just to customize the path.

Therefore, my question is can I tell the SLMAKE tool with a special command line parameter that it should not search for the EXE in directory A, but in directory B?

You can do something similar with MSBUILD and the Delphi output directory definition of the DPROJ file (= XML). I'm sure/hope you know that.

Why I wanna do this?
Because the directory structure on a normal developer PC and the build server are different.

I hope I've been able to clarify my intentions.
Otherwise we can also write in our native language (via personal message?).

PS: That's why I was so confused, all white boxes with green font in the previous post are inserted with the [ code] [ /code] tag (whitespaces are intentional).
I will try it in a extra post. Maybe it has something to do with editing the post.

PPS: Sorry, I apologize. I didn't mean to offend anyone.
I am also a happy little developer who was only surprised.

Back To Top PM Private Upload Quote Reply

 Posted: Wed Dec 18th, 2019 12:15 pm
PM Private Upload Quote Reply
TiGü
Member
 

Joined: Tue Dec 17th, 2019
Location:  
Posts: 7
Status: 
Offline
just a test for (back) slashes:



A bunch of slashes://////
A bunch of back slashes:


EDIT
Okay, it's a bug in the board software.
Everytime I hit the "Preview" button or editing the post, it eat one or more of the backslashes.
I use Google Chrome 79.0.3945.79.

Last edited on Wed Dec 18th, 2019 12:17 pm by TiGü

Back To Top PM Private Upload Quote Reply

 Posted: Wed Dec 18th, 2019 01:33 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3322
Status: 
Offline
Hi,

There no such switch :-(

Some customer create a new project first, then import from old, then build the new (but translated by import) slp. A clean way.

Or you could use search and replace within the .slp. It has a simple XML structure. A bit hacky but easy and good working.

The easiest way is to have the same structure at pc and server and then use relative paths. This way the drive letters and the depth of the paths could differ while the tail of the path is enough for the match...

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed Dec 18th, 2019 02:03 pm
PM Private Upload Quote Reply
TiGü
Member
 

Joined: Tue Dec 17th, 2019
Location:  
Posts: 7
Status: 
Offline
> Some customer create a new project first, then import from old, then build the new (but translated by import) slp. A clean way.

Can I do that via SLMAKE and the command line? Have you some example lines?


> There no such switch :-(

Then I would like to make an official Feature Request!


> The easiest way is to have the same structure at pc and server and then use relative paths.

It would be better if the build server/process/script could tell the tools what to do instead of the tools limiting it.

Last edited on Wed Dec 18th, 2019 02:07 pm by TiGü

Back To Top PM Private Upload Quote Reply

 Posted: Wed Dec 18th, 2019 03:00 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3322
Status: 
Offline
Here is a lot of info about SLMake:

https://www.the-localization-tool.com/using-of-slmake-tool-general-information/

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed Dec 18th, 2019 03:12 pm
PM Private Upload Quote Reply
TiGü
Member
 

Joined: Tue Dec 17th, 2019
Location:  
Posts: 7
Status: 
Offline
Are you think about SlMake import?

Something like:
SlMake import "D:/Jenkins/workspace/ABC Command Release Win64/ABC/develop/ABC.slp" "JustAnotherPath/ABC2.slp"

I will test it, but I cannot see, how it would change and affect the <source name"..."> attribute.

Back To Top PM Private Upload Quote Reply

 Posted: Wed Dec 18th, 2019 04:00 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3322
Status: 
Offline
You first have to add a source in a new slp... There you can give the source path. Then import with import...

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

Current time is 08:44 am  
.NET, Delphi, ... - Sisulizer Localization Tool Support > Technical Support (You need to be registered at the forum to write) > Usage - Three simple steps to localize > SLMAKE: Change <source name="..."> attribut in SLP file?



WowUltra modified by Sisulizer Copyright © 2007-18 by Jim Hale - Based on WowBB Copyright © 2003-2006 Aycan Gulez

Impress - Privacy statement

Sisulizer software localization tool - Three simple steps to localize