![]() |
Output File Names |
Each file type has its own rules for where Soluling creates the localized output files. In most cases, the output files are created in language subdirectories of the directory that contains the original file. For example, if your original file is C:\Samples\Sport.xml, the German output file is C:\Samples\de\Sport.xml and the Japanese one is C:\Samples\ja\Sport.xml. You can change both the output directory and the output file names.
You set them for each source on the Output sheet of the source dialog. With SoluMake, the -outpat option of the add command sets the output file pattern of a new source. The patterns apply when Soluling Desktop or SoluMake builds the localized files, including projects that you upload from Soluling Desktop to Soluling Cloud. When you upload a file directly to Soluling Cloud, you download each localized file and choose its name yourself.

The above screenshot shows the Output sheet of an XML source. An XML source can create localized files, one XML file for each language, or a multilingual XML file that contains the elements in several languages. In the screenshot, localized files are turned on, and multilingual files are turned off (the default). The combo box below each check box contains the output file pattern, which specifies the names of the output files.
The localized file pattern is <id>\<file>. A pattern contains plain characters and items. Each item is enclosed in < >. For example, <id> is a language ID, and <file> is the file name without the path. A \ means that the previous part is a subdirectory of the output directory. So <id>\<file> tells Soluling to create each output file in a language-specific directory and to use the same file name as the original file. The multilingual file pattern (currently disabled) contains the plain characters all\, so the multilingual file would be written to the all subdirectory of the output directory. The final output file name combines the output directory and the output file pattern. In the screenshot, the Finnish output file is D:\NT\Deploy\Samples\XML\Sport\fi\Sport.xml.
There are two kinds of items in patterns: file and directory items, and language items.
These items specify the directory and the file name. You can use them only in output file patterns, not in output directories.
| Item | Description |
|---|---|
<parent> |
Moves the output one directory up from the output directory.<parent>\<id>\<file> with C:\Files\Source\Sport.exe creates C:\Files\de\Sport.exe. |
<dir> |
The relative directory of the processed file to the source directory, including the last backslash. If the source is C:\Files\*.html and the file to be processed is C:\Files\SubFiles\Sport.html, the item is replaced with SubFiles\.If the file is in the source directory, the item is empty. |
<file> |
The original file name with the extension.C:\Files\Sport.exe → Sport.exe |
<body> |
The original file name without the extension.C:\Files\Sport.exe → Sport |
<ext> |
The original file extension without the period.C:\Files\Sport.exe → exe |
Note! If a pattern contains neither <dir> nor <parent>, and no output directory is set, Soluling adds <dir> to the beginning of the pattern.
These items specify the language part of the output files. You can use them both in output directories and in output file patterns.
| Item | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
<id> |
The standard language ID. For example, en is English, en-US is English (United States), zh is Simplified Chinese, and zh-Hant is Traditional Chinese. The default script of Chinese is Simplified Chinese, so the ID of Simplified Chinese is just zh, but Traditional Chinese has a script part, zh-Hant. If you want both to have a script part, add the multi- prefix: <multi-id>. See the prefixes below. |
||||||||
<leg> |
The legacy locale code, a combination of language and country. The syntax isll[-CC[-variant]]where
en is English, en-US is English (United States), zh-CN is Simplified Chinese, and zh-TW is Traditional Chinese. A legacy code has no script part, so Chinese uses the country of each script: China (CN) for Simplified and Taiwan (TW) for Traditional. |
||||||||
<und> |
As above, but an underscore separates the parts instead of a hyphen. For example, en is English, en_US is English (United States), zh_CN is Simplified Chinese, and zh_TW is Traditional Chinese. |
||||||||
<and> |
The Android language ID. The syntax isll[-rCC]where
en is English, en-rUS is English (United States), zh-rCN is Simplified Chinese, and zh-rTW is Traditional Chinese. |
||||||||
<net> |
The .NET culture code, a combination of language, script, and country. The syntax isll[-Ssss][-CC[C]] (.NET 4.0 or later)ll[-CC[C][-SSSS]] (.NET 2.0 and 3.x)where
en is English, en-US is English (United States), and zh-Hans is Simplified Chinese. With .NET 2.0 or 3.x, Simplified Chinese is zh-CHS. |
||||||||
<win> |
The Windows language abbreviation. It contains two or three upper case characters. A neutral language (no country) uses the first two characters. For example, EN is English, ENU is English (United States), CH is Simplified Chinese, and CHT is Traditional Chinese. |
||||||||
<mfc> |
The MFC language code. It is the three-character Windows language abbreviation. For example, ENU is English (United States), ENG is English (United Kingdom), and CHS is Simplified Chinese. |
||||||||
<nls> |
The Windows language ID as a decimal number that contains the primary and sub language IDs. For example, 1033 is English (United States). |
||||||||
<hex> |
As above, but as a four-digit hexadecimal value. For example, 0409 is English (United States). |
||||||||
<eng> |
The English name of the language. For example, English (United States). |
You can add the following prefixes to the id, leg, and und items.
| Prefix | Description | Items |
|---|---|---|
multi- |
The languages that can use more than one script always have a script part. For example, Simplified Chinese is zh-Hans instead of zh. |
<id> |
script- |
All languages have a script part. For example, English is en-Latn instead of en. |
<id> |
lower- |
The ID uses only lower case characters. | <id>, <leg>, <und> |
upper- |
The ID uses only upper case characters. | <id>, <leg>, <und> |
A prefix cannot be used alone but always comes before an item code. For example, <lower-id> is like <id>, but all the parts are lower case (e.g., en-us instead of en-US).
You can combine any number of plain characters and items. The following table shows the output files of the original file C:\Sport.exe with different patterns and languages.
| Pattern | Original file | German file | German (Germany) file | Japanese file | Simplified Chinese file | Traditional Chinese file | Notes |
|---|---|---|---|---|---|---|---|
| <id>\<file> | C:\Sport.exe | C:\de\Sport.exe | C:\de-DE\Sport.exe | C:\ja\Sport.exe | C:\zh\Sport.exe | C:\zh-Hant\Sport.exe | The default pattern in most cases. |
| <multi-id>\<file> | C:\Sport.exe | C:\de\Sport.exe | C:\de-DE\Sport.exe | C:\ja\Sport.exe | C:\zh-Hans\Sport.exe | C:\zh-Hant\Sport.exe | |
| <script-id>\<file> | C:\Sport.exe | C:\de-Latn\Sport.exe | C:\de-Latn-DE\Sport.exe | C:\ja-Jpan\Sport.exe | C:\zh-Hans\Sport.exe | C:\zh-Hant\Sport.exe | |
| <upper-id>\<file> | C:\Sport.exe | C:\DE\Sport.exe | C:\DE-DE\Sport.exe | C:\JA\Sport.exe | C:\ZH\Sport.exe | C:\ZH-HANT\Sport.exe | The ID is all upper case. |
| <lower-id>\<file> | C:\Sport.exe | C:\de\Sport.exe | C:\de-de\Sport.exe | C:\ja\Sport.exe | C:\zh\Sport.exe | C:\zh-hant\Sport.exe | The ID is all lower case. |
| <leg>\<file> | C:\Sport.exe | C:\de\Sport.exe | C:\de-DE\Sport.exe | C:\ja\Sport.exe | C:\zh-CN\Sport.exe | C:\zh-TW\Sport.exe | |
| <body>_<id>.<ext> | C:\Sport.exe | C:\Sport_de.exe | C:\Sport_de-DE.exe | C:\Sport_ja.exe | C:\Sport_zh.exe | C:\Sport_zh-Hant.exe | |
| <body>_<id>.<ext> | C:\Sport_en.exe | C:\Sport_de.exe | C:\Sport_de-DE.exe | C:\Sport_ja.exe | C:\Sport_zh.exe | C:\Sport_zh-Hant.exe | The file name ends with the original language ID, so Soluling replaces it with the target language ID. This happens when the output file is in the same directory as the original file and the pattern uses the same separator (_ or .) before the ID. |
| <body>.<id> | C:\Sport.exe | C:\Sport.de | C:\Sport.de-DE | C:\Sport.ja | C:\Sport.zh | C:\Sport.zh-Hant | Delphi resource DLL. |
| <id>\<body>.<win> | C:\Sport.exe | C:\de\Sport.DE | C:\de-DE\Sport.DEU | C:\ja\Sport.JP | C:\zh\Sport.CH | C:\zh-Hant\Sport.CHT | Legacy Delphi resource DLL. |
| all\<file> | C:\Sport.exe | C:\all\Sport.exe | C:\all\Sport.exe | C:\all\Sport.exe | C:\all\Sport.exe | C:\all\Sport.exe | The pattern has no language item, so the output file is the same for all languages. Use a pattern like this only with multilingual output files. |
| <net>\<body>.resources.dll | C:\Sport.exe | C:\de\Sport.resources.dll | C:\de-DE\Sport.resources.dll | C:\ja\Sport.resources.dll | C:\zh-Hans\Sport.resources.dll | C:\zh-Hant\Sport.resources.dll | .NET satellite assembly file. |