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
Best practice for translation of Salesforce apps - 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 May 15th, 2012 09:36 am
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 92
Status: 
Offline
I would like to use Sisulizer to translate a Salesforce app/project. Has anyone tried to do this?

I am aware of the possibility to translage Text files (could be used for Salesforce Translation Import/Export files), or XML files (XML Definition of Salesforce Objects, Lables).

Has somebody already done this? Looking for best practice

Back To Top PM Private Upload Quote Reply

 Posted: Tue May 15th, 2012 10:37 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Moderator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2012
Status: 
Offline
Can you zip sample files into a zip file and send to us. Click Private Upload to send. We will see the files and tell you how to localize them.

Ilkka



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

 Posted: Tue May 15th, 2012 10:38 am
PM Private Upload Quote Reply
Janusz Grzybek
Super Moderator


Joined: Fri Dec 1st, 2006
Location: Zabrze, Poland
Posts: 3877
Status: 
Offline
Hello,

I don't know their solution, but I've a look at this.

Best regards,
Janusz




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

 Posted: Wed May 16th, 2012 01:29 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Moderator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2012
Status: 
Offline
Thank you for the samples. SalesForge format is little bit complex. This means that if you use Sisulizer text scanner your will always have to do both pre and post processing. Sisulizer's text scanner works on filter that each line has the same structure.

It is better to implement a specific scanner for SalesForge. Can you help me little bit.

The STF comment tells that there are two sections

# - The TRANSLATED section of the file contains the text that has been translated and needs to be reviewed.
# - The UNTRANSLATED section of the file contains text that hasn't been translated. You can replace untranslated labels in the LABEL column with translated values.

How this should work. If Sisulizer translates an item that belongs to TRANSLATED section then the translated value is is written into TRANSLATION column. However when localing a value from UNTRANSLATED section then the translation is written over the existing olirignal value. Did I get this right?

------------------TRANSLATED-------------------

# KEY LABEL TRANSLATION OUT OF DATE

ButtonOrLink.Car Car Wagen -

but

------------------UNTRANSLATED-------------------

# KEY LABEL

ButtonOrLink.Car Car

->

# KEY LABEL

ButtonOrLink.Car Wagen

Files seems to be in UTF-8 without UTF-8 header. Can you verify this?

Ilkka



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

 Posted: Wed May 16th, 2012 08:00 am
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 92
Status: 
Offline
It is great that you consider implementing support for Salesforce Translation Import/Export files!

Here you can find more information about the whole import/export procedure in Salesforce:
https://na7.salesforce.com/help/doc/en/salesforce_workbench_export_import_cheatsheet.pdf

I will describe the procedure in short, with implications on the format of the files.

The user can export 3 types of translation files:
  • Source - Produces one .stf file that contains all of the text that is translatable
  • Untranslated - Produces a set of files, by language, with text that is not yet translated
  • Bilingual - Produces a set of files by language that contain all of the text that is translatable
All lines with # as first character can be dropped/removed. They are ignored in the import procedure. Every .stf file is identified by the header, which has to exist in every file:
Language code: de
Type: Untranslated

Language code: one of the >Fully supported Languages< from: https://login.salesforce.com/help/doc/en/faq_getstart_what_languages_does.htm
Type can be: Source, Untranslated or Bilingual. The type of the file determines in which format the rest of the lines is expected to be, i.e. how many coluns separated by Tab (\t) there have to be (for Bilingual the count of sections - translated/untranslated too - the headers have to exist).

Source:
# Use the Source file to translate labels for the first time.
# - Change the language code in the header from the organization's default language to the translation language. See "Supported Languages for Translatable Customizations" in the Salesforce.com online help for a list of supported languages and their associated language codes.
# - Replace the untranslated values in the LABEL column with translated values.

# Notes:
# Don't add columns to or remove columns from this file.
# Tabs (\t), new lines (\n) and carriage returns (\r) are represented by special characters in this file. These characters should be preserved in the import file to maintain formatting.
# Lines that begin with the # symbol are ignored during import.
# Salesforce translation files are exported in the UTF-8 encoding to support extended and double-byte characters. This encoding cannot be changed.

