<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Language Swap System Archives - Caliach</title>
	<atom:link href="https://caliach.com/article-categories/language-swap-system/feed/" rel="self" type="application/rss+xml" />
	<link>https://caliach.com/article-categories/language-swap-system/</link>
	<description>Manufacturing Software Solutions</description>
	<lastBuildDate>Tue, 12 Sep 2023 07:22:34 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://caliach.com/wp-content/uploads/2022/11/fav-150x150.png</url>
	<title>Language Swap System Archives - Caliach</title>
	<link>https://caliach.com/article-categories/language-swap-system/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Language Swap System Topic Contents</title>
		<link>https://caliach.com/knowledge-base/index-23/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 15:30:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/index-23/</guid>

					<description><![CDATA[<p>Language Swap System Topic Contents</p>
<p>The post <a href="https://caliach.com/knowledge-base/index-23/">Language Swap System Topic Contents</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Language Swap System Topic Contents</h2>
<p id="navline"><img decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a></p>
<p>Most topics are related directly to functional windows, menus or toolbars. Click on the topic to view details.</p>
<ul>
<li><a href="langswapintro">&#8211; Introduction to the Language Swap System</a></li>
<li><a href="wlangmaintfile">Language Swap Maintenance by File</a></li>
<li><a href="wlangmaintrec">Language Swap Maintenance by Record</a></li>
<li><a href="wlangmaintutilities">Language Swap System Utilities</a></li>
</ul>
<p id="navline"><img decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a></p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/index-23/">Language Swap System Topic Contents</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Language Swap System: &#8211; Introduction to the Language Swap System</title>
		<link>https://caliach.com/knowledge-base/langswapintro/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 16:30:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/langswapintro/</guid>

					<description><![CDATA[<p>Language Swap System: - Introduction to the Language Swap System</p>
<p>The post <a href="https://caliach.com/knowledge-base/langswapintro/">Language Swap System: &#8211; Introduction to the Language Swap System</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>&#8211; Introduction to the Language Swap System</h2>
<p id="navline"><img decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Language Swap System</a> &gt; &#8211; Introduction to the Language Swap System</p>
<p>The Language Swap System allows you to translate your textual data into as many languages as you wish to support for, output on reports and other output to satisfy a multi-lingual community.</p>
<p>For example, you may want to report your Financial Statements in 2 languages other than your base language in which you work normally. This may be to satisfy outside investors or local tax authorities or regulators. Or you may have many customers that speak another language and want to have their quotation line items in their language.</p>
<p>The system does not translate texts into another language for you automatically. You have to decide what languages you are going to support and what texts you wish to translate. The system provides you with a way of storing your translated texts and then automatically swapping those translated texts for the normal base language texts when requested and appropriate.</p>
<p>The Language Swap system is highly flexible but as ideas, these are circumstances where it can be useful:</p>
<ul>
<li>We have customers that do not speak our business language and we would like to have documents produced in their language.</li>
<li>Some of our suppliers need to see paperwork in their language to minimise mistakes.</li>
<li>Marketing activities are in more than one language.</li>
<li>Our shopfloor workforce is not fluent in our business language and we would like work orders in our <i>shopfloor</i> language.</li>
<li>Our investors/auditors/regulators need to see our accounts in a language other than our business language</li>
<li>We want to send standard letters and emails to people that are fluent in a different language.</li>
<li>We are a truly bilingual business and would like to fully exploit this asset in our dealings with our workforce, customers and suppliers.</li>
<li>We maintain a warehouse in China, can we email picking lists to them in Chinese?</li>
<li>We would like to have texts different on certain occasions but there is only one place to put texts.</li>
<li>Our stores staff can not reliably understand our part descriptions on a stocktake because they are immigrants from Kazakhstan endlessly make mistakes.</li>
</ul>
<h4>How Language Swap Works</h4>
<p>The Language Swap system works by maintaining a separate database of text translations. These translated texts are linked to <b>key field values</b> in your data, such as specific part numbers, to a particular <b>language</b> and to a particular <b>field</b> of data. Only character type data can be translated and then only from fields that are free-entry and not associated with codes, relationships, or other fields that would corrupt the logical integrity of the system.</p>
<p>The database of Swap Language translated texts is maintained outside your normal datafile in the same way as the optional Keyword and Linked Files databases are. If you choose to switch the Language Swap system <b>on</b>, you will create or open a datafile with the same name as your main datafile with the file suffix <b>.LSW</b> rather than .DF1 (typically they are in lower-case). This file exclusively contains the text translation single file ALTFILE, in many ways similar to the Keyword system datafile.</p>
<p>You can control the translation languages and the extent to which translations are available in the Language Swap system.</p>
<p>It is very simple to get the Language Swap System operational. These are the steps:</p>
<ol>
<li>Open the <a href="../system/wmcdedit">Company Details Maintenance</a> window using <b>File &#8212; System Manager &#8212; Company Details</b> menu path.</li>
<li>Select the <b>Localisation</b> tab pane.</li>
<li>Make sure that the <b><i>Base language code and name</i></b> fields are correct. Languages are represented by two lower-case characters and we recommend that you use the ISO 639-1 standard (http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) as you will then be consistent with external translators such as Google Translate. For example, for English enter <b>en</b> and <b>English</b>.</li>
<li>You then enter your swap languages as code and name pairs separated by a comma in the <b><i>Language Swap languages</i></b> field. You separate each language pair with a semicolon. So, for example, if you want French, Thai and Korean you would type <b>fr,French;th,Thai;ko,Korean</b>. The order you place them in the field will determine the order they will be listed in any Swap Language lists. Do not include your base language.</li>
<li>With at least one swap language pair entered, the Language Swap database will be opened or created for the first time, and a Language Swap list of your languages will appear on the main toolbar just ahead of the Report Destination list for printing.</li>
</ol>
<p>The following illustrates the key visual parts if the Language Swap system:
</p>
<p><img fetchpriority="high" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/langswapsetup.jpg" width="636" height="275" alt="Language Swap Setup illustration."/></p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-20.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> You can prevent Users or Groups of users from using the Language Swap System using the system <a href="../prefs/woptionslist">option</a> <b>optLangSwapBlockUsers</b>. Language Swap blocked users and groups. Language code=User,Group list;&#8230; list of languages and users or groups blocked from using them. Applies also to Administrators. If no language code is set block applies to all languages. e.g. fr=AA,GM;th=AA,Sales. The block on language use for a user does not stop the Language Swap system functioning. It only means that the User cannot select a swap language in the toolbar list. Indeed if the user is blocked from all languages the Language Swap list will not be present in the toolbar. However, Language Swap is still active and will translate automatically when Customers, Suppliers or Marketing records have a language set for them.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/note40-22.jpg" width="24" height="24" alt="Note"/><strong> NOTE:</strong> Changing the languages after you have created translations will not effect any data. Changing the order will simply change the listing order. A language is only valid if both the code and name are entered. Removing a language <b>will not</b> delete any translated texts you have created in the past &#8211; they simply will not be used because you will not be able to select the language in the toolbar list. However, you also will not be able to add any new translations for a missing language.</p>
<h4>Language Swapping</h4>
<p>In the Language Swap list in the toolbar, selecting your local base language turns off any text swapping. Choosing a non-base language will lead to the Language Swap system becoming active in replacing your standard texts with text translations you have made, where available, in the language you have chosen in the toolbar list.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/langswapexample1.jpg" width="707" height="412" alt="Example of Language Swap balance sheet in Korean"/></p>
<p>Essentially language text swaps take place in two places:</p>
<ul>
<li>Report output.</li>
<li>External documents (PO, SO, Jobs, Invoices) texts within the document data when the documents are created or line items added.</li>
</ul>
<p>Besides the Language code settings in <a href="../system/wmcdedit">Company Details Maintenance</a>, you can set a language code for Marketing Records, Customers and Suppliers. If the language code in these matches a Swap Language code in your settings the following behaviour will exploit translations you have made:</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Data</p>
</th>
<th valign="top">
<p align="left">Activity</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Marketing</p>
</td>
<td valign="top">
<p align="left">The following activities are affected by the Marketing record language setting:</p>
<ul>
<li>Letter References and Texts will be translated into the language of the Marketing record when letters are printed or emailed. When you select a standard letter it will be language swapped for you and you can modify it&#8217;s language text. If there is no specific language set, then the Language Swap toolbar choice will apply. Also the Address, Contact and Country will be translated if appropriate.</li>
<li>When Customers or Suppliers are created from Marketing records they inherit the language setting.</li>
</ul>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Customers</p>
</td>
<td valign="top">
<p align="left">The following activities are affected by the Customer language setting:</p>
<ul>
<li>Letter References and Texts will be translated into the language of the Customers when letters are printed or emailed. When you select a standard letter it will be language swapped for you and you can modify it&#8217;s language text. If there is no specific language set, then the Language Swap toolbar choice will apply. Also the Address, Contact and Country will be translated if appropriate.</li>
<li>When creating Customer Parts data from parts will be translated where available for the Customer&#8217;s language, or the Swap Language if the customer language is blank.</li>
<li>Texts translated to the Customer language will be transferred to a Quotation, Sales Order, Estimate, Job and Invoice. This is regardless of the Language Swap setting in the toolbar if the Customer has a Language set. If it is not then when the document is created the Language Swap language will apply.</li>
<li>On the whole, customer reports translate to the Customer&#8217;s language. If the customer&#8217;s language is not set, then the Language Swap will apply.</li>
</ul>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Suppliers</p>
</td>
<td valign="top">
<p align="left">The following activities are affected by the Supplier language setting:</p>
<ul>
<li>Letter References and Texts will be translated into the language of the Supplier when letters are printed or emailed. When you select a standard letter it will be language swapped for you and you can modify it&#8217;s language text. If there is no specific language set, then the Language Swap toolbar choice will apply. Also the Address, Contact and Country will be translated if appropriate.</li>
<li>When creating Purchase Parts data from parts will be translated where available for the Supplier&#8217;s language, or the Swap Language if the supplier language is blank.</li>
<li>Texts translated to the Supplier language will be transferred to a RFQ or Purchase Order. This is regardless of the Language Swap setting in the toolbar if the Supplier has a Language set. If it is not then when the document is created the Language Swap language will apply.</li>
<li>On the whole, supplier reports translate to the Supplier&#8217;s language. If the supplier&#8217;s language is not set, then the Language Swap will apply.</li>
</ul>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/note40-22.jpg" width="24" height="24" alt="Note"/><strong> NOTE:</strong> Contacts and Addresses</p>
</td>
<td valign="top">
<p align="left">In general it is not particularly useful to translate Addresses and Contacts as your postal/delivery system is unlikely to read a foreign language. But there are circumstances where some data could be usefully swapped into another language. The following rules apply to Language Swap of Contact, Address (and Country) texts:</p>
<ul>
<li>When printing Standard Letters, Envelopes and Labels the Marketing, Customer or Supplier language will apply if there is one. If not, the selected Language Swap language will apply</li>
<li>When addresses are shown on windows they are never language swapped.</li>
<li>When documents with addresses are printed the Customer or Supplier language will apply. If no language is set the Language Swap selection will apply.</li>
</ul>
</td>
</tr>
</table>
<p/>
<h4>What Can Be Translated?</h4>
<p>Only certain files can usefully have texts translated in Language Swap. Typically on Data Maintenance windows where you see this icon <img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/12043-2.jpg" width="16" height="16" alt="Swap Language Translation icon"/> you will be able to click on it to maintain Swap Language translations. This opens either the <a href="wlangmaintrec">Language Swap Maintenance by Record</a> window or the <a href="wlangmaintfile">Language Swap Maintenance by File</a> window depending on the context. The menu function <b>ScratchPads &#8212; Translate for Language Swap</b> operates in the same way on the current top window. To restrict user or group use of these window icon buttons set the privileges for these two menu functions: <b>File &#8212; Advanced &#8212; Language Swap Maintenance by File</b> and <b>ScratchPads &#8212; Translate for Language Swap</b> respectively. The best way to find out what files and fields can be translated is to view the dropdown lists in <a href="wlangmaintfile">Language Swap Maintenance by File</a>.</p>
<p>The basic rule is that data texts can be translated that are useful for a one-time translation. There is no point in translating inventory comments, for example, as they are too numerous and of little value outside the business.</p>
<p>It is also important to understand that the Language Swap system enables the translation of <b>data</b> not <b>the program</b>, and things like report literals are part of the program. So, in the example of the Korean translated balance sheet shown above, the top headings are all in the program language of English. An installation of Caliach Vision can, of course, be translated into another language other than English using the <a href="../advanced/wlanguage">Language Management</a> feature, but this is a major undertaking given the size of the program. A better solution to compliment the use of the Language Swap feature is to customise the commonly used report classes, translate the literals on them and have the user select, for example, the Korean Balance Sheet. Then the entire document, rather than just the data is in the foreign language.</p>
<p>In summary, the following table lists the uses of translations of various data:</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Data</p>
</th>
<th valign="top">
<p align="left">Use of Language Swap</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Addresses and Contacts</p>
</td>
<td valign="top">
<p align="left">Standard marketing letters and addresses on documents, such as quotations, sales orders, estimates and jobs, purchase orders, returns, invoices and credits, etc.. As a special case with customers, the address <i>Default dispatch and packing details</i> is translated when passed to a SO or Job.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Bills of Materials</p>
</td>
<td valign="top">
<p align="left">BoM reports and WOs, Picking Lists and PO Outwork listings.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Company Details</p>
</td>
<td valign="top">
<p align="left">Typically translated texts are applied to documents. Specifically the default payment terms when applied is translated onto the Quotation, SO, Estimate, Job or Invoice. Financial Statement titles are useful to translate if Financial Statements are to be Language Swapped.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Countries</p>
</td>
<td valign="top">
<p align="left">Countries listing report and as Addresses and Contacts above.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Currencies</p>
</td>
<td valign="top">
<p align="left">In documents such as PO, SO, Jobs and Invoices the currency title is translated to the currency of the supplier or customer, or if they do not have one set, the Language Swap at the time of printing.</p>
<p>Currency listing report is subject to Language Swap.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Customer Parts</p>
</td>
<td valign="top">
<p align="left">If the customer has a language set, or the Language Swap is set, the description of a newly created Customer Part record will be translated from the part texts. This allows you to have SO or Job line item descriptions for a specific customer part to be held in it&#8217;s appropriate language. Customer Parts can also be local text with translations made so that when they are applied on a SO or Job depending on the customer language or Language Swap that is set at the time. Because of the dual mechanism that can apply, you should avoid doubling up by making translations of records that are already pre-translated in the base language data.</p>
<p>Customer Parts reports will Language Swap.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Customers</p>
</td>
<td valign="top">
<p align="left">In general where a customer has a specific language set, then translations will be made to that language. Otherwise translations will be made according to the Language Swap set in the toolbar.</p>
<p>When Customer Parts are created the part description will translated to form the customer part description. When data is added to a Quotation, SO, Estimate, Job or Invoice, the text data will be translated onto the document data. When customer reports are printed and any document printed, translations will be applied. Letters, Emails and reports will be translated. A translated form of the User fields will be passed to the document data when options permit.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Delivery Details</p>
</td>
<td valign="top">
<p align="left">Delivery detail Language Swap will apply on RFQ and POs as well as delivery detail reports.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Email Texts</p>
</td>
<td valign="top">
<p align="left">Marketing, customer, supplier or Language Swap will apply to Email subject and body texts.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Employees</p>
</td>
<td valign="top">
<p align="left">Language Swap translations will apply to employee and work history reports.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Engineering Data</p>
</td>
<td valign="top">
<p align="left">Customer, supplier or Language Swap translations will apply to engineering reports and when engineering data is linked to documents.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">General Ledger</p>
</td>
<td valign="top">
<p align="left">G/L reference and descriptions are subject to language swap in Financial Statements and G/L reports complementing General Ledger Report Headings.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">General Ledger Assets</p>
</td>
<td valign="top">
<p align="left">Asset Register reports.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">General Ledger Report Headings</p>
</td>
<td valign="top">
<p align="left">Report heading texts are subject to Language Swap in Financial Statements and reports.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Index Codes</p>
</td>
<td valign="top">
<p align="left">Index descriptions are generally translated into an appropriate language context.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Letters</p>
</td>
<td valign="top">
<p align="left">Standard Marketing letters are translated according to the context of their use.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-20.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Do not translate special syntax such as &lt;B&gt;, &lt;I&gt; or &lt;U&gt; or square bracket notation or style escape strings. These should all remain intact in your translations.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Marketing records</p>
</td>
<td valign="top">
<p align="left">In general where a marketing record has a specific language set, then translations will be made to that language. Otherwise translations will be made according to the Language Swap set in the toolbar.</p>
<p>Customers or suppliers are created from Marketing records the language will migrate to the new customer or supplier. Letters, Emails and reports will be translated. Marketing reports will show translated text.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Non-Conformance Reports</p>
</td>
<td valign="top">
<p align="left">Language Swap applies to NCRs when reported.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Parts</p>
</td>
<td valign="top">
<p align="left">Language swap applies in parts reports. When parts are used on documents an appropriate context translation will be made to part texts. This particularly applied to Customer and Purchase Parts data descriptions or any document line items when a language applies. User field translations will be passed to WO&#8217;s when options apply and Language Swap is active.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-20.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Where individual texts contain a Engineering Text link code at the start for embedding in documents, you should leave this out in your translations. The link will be established before any Language Swap takes place and so leaving it in your translation will mean it will be printed on the document.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Process Route Operations</p>
</td>
<td valign="top">
<p align="left">Language Swap translated for reports. When they are replicated for a WO and the WO is Language Swapped when printed, the original operation texts are re-translated from the process route, so in this case modifying WO operation texts for the WO will not be useful for the translated version.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Purchase Parts</p>
</td>
<td valign="top">
<p align="left">Purchase parts typically derive a description that is a supplier or Language Swap translation of the part description. Alternatively, the description can be translated if Language Swap is set when creating a RFQ or PO. The document line item descriptions are stored in a translated form.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Quality Report and Certificate</p>
</td>
<td valign="top">
<p align="left">The quality comment can be translated in context.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Standard Texts</p>
</td>
<td valign="top">
<p align="left">Standard purchase, sales, works and engineering texts translations will be made in context on documents and reports.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Suppliers</p>
</td>
<td valign="top">
<p align="left">In general where a supplier has a specific language set, then translations will be made to that language. Otherwise translations will be made according to the Language Swap set in the toolbar.</p>
<p>When Purchase Parts are created the part description will translated to form the purchase part description. When data is added to a RFQ or PO, the text data will be translated onto the document data. When supplier reports are printed and any document printed, translations will be applied. Letters, Emails and reports will be translated. A translated form of the User fields will be passed to the document data when options permit.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Work Centres</p>
</td>
<td valign="top">
<p align="left">Work Centre descriptions will be translated in context, in particular on Work Orders and Jobs.</p>
</td>
</tr>
</table>
<p/>
<h2><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/custom40-14.jpg" width="24" height="24" alt="Customisation"/> Customisation and Custom Reports</h2>
<h4>ScratchPads and Workflow Triggers and Alerts</h4>
<p>You can use the Language Swap System to display language translations directly on the ScratchPads and Workflow Triggers and Alerts or, for that matter any custom report. To do this you use a function <b>$ctask.tLangSwap.$GetSwapText (pKeyValue, pColName, pLanguage, pNormalText)</b>. The four parameters are pKeyValue which is the identifier of the record and needs to be prfixed with <b>pRow.</b>, for example pRow.PTMPTNO for parts or pRow.CUSCODE for customer. Then the Column Name of the field in the record you want translated. Then optionally the language code for the translation. If this is not entered explicitly the Language Swap toolbar choice of language is applied. Finally, again optionally, the nomal, or un-translated text. If there is no translation available, this text will be returned.</p>
<p>For example, a calculated Parts ScratchPad field calculation could be</p>
<pre>$ctask.tLangSwap.$GetSwapText(pRow.PTMPTNO,'PTMDESC','ko',pRow.PTMDESC)</pre>
<p>would list all Korean translations of the part description in a column in the Parts ScratchPad. Note the pColName needs to be a quoted string. Using (pRow.PTMPTNO,&#8217;PTMDESC&#8217;) would apply the Language Swap toolbar choice for the column at the time the part was added to the ScratchPad.</p>
<p>As another example you could add a column to the General Ledger ScratchPad to show a translated account description. The calculation code would be:</p>
<pre>$ctask.tLangSwap.$GetSwapText(pRow.GLACODE,'GLADESC','fr')</pre>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/langswapexample2.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/langswapexample2.jpg" width="642" height="128" alt="ScratchPad translation example"/></a></p>
<h4>Reports</h4>
<p>Reports that were derived from pre-V4 designs will not support Language Swap without functions being added. The easiest way to achieve this is to add to the Record $print method:</p>
<pre>Do $ctask.tLangSwap.$LoadSwapInFiles (pDataRow, pFiles, pLanguage)
Do default</pre>
<p>pDataRow is either a row variable or a list variable with the current line set. pFile is a quoted string of any number of tables, comma seperated.</p>
<p>For reports to support Language Swap they need to be tailored with code that implements the swap process. Various functions are available to implement this.</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left"><font size="-2">Method (parameters)</font></p>
</th>
<th valign="top">
<p align="left"><font size="-2">Function</font></p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$LoadSwapInCRB (pLanguage, pDataRow)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Replaces any fields in the current main file in pDataRow to their swap translation or to pLanguage if not blank.<br />
<br /> <br />
This is typically called from the $printrecord class method of a report which contains the code:<br />
<br /> <br />
Do $ctask.tLangSwap.$LoadSwapInCRB(&#8221;, iDataRow)<br />
Do default</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$LoadSwapInFiles (pDataRow, pFiles, pLanguage)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Replaces any fields in the pFile table columns in pDataRow to their swap translation or to pLanguage if not blank. pFiles can contain any number of table names separated by commas. pDataRow can be a row variable or list with the current line set. For example, this line of code could be used to language swap G/L financil statement report:<br />
<br /> <br />
For iDataList.$line from 1 to iDataList.$linecount step 1<br />
  Do $ctask.tLangSwap.$LoadSwapInFiles(iDataList, &#8216;GLAFILE,RBPFILE&#8217;)<br />
  Do $cinst.$printrecord()<br />
End For</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$LoadSwapInList (pList, pFiles, pLanguage)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Swaps translated texts for the Swap Language, or to pLanguage if not blank, for columns in the list pList for columns in pFile tables. pFiles can contain any number of file names separated by commas. The list must contain columns for the tables&#8217;s key columns.<br />
<br /> <br />
For example in an appropriate method in a report where a list of data is passed the following line of code will make the report Swap Language aware:<br />
<br /> <br />
$ctask.tLangSwap..$LoadSwapInList(iList, &#8216;GLAFILE,RBPFILE&#8217;)<br />
<br /> <br />
iList is the list variable containing the data, and should not be of type field reference otherwise the source list will change which may lead to undesirable consequences. In this case the list contains columns from both the GLAFILE and RBPFILE.</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$LoadSwapInRow (pRow, pFiles, pLanguage)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Swaps translated texts for the Swap Language, or to pLanguage if not blank, for columns in the row pRow for columns in pFile tables. pFiles can contain any number of table names separated by commas. The row must contain columns for the table&#8217;s key columns.<br />
<br /> <br />
For example in an appropriate method in a report where a row of data is passed the following line of code will make the report Swap Language aware:<br />
<br /> <br />
$ctask.tLangSwap.$LoadSwapInRow(pList, &#8216;CUSFILE&#8217;, CUSLANG)<br />
<br /> <br />
iRow is the row variable containing the data, and should not be of type field reference otherwise the source list will change which may lead to undesirable consequences. In this case the row contains fields from both the CUSFILE and translates into the customer language, if set, otherwise the Swap language.</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$LoadSwapInWOO (pDataRow, pLanguage)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Special for WOOFILE records in WOs to replace pDataRow columns with PROFILE translations. WKOPTNO and WOOOPNO must be columns in pDataRow. It translates WO operations with Process Route text translations.</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$lookupIDX (pCode, pLanguage)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Returns a language swap text for an index code description in a similar way to the standard lookup would do. pLanguage will overwrite the current swap language. pCode must be the full IDXID value, for example:<br />
<br /> <br />
Calculate iDescr as $ctask.tLangSwap.$LookupIDX(con(&#8216;3&#8217;, iRow.PTMP1CD), &#8216;fr&#8217;)</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$lookupTXT (pCode, pLanguage)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Returns a language swap text for an standard text in a similar way to the standard lookup would do. pLanguage will overwrite the current swap language. pCode must be the full TXTCODE value, for example:<br />
<br /> <br />
Calculate iText as $ctask.tLangSwap.$LookupTXT(con(&#8216;S&#8217;, iRow.PTMTXS), &#8216;de&#8217;)</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">MEMORY.m_McdAltRow. &lt;fieldname&gt;</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">This syntax should be used only for Company Details (from the MCDFILE table) on reports where Language Swap is needed for appropriate columns. For example, in a report showing the text title for Default Sales Order Payment Terms you would usually use MEMORY.m_McdRow.MCDTERM in the report field dataname. If you want Language Swap to apply to the field use MEMORY.m_McdAltRow.MCDTERM instead.</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$mcd (pColumn, pLanguage)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Returns the language translations of MCDFILE pColumn but unlike the MEMORY.m_McdAltRow syntax above, you can force a language with pLanguage.</font></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><font size="-2">$ctask.tLangSwap.$GetSwapText (pKeyValue, pColName, pLanguage, pNormalText)</font></p>
</td>
<td valign="top">
<p align="left"><font size="-2">Returns the language swap text for the pColName column for the row keyed by pKeyValue. If there is no language swap it returns the pNormalText text. Should be used in custom ScratchPad columns or Workgroup Alert or Trigger calculations where language swap is called for. For example:</p>
<p> <br />
$ctask.tLangSwap.$GetSwapText(pRow.GLACODE,&#8217;GLADESC&#8217;,&#8217;fr&#8217;)</font></p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../system/wmcdedit">Company Details Maintenance</a></li>
<li><a href="../langswap/wlangmaintrec">Language Swap Maintenance by Record</a></li>
<li><a href="../langswap/wlangmaintfile">Language Swap Maintenance by File</a></li>
<li><a href="../langswap/wlangmaintutilities">Language Swap System Utilities</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 23 Jan 2017 05:36:00.00. No class.</p>
<p id="navline"><img decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Language Swap System</a> &gt; &#8211; Introduction to the Language Swap System</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/langswapintro/">Language Swap System: &#8211; Introduction to the Language Swap System</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Language Swap System: Language Swap Maintenance by File</title>
		<link>https://caliach.com/knowledge-base/wlangmaintfile/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 16:30:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wlangmaintfile/</guid>

					<description><![CDATA[<p>Language Swap System: Language Swap Maintenance by File</p>
<p>The post <a href="https://caliach.com/knowledge-base/wlangmaintfile/">Language Swap System: Language Swap Maintenance by File</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Language Swap Maintenance by File</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Language Swap System</a> &gt; Language Swap Maintenance by File</p>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wlangmaintfile.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wlangmaintfile.jpg" width="509" height="341" alt="Language Swap Maintenance by File window."/></a></p>
<p>Refer to <a href="langswapintro">Introduction to the Language Swap System</a> for an overview of the system.</p>
<p>Use this window to make language translations of a particular field in many records of a file rather than translations for all fields in a particular record of a file which is best done in the <a href="wlangmaintrec">Language Swap Maintenance by Record</a> window. The icon <img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/12043-2.jpg" width="16" height="16" alt="Swap Language Translation icon"/> you will see on many master data windows makes this choice for you, as does the <b>ScratchPads &#8212; Translate for Language Swap</b> menu function.</p>
<p>First you need to select the file from which you want to amend or add translated texts and the window provides a dropdown list for this purpose.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wlangmaintfile2.jpg" width="297" height="604" alt="File List."/></p>
<p>In selecting the file you are interested in, the system will then provide a list of fields within it that can be usefully translated. Such fields are limited to character fields that do not take part in any internal program logic such as codes, etc.. If there is only one field, that will be automatically selected.</p>
<p>Next you need to decide the range of records from the file that you want to view. This is done my record sequence number (RSN) which is a unique number automatically assigned to the record when entered in the datafile. Some trial and error may be needed if you are trying to extract a particular range of records. By default the first and last are loaded when you select the file in the list above.</p>
<p>Finally, before you can build your list, you need to select the swap language you are interested in. If you only have one, that will be pre-selected for you.</p>
<p>Once you have made your choices use the <b>Build List</b> button. This will populate the list with the field&#8217;s base language text and any translated text for the language selected. Where no translation has been made before a blank field is available for a translation to be entered.</p>
<p>You can Export the resulting list to make your translations externally and then Import them back into the window.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-20.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> To import translations you need to have a list built that includes the relevant File, Field, Language and records as were exported. The imported translations then are loaded into the list which you subsequently need to save to make permanent.</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">File List</p>
</td>
<td valign="top">
<p align="left">Select the file from which records will be found. {number of records in the datafile}</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Field List</p>
</td>
<td valign="top">
<p align="left">Select the field for which you want to view or edit a Language Swap.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">From record</p>
</td>
<td valign="top">
<p align="left">The starting record sequence number of from which the list will be built.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">To record</p>
</td>
<td valign="top">
<p align="left">The ending record sequence number of from which the list will be built.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Language List</p>
</td>
<td valign="top">
<p align="left">The language you want to maintain.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Build List</p>
</td>
<td valign="top">
<p align="left">Click to build a list from the file selected for the field and language selected.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Language Swap Data Listing</p>
</td>
<td valign="top">
<p align="left">A list of selected file records with the chosen field language swap data.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Field Key</p>
</td>
<td valign="top">
<p align="left">Alternative text substitution. Key for file/record con(&lt;languagecode&gt;&lt;filename 3 letter prefix&gt;,&lt;record key value&gt;) (e.g. frPTMTEST123). {ALTFILE.ALTKEY char 62 Idx} But without language code prefix.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Base Text</p>
</td>
<td valign="top">
<p align="left">Text for the record field for the base language. Your standard base text.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Text in Language</p>
</td>
<td valign="top">
<p align="left">Alternative text substitution. Substitution text for the language. {ALTFILE.ALTTEXT char 100000000}</p>
</td>
</tr>
</table>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Google Translate Empty</p>
</td>
<td valign="top">
<p align="left">Click to use Google Translate service to translate the entries currently empty.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/note40-22.jpg" width="24" height="24" alt="Note"/><strong> NOTE:</strong> Google have removed their free web functionality that was used in this function. Our convenient functionality has therefore been removed.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Language Swap Utilities</p>
</td>
<td valign="top">
<p align="left">Click to open the <a href="wlangmaintutilities">Language Swap System Utilities</a> window for the Language Swap System. </p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Export Data Listed</p>
</td>
<td valign="top">
<p align="left">Export the listed date to a tab-delimited text file from which a translation can be made externally. The export file is UTF-8 encoded, so can support any characters.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-20.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Any carriage return characters in the text will be replaced in the export file by <b>&lt;CR&gt;</b> strings to avoid conflict with the file format. In your translations you should maintain this convention.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Import Data into List</p>
</td>
<td valign="top">
<p align="left">Import translated text previously exported. The import file must be UTF-8 encoded, so can support any characters.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-20.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Any carriage return characters in the text will be replaced in the export file by <b>&lt;CR&gt;</b> strings to avoid conflict with the file format. In your translations you should maintain this convention.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Revert to Saved</p>
</td>
<td valign="top">
<p align="left">To revert any changes to the previously saved version.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Save as Shown</p>
</td>
<td valign="top">
<p align="left">To save the changes you have made to the data file.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../langswap/langswapintro">&#8211; Introduction to the Language Swap System</a></li>
<li><a href="../langswap/wlangmaintutilities">Language Swap System Utilities</a></li>
<li><a href="../langswap/wlangmaintrec">Language Swap Maintenance by Record</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 23 Jan 2017 11:01:00.00. Class wLangMaintFile last modified 10 Oct 2017  11:48:19.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Language Swap System</a> &gt; Language Swap Maintenance by File</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wlangmaintfile/">Language Swap System: Language Swap Maintenance by File</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Language Swap System: Language Swap Maintenance by Record</title>
		<link>https://caliach.com/knowledge-base/wlangmaintrec/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 16:30:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wlangmaintrec/</guid>

					<description><![CDATA[<p>Language Swap System: Language Swap Maintenance by Record</p>
<p>The post <a href="https://caliach.com/knowledge-base/wlangmaintrec/">Language Swap System: Language Swap Maintenance by Record</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Language Swap Maintenance by Record</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Language Swap System</a> &gt; Language Swap Maintenance by Record</p>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wlangmaintrec.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wlangmaintrec.jpg" width="462" height="296" alt="Language Swap Maintenance by Record window."/></a></p>
<p>Refer to <a href="langswapintro">Introduction to the Language Swap System</a> for an overview of the system.</p>
<p>Use this window to make language translations for all fields in a particular record of a file  rather than of a particular field in many records of a file which is best done in the <a href="wlangmaintfile">Language Swap Maintenance by File</a> window. The icon <img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/12043-2.jpg" width="16" height="16" alt="Swap Language Translation icon"/> you will see on many master data windows makes this choice for you, as does the <b>ScratchPads &#8212; Translate for Language Swap</b> menu function.</p>
<p>First you need to select the file from which you want to amend or add translated texts and the window provides a dropdown list for this purpose.</p>
<p>When you select a file, the first key record will be found and all the translatable fields will be presented for all the swap languages in which you can make your translations. Leaving a translation blank or deleting the text in an old entry will lead to no translation record being created or the existing record being deleted. </p>
<p>You can move to the previous and next records using the <img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/10000-1.jpg" width="16" height="16" alt="Down"/> down/up <img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/10001-1.jpg" width="16" height="16" alt="Up"/> icon buttons. Or you can enter a new key value which, when leaving the field with a tab key press will find the appropriate record and present it&#8217;s translations. You can also click on ScratchPad lines to select a new record or the BoM listing.</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">File dropdown list</p>
</td>
<td valign="top">
<p align="left">Select the file from which records will be found. {number of records in the datafile}</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Key 1 find record</p>
</td>
<td valign="top">
<p align="left">Primary part of the key value on which to find the record.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Key 1 find record</p>
</td>
<td valign="top">
<p align="left">Secondary part of the key value on which to find the record. This is only visible for files that need two key fields.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Language List</p>
</td>
<td valign="top">
<p align="left">The language you want to maintain or all languages.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Lock Language Selection</p>
</td>
<td valign="top">
<p align="left">As you cycle through master records some may have been set to a specific language (E.G. Customers, Marketing, Suppliers). Normally the maintenance window will automatically be reconfigured to the specific language, or all languages if no specific language is set. Check this option to lock your language selection and not change with master record settings.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Heading</p>
</td>
<td valign="top">
<p align="left">Gives a reference to the key that the record relates to being viewed.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Language Field</p>
</td>
<td valign="top">
<p align="left">This shows the language and fieldname for the translation. Those with no language prefix are the base language data.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Text</p>
</td>
<td valign="top">
<p align="left">For each field available for Language Swap the base language is shown disabled and then entry fields for each language follow where you can enter your translations.</p>
</td>
</tr>
</table>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/10000-1.jpg" width="16" height="16" alt="Down"/></p>
</td>
<td valign="top">
<p align="left">Click to find the preceding record.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/10001-1.jpg" width="16" height="16" alt="Down"/></p>
</td>
<td valign="top">
<p align="left">Click to find the next record.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Google Translate Empty</p>
</td>
<td valign="top">
<p align="left">Click to use Google Translate service to translate the entries currently empty.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/note40-22.jpg" width="24" height="24" alt="Note"/><strong> NOTE:</strong> Google have removed their free web functionality that was used in this function. Our convenient functionality has therefore been removed.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Revert to Saved</p>
</td>
<td valign="top">
<p align="left">To revert any changes to the previously saved version.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Save as Shown</p>
</td>
<td valign="top">
<p align="left">To save the changes you have made to the data file.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../langswap/langswapintro">&#8211; Introduction to the Language Swap System</a></li>
<li><a href="../langswap/wlangmaintfile">Language Swap Maintenance by File</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 23 Jan 2017 11:02:00.00. Class wLangMaintRec last modified 26 Oct 2016  07:41:50.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Language Swap System</a> &gt; Language Swap Maintenance by Record</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wlangmaintrec/">Language Swap System: Language Swap Maintenance by Record</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Language Swap System: Language Swap System Utilities</title>
		<link>https://caliach.com/knowledge-base/wlangmaintutilities/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 16:30:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wlangmaintutilities/</guid>

					<description><![CDATA[<p>Language Swap System: Language Swap System Utilities</p>
<p>The post <a href="https://caliach.com/knowledge-base/wlangmaintutilities/">Language Swap System: Language Swap System Utilities</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Language Swap System Utilities</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Language Swap System</a> &gt; Language Swap System Utilities</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wlangmaintutilities.jpg" width="430" height="196" alt="Language Swap System Utilities window."/></p>
<p>Refer to <a href="langswapintro">Introduction to the Language Swap System</a> for an overview of the system.</p>
<p>This window is opened by clicking on the <b>Language Swap Utilities</b> button on the <a href="wlangmaintfile">Language Swap Maintenance by File</a> window.</p>
<p>The functions here clean the language data. During normal operation of the system records from files related to Language Swap translations can be deleted. When this happens the Language Swap data remains unchanged, so in time, some language translation records become orphaned. In other words, translations remain on file which are unrelated to their original master record. For instance, a customer with translations can be deleted. The same applies to changes in the swap languages set in the Company Details.</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Delete Orphaned Translations</p>
</td>
<td valign="top">
<p align="left">Operating this function will scan the Language Swap translations file and remove any where the base data key record no longer exists. In other words where you have deleted main file records, such as parts or customers.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Delete Translations for Unused Languages</p>
</td>
<td valign="top">
<p align="left">Operating this function will scan the Language Swap translations file and remove any where the language is not now listed in the Company Details Language Swap settings.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Export All Potential Translations</p>
</td>
<td valign="top">
<p align="left">This function creates a tab-delimited text file of ALL languages for fields for files your Language Swap settings are set for. It is only limited by there needing to be at least one character in the base language text. This will be a large fileif your data is extensive. The file can then be used externally to translate appropriate texts for importing back into the data.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-20.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> The export has columns for the three parts of the key field (ALTKEY) which are language code, file identifier and record key. They are provided like this so that you can externally sort by what you want in a spreadsheet. The order of records is unimportant for the import below.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-20.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> This file can externally be chopped into appropriate chunks for handling in parts as long as the format is not compromised. The important columns are the first 4 and the 6th. The base language text is there for reference only.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-20.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Any carriage return characters in the text will be replaced in the export file by <b>&lt;CR&gt;</b> strings to avoid conflict with the file format. In your translations you should maintain this convention.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Import Translations</p>
</td>
<td valign="top">
<p align="left">Operating this function import a file containing translations. The format must be the same as the export file above.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-20.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Any carriage return characters in the text will be replaced in the export file by <b>&lt;CR&gt;</b> strings to avoid conflict with the file format. In your translations you should maintain this convention.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../langswap/langswapintro">&#8211; Introduction to the Language Swap System</a></li>
<li><a href="../langswap/wlangmaintfile">Language Swap Maintenance by File</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 17 May 2012 11:29:00.00. Class wLangMaintUtilities last modified 18 Feb 2015  01:54:42.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-22.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Language Swap System</a> &gt; Language Swap System Utilities</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wlangmaintutilities/">Language Swap System: Language Swap System Utilities</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
