| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <HTML> |
| <head> |
| <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252"> |
| <TITLE></TITLE> |
| <META NAME="GENERATOR" CONTENT="StarOffice 7 (Win32)"> |
| <META NAME="AUTHOR" CONTENT="Ingo Schmidt"> |
| <META NAME="CREATED" CONTENT="20020419;13085671"> |
| <META NAME="CHANGED" CONTENT="20040204;19305088"> |
| </head> |
| <body LANG="de-DE" DIR="LTR"> |
| <P ALIGN=LEFT STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><FONT SIZE=6>Understanding |
| the lng files</FONT></FONT></P> |
| <P><BR><BR> |
| </P> |
| <P><FONT FACE="Verdana, sans-serif">Some content of the scp projects |
| has to be translated in the supported languages. This is important |
| for localized directory names, or text output of some basic scripts. |
| This translation happens with the help of the so called lng files, |
| which are automatically included into the translation process. These |
| files must have the same names as the scp files, in which the |
| translated string is needed, but its extensions are .lng. One example |
| shows this simple behaviour:</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">Module |
| gid_Module_Prg_Calc_Bin<BR>MOD_NAME_DESC ( MODULE_PRG_CALC_BIN |
| );<BR>ParentID = gid_Module_Prg_Calc;<BR>Default = YES;<BR>Minimal = |
| YES;<BR>Files = |
| (gid_File_Exe_Scalc,gid_File_Lib_Calc,gid_File_Lib_Sc,gid_File_Res_Sc);<BR>End</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">As you can see, this is the |
| definition of a module block. In the user defined installation, there |
| is a user interface for selecting the modules. This cotains a name |
| and a description of each module. And of course these have to be |
| localized. In the module definition you see the line:</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">MOD_NAME_DESC ( |
| MODULE_PRG_CALC_BIN );</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">MOD_NAME_DESC is a macro defined |
| in macros.inc. There you find:</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">#define MOD_NAME_DESC(id) |
| \<BR>ALL_LANG(Name,STR_NAME_##id); |
| \<BR>ALL_LANG(Description,STR_DESC_##id)</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">Therefore this can be resolved to |
| the two macros: </FONT> |
| </P> |
| <P STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif">ALL_LANG(Name,STR_NAME_ |
| MODULE_PRG_CALC_BIN )<BR>ALL_LANG(Description,STR_DESC_ |
| MODULE_PRG_CALC_BIN )</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif"><BR>And ALL_LANG is also defined |
| in macros.inc, but this is not important yet. Important are the two |
| strings STR_NAME_ MODULE_PRG_CALC_BIN and STR_DESC_ |
| MODULE_PRG_CALC_BIN, which exist in the scp file, in which the module |
| gid_Module_Prg_Calc_Bin is defined. For this file xyz.scp there has |
| to be also a files xyz.lng. The filenames have to be identical, |
| without the extensions. Therefore in the lng file, we find the |
| following two entries:</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">[STR_NAME_MODULE_PRG_CALC_BIN]<BR>49 |
| = "Programmodul"<BR>01 = "Program Module"<BR>07 = |
| "Ïðîãðàììíûé |
| ìîäóëü"<BR>55 = |
| "Programmodul"<BR>37 = "Módulo del programa"<BR>03 |
| = "Módulo do programa"<BR>30 = "ËåéôïõñãéêÞ |
| ìïíÜäá ðñïãñÜììáôïò"<BR>31 |
| = "Programma module"<BR>33 = "Module"<BR>34 = |
| "Módulo del programa"<BR>35 = "Ohjelmamoduuli"<BR>39 |
| = "Modulo programma"<BR>45 = "Programmodul"<BR>46 |
| = "Programmodul"<BR>48 = "Modu³ programu"<BR>81 |
| = "ÌßÛ¸Þ×ÑÓ¼Þ­°Ù"<BR>82 |
| = "ÇÁ·Î±×·¥ |
| ¸ðµâ"<BR>86 = "³ÌÐòÄ£¿é"<BR>88 |
| = "µ{¦¡¼Ò¶ô"<BR>90 |
| = "Program modülü"<BR>96 = "æÍÏÉ |
| ÈÑäÇãÌ äãØíÉ"</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">[STR_DESC_MODULE_PRG_CALC_BIN]<BR>49 |
| = "Die Anwendung %PRODUCTNAME Calc"<BR>01 = "The |
| application %PRODUCTNAME Calc"<BR>07 = "Ïðèëîæåíèå |
| %PRODUCTNAME Calc"<BR>55 = "Die Anwendung %PRODUCTNAME |
| Calc"<BR>37 = "La aplicación %PRODUCTNAME Calc"<BR>03 |
| = "A aplicação %PRODUCTNAME Calc"<BR>30 = "Ç |
| åöáñìïãÞ |
| %PRODUCTNAME Calc"<BR>31 = "De applicatie %PRODUCTNAME |
| Calc"<BR>33 = "L'application %PRODUCTNAME Calc"<BR>34 |
| = "La aplicación %PRODUCTNAME Calc"<BR>35 = |
| "Sovellus %PRODUCTNAME Calc"<BR>39 = "L'applicazione |
| %PRODUCTNAME Calc"<BR>45 = "Applikationen %PRODUCTNAME |
| Calc"<BR>46 = "Tillämpningen %PRODUCTNAME Calc"<BR>48 |
| = "Zastosowanie %PRODUCTNAME Calc"<BR>81 = "%PRODUCTNAME |
| Calc ±Ìßع°¼®Ý"<BR>82 |
| = "%PRODUCTNAME Calc ÀÀ¿ëÇÁ·Î±×·¥"<BR>86 |
| = "%PRODUCTNAME Calc Ó¦ÓóÌÐò"<BR>88 |
| = "À³¥Îµ{¦¡ |
| %PRODUCTNAME Calc"<BR>90 = "%PRODUCTNAME Calc |
| uygulamasý"<BR>96 = "ÇáÊØÈíÞ |
| %PRODUCTNAME Calc"</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">The names and descriptions are |
| translated in any supported language. Therefore the scp linker will |
| create a module definition, which looks like:</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">Module |
| gid_Module_Prg_Calc_Bin<BR>ParentID = gid_Module_Prg_Calc;<BR>Minimal |
| = YES;<BR>Default = YES;<BR>Files = (gid_File_Exe_Scalc, |
| gid_File_Lib_Calc, gid_File_Lib_Sc, |
| gid_File_Res_Sc);<BR>ConfigurationItems = ( |
| gid_Configurationitem_Soffice_Apps_Scalc5);<BR>FolderItems = |
| (gid_Folderitem_Scalc);<BR>Name (03) = "Módulo do |
| programa";<BR>Description (03) = "A aplicação |
| %PRODUCTNAME Calc";<BR>Name (07) = "Ïðîãðàììíûé |
| ìîäóëü";<BR>Description (07) |
| = "Ïðèëîæåíèå |
| %PRODUCTNAME Calc";<BR>Name (30) = "ËåéôïõñãéêÞ |
| ìïíÜäá ðñïãñÜììáôïò";<BR>Description |
| (30) = "Ç åöáñìïãÞ |
| %PRODUCTNAME Calc";<BR>Name (31) = "Programma |
| module";<BR>Description (31) = "De applicatie %PRODUCTNAME |
| Calc";<BR>Name (33) = "Module";<BR>Description (33) = |
| "L'application %PRODUCTNAME Calc";<BR>Name (34) = "Módulo |
| del programa";<BR>Description (34) = "La aplicación |
| %PRODUCTNAME Calc";<BR>Name (35) = "Ohjelmamoduuli";<BR>Description |
| (35) = "Sovellus %PRODUCTNAME Calc";<BR>Name (37) = "Módulo |
| del programa";<BR>Description (37) = "La aplicación |
| %PRODUCTNAME Calc";<BR>Name (39) = "Modulo |
| programma";<BR>Description (39) = "L'applicazione |
| %PRODUCTNAME Calc";<BR>Name (45) = "Programmodul";<BR>Description |
| (45) = "Applikationen %PRODUCTNAME Calc";<BR>Name (46) = |
| "Programmodul";<BR>Description (46) = "Tillämpningen |
| %PRODUCTNAME Calc";<BR>Name (48) = "Modu³ |
| programu";<BR>Description (48) = "Zastosowanie %PRODUCTNAME |
| Calc";<BR>Name (49) = "Programmodul";<BR>Description |
| (49) = "Die Anwendung %PRODUCTNAME Calc";<BR>Name (81) = |
| "ÌßÛ¸Þ×ÑÓ¼Þ­°Ù";<BR>Description |
| (81) = "%PRODUCTNAME Calc ±Ìßع°¼®Ý";<BR>Name |
| (82) = "ÇÁ·Î±×·¥ |
| ¸ðµâ";<BR>Description (82) = "%PRODUCTNAME |
| Calc ÀÀ¿ëÇÁ·Î±×·¥";<BR>Name |
| (86) = "³ÌÐòÄ£¿é";<BR>Description |
| (86) = "%PRODUCTNAME Calc Ó¦ÓóÌÐò";<BR>Name |
| (88) = "µ{¦¡¼Ò¶ô";<BR>Description |
| (88) = "À³¥Îµ{¦¡ |
| %PRODUCTNAME Calc";<BR>Name (90) = "Program |
| modülü";<BR>Description (90) = "%PRODUCTNAME Calc |
| uygulamasý";<BR>Name (96) = "æÍÏÉ |
| ÈÑäÇãÌ äãØíÉ";<BR>Description |
| (96) = "ÇáÊØÈíÞ |
| %PRODUCTNAME Calc";<BR>Name (99) = |
| "STR_NAME_MODULE_PRG_CALC_BIN";<BR>Description (99) = |
| "STR_DESC_MODULE_PRG_CALC_BIN";<BR>Name (01) = "Program |
| Module";<BR>Description (01) = "The application |
| %PRODUCTNAME Calc";<BR>End</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">You see, that most of the module |
| definition is translation stuff. Finally it is the scpzip that |
| creates installation sets for special languages. Therefore the final |
| result for an english installation set looks like:</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">Module |
| gid_Module_Prg_Calc_Bin<BR>ParentID = gid_Module_Prg_Calc;<BR>Name = |
| "Program Module";<BR>Description = "The application |
| %PRODUCTNAME Calc";<BR>Minimal = YES;<BR>Default = YES;<BR>Files |
| = (gid_File_Exe_Scalc, gid_File_Lib_Calc, gid_File_Lib_Sc, |
| gid_File_Res_Sc);<BR>End</FONT></P> |
| <P><FONT FACE="Verdana, sans-serif">This module definition you can |
| finally find in the setup script in the installation set next to the |
| setup.</FONT></P> |
| <P><BR><BR> |
| </P> |
| </body> |
| </HTML> |