RobotStudio event

TPSResourceManager and Chinese

I have a FlexPendant application written in English that is shipping to China in a couple of weeks. I need the FlexPendant application to swap between English and Chinese. The TPSResourceManager is the tool to use for multi-language support, but it is unclear if this tool will work with the Chinese language. I see that I need to build a resource file named "strings.resx" but how do I get the Chinese characters into the resource table?

Has anyone had any experience with the TPSResourceManager and the Chinese language? Any tips would be greatly appreciated. Thanks, Debbie :o)

Comments

  • Hi

    It is possible to localize FlexPendant SDK applications to any of the languages supported in IRC5. There are several such applications running in Chinese already.

    You need a way to enter the Chinese signs into the resource file. The normal procedure would be to let the translator enter the texts directly in the resource file. If you know how to translate the texts yourself, there should be a language setting in Windows, which enable you to use the western keyboard, write the chinese word with western characters and get a list of chinese signs to choose from. I have not done it myself, but that is how they work in Shanghai. This is the list of languages supported in IRC 5 (and by RAB FlexPendant applications):

    ?         English

    ?         French <?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    ?         German

    ?         Spanish

    ?         Italian

    ?         Chinese (simplified Chinese, mainland Chinese) 1) 2)

    ?         Portuguese (Brazilian Portuguese) 1)

    ?         Dutch  1)

    ?         Swedish  1)

    ?         Danish 1)

    ?         Czech  1)

    ?         Finnish  1)

    ?         Korean  1) 2)

    ?         Japanese 1) 2)

    Notes:
    1) The language is only supported in the controller and Flex Pendant - it is not supported in RobotStudio Online.
    2) The language support for Asian languages (Chinese, Korean, Japanese) has some specific limitations:
        - TPWrite, TPRead, and TPPrint do not work in Asian languages - use English text.
        - Printing error text from RAPID (instruction ErrWrite) does not work in Asian languages - use English text.

    Best regards,

    Ingela Brorsson
    Software Engineer
    ABB Robotics, Sweden
  • Hi Ingela,

    Thanks for your response. I need to have my application converted to Chinese by next week so it is good to know the TpsResourceManager works with the Chinese language.

    I worked on a real controller today and was unable to get my application to switch to Chinese. I am using RobotApplicationBuilder 5.07.

    • The name of my application is TpsViewRimrock.
    • I created the resource file "strings.resx" and built the English version of the table. GetString method works from my application. If I change any value in strings.resx the change will show up on the screen.
    • I created an empty Smart Device Application inside the project solution named TpsViewLocalizedText.
    • I then made a folder labeled "ch" for my Chinese resource file. Is "ch" the proper localization culture short form name? Should I have used "zh" or "prc" instead?
    • I created another resource file name strings.ch.resx and placed it in the TpsViewLocalizedText "ch" folder.
    • I then ran cfresgen.exe strings.ch.resx TpsViewLocalizedText.strings.ch.resources. Should I have use the namespace TpsViewLocalizedText or TpsViewRimrock?
    • I then made a satellite assembly by typing in al /t:lib /embed:TpsViewLocalizedText.strings.ch.resources /culture en /out:TpsViewLocalizedText.resources.dll. Again, should I have used TpsViewLocalizedText or TpsViewRimrock for the Namspace and AssemblyName?
    • I put the file TpsViewLocalizedText.resources.dll in the language/ch/tps directory on the Robot Controller.
    • When I changed the language of the controller to Chinese my screens did not update.

    At this point I'm guessing that I am using the wrong culture abbreviation or should have typed in TpsViewRimrock instead of TpsViewLocalizedText when I ran the CFResGen tool or built the satellite assembly..........Thanks, Debbie :o)

  • Hi Debbie

    The namespace used for the Text project must be the same as used in the TpsView attribute (same as for the main project), eg:

    [assembly: TpsView("RIMROCK_TXT_CAPTION", "RIMROCK32.gif", "RIMROCK16.gif", "TpsViewRimrock.dll", "TpsViewRimrock.TpsViewRimrock", StartPanelLocation.Left, TpsViewType.Static, "TpsViewLocalizedText.dll")]

    The culture name for Chinese is zh (must be  strings.zh.resx and zh as folder name in the project and on the controller.

    I hope that chapter 10 in the the new manual for RAB 5.08 "Localizing a FlexPendant application" will make life a little easier for all of you who try to add multi language support to FlexPendant applications. ABB internal users can download it from inside.abb.com >Business guide > Product Guide > Robotics > Software Products > Robot Application Builder > Downloads tab > Manual: Application manual - Robot Application Builder

     

    Best regards,

    Ingela Brorsson
    Software Engineer
    ABB Robotics, Sweden
  • Hi Ingela,

    Thanks for your assistance with this project. After a considerable amount of time, I was able to get my screens to switch between English and Chinese. However, I wasn't able to accomplish the translation by making a seperate project within my solution to hold the text resources. I just created a seperate 'zh' folder inside my main application. I've attached a Microsoft Word document that describes the steps I took to localize my application. Hopefully, these notes will help the next person that tries to do this........Debbie image

     

    2007-02-19_174959_How_to_Localize_a_FlexPendant_application. zip

  • Hi Debbie,

    Thanks a lot for the valuable feedback in the enclosed file!

    I will soon look into the localization issue and check that we do not give the wrong information in the manual.

     

    Best regards,

    Ingela Brorsson
    Software Engineer
    ABB Robotics, Sweden