HT-007-Excel String Table Import Embedded Wizard How-To Document How to import an Excel sheet string table into Embedded Wizard HowTo-No.: EmWi Version: Doc. Version: Date: Authors: 007 6.10 4.0 17th November 2011 Steffen Hermann, Rudolf Leberfinger, Mario Stefanutti, Manfred Schweyer Keywords: Multilingual strings, language variants, string table import, font range Introduction Usually Embedded Wizard projects contain more than one user language. Within an EmWi project the different user languages are represented and identified by different Language bricks, e.g. “German”, “French” or “Japanese”. During the creation of an EmWi object, all used resources and constants are evaluated on existing language variants, in order to realize multilingual content for GUI objects. Resources and constants can be filled with different values for each language variant. If the language is switched, the corresponding value of the language variant is loaded. It should be mentioned that an existing GUI object will not immediately change its appearance, because the language variants are checked only during the creation of an object. For those classes who should change their appearance immediately, EmWi offers the attribute Multilingual. This attribute causes EmWi to generate additional code to perform an immediate re-initialization for a new user language. The most common language variant is the string constant. Embedded Wizard expects the multilingual string constants as part of a certain Embedded Wizard unit (ewu). During the project development it is quite customary, to collect and store language variants of the required string (e.g. “Menu” or “Exit”) within an MS Excel sheet for easy exchange between the developers and the translator’s office. The following how-to document provides a simple example how to easily transfer a socalled string table, based on an Excel sheet, into an Embedded Wizard unit file. www.embedded-wizard.de Copyright TARA Systems GmbH Page 1 HT-007-Excel String Table Import String generation The basic idea of the following example is, to generate a unit file – which is nothing else than a readable text file with a certain defined syntax – from an Excel sheet, converting the sheet’s content into EmWi compatible constants thereby. The directory “projects” of this how-to package contains a small example project, named “Example.ewp”. Please double-click the ewp-file to load the project in Embedded Wizard. The project contains 9 different language identifiers and, beside the units of the class library Mosaic, the units Strings and Example. Please note, that the provided example project was created by using the Mosaic 1.0 class library. However, all described aspects of language selection and string handling are also valid for any Mosaic 2.0 based GUI application. The unit Strings contains 7 string constants with multilingual values, representing the 7 days of the week. Additionally 9 string constants for the supported languages are present in the table, but only with the value for the Default-language. The unit Strings – or the file Strings.ewu more precisely – was generated by an Excel macro. This macro is implemented in Visual Basic Script and stored in the Excel sheet. You will find the file Strings.xls included in the project directory of this how-to document. The Excel sheet consists of two pages. The first page is StringTable. It lists in row ‘1’ the language variant identifiers, in column ‘A’ the string IDs and collects all language variant values for the string IDs. At least the default language must be implemented to avoid a Chora compiler error. The default name for the generated *.ewu file is always the name of the Excel file with the extension “ewu” e.g.: Strings.xls becomes Strings.ewu. NOTE: Don’t use unit names that can conflict with standard C-libraries (string.h) because each unit generates a ‘*.c’ and ‘*.h’ module that must be compiled and linked with your project. If a string contains the new line characters “\n”, it will cause a new line in a Views::Text object without displaying the “\n”. If a backslash should be displayed in EmWi, it must be entered as “\\”. www.embedded-wizard.de Copyright TARA Systems GmbH Page 2 HT-007-Excel String Table Import Figure 1: The Excel Page ‘StringTable’ In the second page Generator, the user can adapt the value No of Languages (columns of StringTable) and the value No of Constants (rows of the StringTable). A click on the Generator button starts the conversion process. Figure 2 Generator Button for the string generation The intention of this Excel sheet is to provide a simple example, which can be used as it is, but also it can easily be copied and/or modified. It is very easy to change e.g. the formatting of the generated ewu-file or add some functionality. In general this Excel sheet is not a tool for Embedded Wizard, but a template to make the translation of strings easier and independent from an Embedded Wizard license. By this way an external translation office can do the translations totally independent from the development. Example Project The unit Example contains the class Example::Example which is able to display the 7 weekday strings. For demonstration purpose you can navigate with the cursor keys Up / Down to change the language. The result is displayed immediately on the left side. www.embedded-wizard.de Copyright TARA Systems GmbH Page 3 HT-007-Excel String Table Import Figure 3 The Example shows the 7 weekday strings in different languages. Font Range calculation If you open the Generator page of the Excel sheet Strings.xls, you will see a further button Generate Font Range. Figure 4 - Generator Button for the font range generation. The Excel macro related to this button will convert only the used characters from the page StringTable. This is very useful to save ROM/Flash resources in case of a big font range and if only the strings from the string table are used. In case of dynamically characters, e.g.: from a user input for channel names or an EPG service (electronic program guide), the font range generation makes only sense if the range of the dynamic characters is predictable. This range can be specified in the default range left to the button Generate Font Range. In these cells you can enter a Default Start and a Default End value in decimal numbers. It defines a fix range of characters that will be included in the generated font range. If you don’t want to include a default range, just leave these cells empty. Another hurdle for the automatic font range generation might be, if you have different fonts using different font ranges. In this case you have to adapt the Excel macro up to your requirements or define the different fonts in different copies of the Excel files. Generating a font range After a click on the button “Generate Font Range” an Excel macro will calculate the font range and print the output by default to the text file “FontRange.txt”. The format of this www.embedded-wizard.de Copyright TARA Systems GmbH Page 4 HT-007-Excel String Table Import file is ready to be included in an EmWi unit file (*.EWU) that contains a font resource. Another possibility is to copy and paste the range of each language from the text file into the corresponding language value of the property “Ranges” of the font in the EmWi Inspector. Figure 5 – Output of generated font range Now we want to include the generated font range into our example project: • Open the file Example.ewu in a text editor. • Search for <attr fontranges Ranges> in the file Example.ewu. • Replace the existing font range with the generated font range from FontRange.txt. • If the project is already opened, reload the unit in EmWi. To do so, double click on the warning in Embedded Wizards Log window and confirm the message box “Do you really want to reload the content of the Unit ‘Example’?” with “Yes”. • That’s it! Figure 6 – Integrated font rang in the file ‘Example.ewu’. www.embedded-wizard.de Copyright TARA Systems GmbH Page 5 HT-007-Excel String Table Import Further Information For a first start, we recommend to study the Embedded Wizard User Manual including the “Quick Tour”. The Embedded Wizard User Manual is part of the Embedded Wizard installation (please see subdirectory \EmbeddedWizard\Doc) and it is available at http://www.embedded-wizard.de within the section Documentation. To help you, to get familiar with Embedded Wizard faster, we have created several tutorials for beginners as well as advanced users including step-by-step example projects. These tutorials are part of the Embedded Wizard installation (please see subdirectory \EmbeddedWizard\Tutorial_Mosaic20) and they are also provided at http://www.embedded-wizard.de as part of the available Documentation. For specific questions related to your project, please visit the Help & Support page. You will find a collection of Frequently Asked Questions as well as information to contact our support team. www.embedded-wizard.de Copyright TARA Systems GmbH Page 6
© Copyright 2024