# Language: English
Language code: en_US
Type: Source

# KEY    LABEL

ButtonOrLink.Account.Billing    Billing


Untranslated:
# Use the Untranslated file to translate labels that haven't been translated.
# Replace the untranslated values in the LABEL column with translated values.

# Notes:
# Don't add columns to or remove columns from this file.
# Tabs (\t), new lines (\n) and carriage returns (\r) are represented by special characters in this file. These characters should be preserved in the import file to maintain formatting.
# Lines that begin with the # symbol are ignored during import.
# Salesforce translation files are exported in the UTF-8 encoding to support extended and double-byte characters. This encoding cannot be changed.

# Language: German
Language code: de
Type: Untranslated

# KEY    LABEL

ButtonOrLink.Account.Billing    Billing

Bilingual:
# Use the Bilingual file to review translations, edit labels that have already been translated, and add translations for labels that haven't been translated.
# - The TRANSLATED section of the file contains the text that has been translated and needs to be reviewed.
# - The UNTRANSLATED section of the file contains text that hasn't been translated. You can replace untranslated labels in the LABEL column with translated values.

# The Out of Date indicators are:
# - An asterisk (*): The label is out of date. A change was made to the default language label and the translation hasn't been updated.
# - A dash (-): The translation is current.

# Notes:
# Don't add columns to or remove columns from this file.
# Tabs (\t), new lines (\n) and carriage returns (\r) are represented by special characters in this file. These characters should be preserved in the import file to maintain formatting.
# Lines that begin with the # symbol are ignored during import.
# Salesforce translation files are exported in the UTF-8 encoding to support extended and double-byte characters. This encoding cannot be changed.

# Language: German
Language code: de
Type: Bilingual

------------------TRANSLATED-------------------

# KEY    LABEL    TRANSLATION    OUT OF DATE
CustomLabel.PTCancel    Cancel    Abbrechen    -

------------------UNTRANSLATED-----------------

# KEY    LABEL

ButtonOrLink.Account.Billing    Billing


I think Sisulizer should accept all 3 kinds of Export files (allthough in general only Source and Bilingual make sence), and as output it should generate exactly the same Type, with changed Language code in the header. For bilingual you immediately have the translated values for one language.

Following has to be done for Sisulizer Output files:
  • Source: output the translated value directly in the Label column
  • Untranslated: output the translated value directly in the Label column
  • Bilingual:
    • output translated value in the TRANSLATED Section in Translation column (setting outOfDate column to "-" - perhaps only for rows in sisulizer "completed" state). It is also possible to output translated values in the UNTRANSLATED section, while putting the translated value in the Label column
    • output untranslated values in the UNTRANSLATED section, or leave the UNTRANSLATED section empty (the header has to be present though)
The User can then take the Files generated by Sisulizer, and import them in Salesforce Web UI. It is possible to import one .stf file at a time, or many files in one zip archive. the names of the .stf files are arbitrary.

Tell me if I can provide some more information. I would be glad to beta-test the new functionality.

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 16th, 2012 08:34 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Moderator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2012
Status: 
Offline
Thank you for the detailed explanation. I have one question. Let's suppose we have a bilingual file that has both TRANSLATED and UNTRANSLATED sections. Here is your sample:
# Use the Bilingual file to review translations, edit labels that have already been translated, and add translations for labels that haven't been translated.
# - The TRANSLATED section of the file contains the text that has been translated and needs to be reviewed.
# - The UNTRANSLATED section of the file contains text that hasn't been translated. You can replace untranslated labels in the LABEL column with translated values.

# The Out of Date indicators are:
# - An asterisk (*): The label is out of date. A change was made to the default language label and the translation hasn't been updated.
# - A dash (-): The translation is current.

# Notes:
# Don't add columns to or remove columns from this file.
# Tabs (\t), new lines (\n) and carriage returns (\r) are represented by special characters in this file. These characters should be preserved in the import file to maintain formatting.
# Lines that begin with the # symbol are ignored during import.
# Salesforce translation files are exported in the UTF-8 encoding to support extended and double-byte characters. This encoding cannot be changed.

# Language: German
Language code: de
Type: Bilingual

------------------TRANSLATED-------------------

# KEY LABEL TRANSLATION OUT OF DATE
CustomLabel.PTCancel Cancel Abbrechen -

------------------UNTRANSLATED-----------------

# KEY LABEL

ButtonOrLink.Account.Billing Billing

When Sisulizer scan this file it inserts two rows into Sisulizer project. Sisulizer also importes the existing German translations. Now when a translator translates Billing to German (Rechnung?) what Sisulizer should do

1) Remove the items from UNTRANSLATED section
------------------TRANSLATED-------------------

# KEY LABEL TRANSLATION OUT OF DATE
CustomLabel.PTCancel Cancel Abbrechen -
ButtonOrLink.Account.Billing Billing Rechnung -


or

2) Keep the item in UNTRANSLATED section but replace original string with translated string.
------------------UNTRANSLATED-----------------

# KEY LABEL

ButtonOrLink.Account.Billing Rechnung

I will send you a beta a soon I get the scanner working (most likely tomorrow).

Ilkka



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

 Posted: Wed May 16th, 2012 08:49 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Moderator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2012
Status: 
Offline
If it is possible to overwrite the value in UNTRANSLATED section it would be must easier to implement and moving the item to TRANSLATED. Can Salesforge import translation from UNTRANSLATED section.

Illkka



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

 Posted: Wed May 16th, 2012 08:53 am
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 92
Status: 
Offline
hi,

I would prefer Version 2) with removing of all rows from UNTRANSLATED Section (to avoid inconsistency e.g. if the user changes the original Caption of a button in salesforce), but Version 1) is valid, as explained in the header of bilingual file:

# - The UNTRANSLATED section of the file contains text that hasn't been translated. You can replace untranslated labels in the LABEL column with translated values.

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 16th, 2012 08:54 am
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 92
Status: 
Offline
sorry, typo. Should be: would prefer Version 1), but Version 2) is valid.

Back To Top PM Private Upload Quote Reply

 Posted: Wed May 16th, 2012 11:32 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Moderator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2012
Status: 
Offline
I implemented #1 and sent you a personal message.

Ilkka



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

 Posted: Wed May 16th, 2012 09:33 pm
PM Private Upload Quote Reply
Ilkka.Salmenius
Moderator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2012
Status: 
Offline
Here is a screenshot about Salesforce source dialog's options sheet.

Minimum translation status that is accepted

Specifies the minimum translation status that is accepted to the output files. Sisulizer writes all those translations to the output file that have translation status this or higher.

Replace project translations with existing translations in file

Specifies the existing translation will be replaced with the values in the original file when scanning the file. Possible options are:

Never update existing translations

Does not bring any translation from the original file to the project.

Update only project empty translations

Bring translations from the original file to the project only if the current value in the project is empty. This is the default value.

Always update existing translations

Bring translations from the original file to the project. Overwrite the existing value if it differs from the value in the database.

 

Ilkka

Attachment: Untitled.png (Downloaded 21 times)



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

 Posted: Mon Sep 21st, 2020 07:19 am
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 92
Status: 
Offline
Hi,
regarding this super useful feature, I have a kind request:
Salesforce changed the format. Now the lower section is marked with:
------------------OUTDATED AND UNTRANSLATED-----------------


and NOT with :
------------------UNTRANSLATED-----------------

Could you change it in the next version of Sisulizer?

thank you in advance!

Back To Top PM Private Upload Quote Reply

 Posted: Mon Sep 28th, 2020 06:10 am
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 92
Status: 
Offline
Hi,

I got an email, that there was a reply to this thread, but unfortunately I don't see it.

>jaska has posted a reply to topic "Best practice for >translation of Salesforce apps". There might be other >replies however you will not receive separate notifications >for them.
>
> https://www.sisulizer.net/view_topic.php?id=2743&forum_id=3&jump_to=24502#p24502

Back To Top PM Private Upload Quote Reply

Current time is 07: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 > Best practice for translation of Salesforce apps



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