Advertisements

Translating Multilanguage Files in Navision 2017 for Arabic Jordan

Captions and other user interface text that you define for objects in the Microsoft Dynamics NAV Development Environment can be exported to a text file. You can then add new translations to the text file and import the new translations in the development environment. You can add translations manually using Notepad, Microsoft Excel, and so on.

The exported text files contain an entry for each translatable user interface element for the objects that you selected in the development environment. However, the text file also includes entries that cannot be translated. For example, if you export the strings for table 18, the resulting text file contains hundreds of entries, of which fewer than 170 can be translated. The translatable strings include the captions of for all fields and the error messages that you have defined. The non-translatable strings include names of variables, and so on.

In CRONUS International Ltd. demonstration database, all objects are multilanguage enabled, and they include strings with captions in the 1033 locale, English (US). The locale is specified by a multilanguage property such as P8629, but the ID of the actual property is different for different types of strings. However, the locale for the multilanguage property value always starts with the character A. For example, the English (US) captions are identified by the A1033 locale value for the relevant multilanguage property. You can identify which strings can be translated by opening the file in Microsoft Excel and then filter by the English locale.

If you export strings for objects of different types, the text file lists the strings by object type and then by object ID. For example, if you export strings for table 18, page 21, and report 111, the text file lists strings in the following order:

  1. Table 18
  2. Report 111
  3. Page 21

The format of the exported text files can be difficult to read, because for each type of object, the text file contains different types of strings. Each type of string is identified by a property that starts with the character P followed by an ID.

For example, for a table object and the fields on the table, the multilanguage property has the ID 8629.

For option values for fields on tables, the multilanguage property has the ID 8632.

This means that you can identify the type of string when you translate the strings. However, you should filter out all strings that are not translatable, which makes the remaining strings easier to understand.

The following table illustrates the translatable strings for table 18 in the CRONUS International Ltd. demonstration database.

String Description
T18-P8629-A1033-L999:Customer The caption of the table object.
T18-F1-P8629-A1033-L999:No. The caption of field 1.
T18-F7601-P8629-A1033-L999:Copy Sell-to Addr. to Qte From T18-F7601-P8632-A1033-L999:Company,Person The caption of field 7601 and the captions of the option values for the field.
T18-Q1001-P26171-A1033-L999:Do you wish to create a contact for %1 %2? A text constant that defines user interface text.

For more information, see How to: Add Translated Strings By Importing and Exporting Multilanguage Files.

 

tmf-01

Here it is assumed that the Language Module Installer are prepared by translating resx files and Partner Translation Tool project is build and same is Installed.

You can check my earlier post for more details:

How do I translate my ResX Files?

Managing Multilanguage support in Navision Overview

tmf-02

After preparing Language Module Installer and installing the same our next step is to add the translated Captions to CaptionML.

You have other methods to do the same below is one which I have used to get my task done.

Export the objects in txt format from the database (ObjectToTranslate.txt).

tmf-03

My objects have ENU and want to add translation for ARJ.

You can use below PS Script to extract Language Layer from the objects.

Export-NavApplicationObjectLanguage -Source ObjectToTranslate.txt -LanguageId ENU, ARJ -Destination translated.txt

In our objects, we have ENU and we are supposed to add ARJ Caption translation.

Above command will extract the ENU Captions and add entries for ARJ where we can add our translated string for Arabic Jordan.

Open the translated.txt in notepad and save as translatedNew01.txt, make sure you select Encoding = UTF-8.

Open the File [translatedNew01.txt] in Excel as below defined step:

 

tmf-04tmf-05tmf-06tmf-07tmf-08

Translate to Arabic Jordan as one shown in above screen.

Add you translation after [ : ]

Once all done Save your file as shown below:

tmf-09

Open the file in Notepad to check format is not disturbed and output is as below:

tmf-10

Next step in upcoming post.

Till then keep exploring and learning.

 

 

Advertisements

Multilanguage across Conflicting Text Encoding Formats

For more details please see my earlier posts:

Managing Multilanguage support in Navision Overview

How do I translate my ResX Files?

Working with Partner Translation Toolkit

To support users with translated strings across conflicting text encoding formats, you must save the translations to a text file in UTF-8 text encoding format.

This converts the file to Unicode, which Microsoft Dynamics NAV Development Environment cannot import. Instead, you add the files to a dedicated Translations folder on the Microsoft Dynamics NAV Server computer.

The default location of this folder is

C:\Program Files\Microsoft Dynamics NAV\90\Service\Translations.

When you have more than one service instance, there is a Translations folder for each service instance, such as

C:\Program Files\Microsoft Dynamics NAV\90\Service\Instances\MyInstance\Translations.

Microsoft Dynamics NAV Server adds any strings in text files that you place in the relevant Translations folder to the metadata for Microsoft Dynamics NAV.

To add translated strings for a conflicting text encoding format:

In the development environment, export the strings for the objects that you want to translate.

Translate-1

Select the Objects you wish to add translation, Export and save as text file.

Translate the strings in the resulting text file into desired Language by using your preferred translation process.

Translate-2

I have translated following Captions in Khmer language:

  1. For Field Name & Search Name in Table Customer (18)
  2. TextConstant in Report CustList (50000) to display Caption for Name & Search Name
  3. Caption for User defined variable in Page Customer Card (21)

When translations are complete, save the translated strings into a text file in the UTF-8 text encoding format. The extension of the file must be .txt.

It is recommend that you remove the other Language strings from the Unicode file before you copy it to the Microsoft Dynamics NAV Server computer.

Microsoft Dynamics NAV Server queries the Translations folder for updated strings, and for performance reasons the folder should only contain strings that you cannot import into the development environment because of conflicting codepages.

Copy the UTF-8 file to the equivalent of

C:\Program Files\Microsoft Dynamics NAV\90\Service\Translations

on the Microsoft Dynamics NAV Server computer.

When you have more than one service instance, there is a Translations folder for each service instance, such as

C:\Program Files\Microsoft Dynamics NAV\90\Service\Instances\MyInstance\Translations.

Restart the Microsoft Dynamics NAV Server instance.

Microsoft Dynamics NAV Server adds the translated strings in the file to the metadata store for the Microsoft Dynamics NAV deployment.

Now Users of this Microsoft Dynamics NAV Server session can now change the user interface language from English to required Language.

The metadata store is updated whenever you add new strings to the Translations folder and then restart the Microsoft Dynamics NAV Server service instance. Cached strings are not deleted from the metadata store when you restart the service instance.

 

Let us see the effect of this translation. Let’s run the RTC to see the net effect of same.

[A] Customer List in English However Data Stored in Khmer Language

Translate-3

B] Two Captions Changed in Khmer Language for Name & Search Name

Translate-4

[C] Customer Card in English Language. Selected Captions are changed in Khmer Language

Translate-5

[D] Caption Changed for Name & Search Name to Support Khmer Language also for Field not available in Table the Test Caption

Translate-6

[E] Report Caption in English Language however data in Khmer Language

Translate-7

[F] Report Caption Changed to Khmer Language for Name & Search Name

Translate-8

You can manage Languages using above trick for translate strings across conflicting text encoding formats.

Will comeup with more details in my upcomming posts.

 

Working with Partner Translation Toolkit

In my earlier post I have given the overview of Managing Multilanguage support in Navision continuing from same today I will discuss about how to create Language Module for the Languages not available from Microsoft.

Although still we will not be having direct support for all Languages but using this process you can create one.

To be very fair it will not be easy task for all Languages but for few it could help you much to get you work done with little ease.

See few helpful links which will help you getting done your task:-

Platform strings maintained in managed assemblies and fin.stx and fin.etx files

Configuring Microsoft Dynamics NAV Help Server

To work with Partner Translation Toolkit you will require below, make sure you have all before you start with using this Tool:

  1. Visual Studio
  2. WiX Toolset
  3. Microsoft Translator for ResX
  4. Azure Data Market account
  5. Microsoft Translator data service subscribed
  6. Your NAV License File
  7. Finally your efforts

Visual Studio:

If you don’t have make sure you install the latest version of the same.

WiX Toolset:

You will require the WiX Toolset to start with you can download from here. Install WiX Toolset version 3.8 or 3.9

PTT-1

Install the WiX Toolset according to the instructions. In my case it is already installed on my system so getting option for Uninstall.

Building the project you require that you have the WiX Toolset version 3.8 or 3.9 installed on the computer.

Microsoft Translator for ResX:

See my previous post for more details here.

Azure Data Market account / Microsoft Translator data service:

See my previous post for more details here.

Steps to get ready for Translation tool:

See my previous post for more details here. 

Let’s start with building our project:

Step -1:

Run the “Microsoft.MCSUK.RESXTranslator.exe” Tool

See my previous post for more details here.

Step -2:

Run the “Visual Studio” with opening project solution PartnerTranslations.sln

PTT-8

You will see all the projects discussed above is having their own folder in this solution.

Add your all the translated resx files obtained in Step-1 post Translation to respective projects.

PTT-9

Right click on the project folder and choose Add and then Existing Item.

Select the resx file which we translated in Step-1.

In my case I select “Common.Language.Lang.hi-IN.resx”

Similarly you will add these translated files to your all other projects. Be cautious few may have 2-3 files add them all.

PTT-10

The properties of the installation determine which folders are created during the installation of the language packs and what files are placed in the folders. The properties can be found in the Locals.wxi file located in the root directory of the translation kit. Open the Locals.wxi file and change the following properties:

• CountryRegionCode, to one of the country/region codes in Globals.wxi or create a new.

• ModuleLanguage, to the language of your choice.

• LocalLangFolder, to the .Net culture of the satellite assemblies.

• LocalIsoFolder, to the three letter ISO code for your language.

PTT-11

PTT-12

Step -3:

Build the project PartnerTranslations.sln

To build the PartnerTranslation solution from inside Visual Studio, choose Build Solution from the Build menu. This will pick up all translated artifacts, and create three installer files (.msi):

  • Server.msi – Located in the Server\Bin\Debug folder.
  • RTC.msi – Located in the RTC\Bin\Debug folder.
  • WebClient.msi – Located in the WebClient\Bin\Debug folder.

Step-4:

Copy your Language Module Files and install on desired Server & Client

PTT-13

Install – Add your language pack to the W1 version

If have not already done so, install the W1 version of Microsoft Dynamics NAV 2016 from the product media.

Install the new language Pack

Next, install the new language pack on the same computer. To do this, select and click each of the three .msi files listed below, one after the other. The order is not significant:

  • Server\Bin\Debug\Server.msi
  • RTC\Bin\Debug\RTC.msi
  • WebClient\Bin\Debug\WebClient.msi

Each installer quickly shows a dialog, which disappears when the installer has completed.

The language pack is now installed, but you must make some final configuration.

I will comeup with more details in my next posts.

 

Managing Multilanguage support in Navision Overview

language

Microsoft Dynamics NAV is Multilanguage enabled, which means that you can display the user interface (UI) in different languages.

A Multilanguage version of Microsoft Dynamics NAV is not the same as a localized version.

  • A localized version is a version that is adapted to a local market. All text that is displayed to the user is translated into the local language, and all functional areas are adapted to the requirements of the local market.
  • A Multilanguage version is a localized version that you can run in different languages, but all local functionality remains the same.

 

Language Module:

To be able to run a localized version in multiple languages, you must install language modules.

Language Module contains translated text strings of Logs & error reporting for:

  • Translated strings for the UI in the Microsoft Dynamics NAV Windows client.
  • Translated strings for the database.
  • Translated strings for Microsoft Dynamics NAV Server, such as for logs and error reporting.
  • Translated strings for the Microsoft Office Outlook Add-in for Microsoft Dynamics NAV.
  • Translated strings for charts on Role Centers in the Microsoft Dynamics NAV Windows client.
  • Localized versions of the client Help.

Language Modules are Binary Files which can’t be changed by any external tools for this you will require Partner Translation Tool Project and Visual Studio.

You can install language modules so that you can view text in the user interface in different languages.

Once you have installed a language module, you can select that language on the Select Language page in the UI to change the language of all text that is displayed in the UI in captions for text boxes, on command buttons, in menus, and so on.

Imp: When you change the language of Microsoft Dynamics NAV, you are not changing the language of the data that is stored in Microsoft Dynamics NAV. Changing the text that is stored as application data is not part of the language modules.

When you install a language module, a subdirectory for the language is created in the Microsoft Dynamics NAV directory structure. The .stx, .etx, .chm, and .hh files for each language are automatically installed in the subdirectory. The name of the subdirectory is the three-letter language code (Abbreviated Name) that is used by Windows for the particular language.

You can use this link to access NAV 2016 downloads for Available – Product, Translation Tool & Language Modules. https://mbs.microsoft.com/customersource/Global/NAV/downloads/product-releases/msdnav2016download

 

There are 3 main parts for creating translations that works in Dynamics NAV.

  1. Translate the platform by translating the resource file for each DLL file.
  2. Translate all the captions by adding a new language into captionML in each object
  3. Localize development environment by translating .stx and .etx files. These 2 files have to be sent to the Microsoft regional office and sealed by Microsoft. (Only required if you want the Development Environment to be in Unsupported Language as well)

 

Common available resources for supported/available Language Module.

To work with Language Modules what else you required to know about: You can check below links on MSDN.

  1. Windows Language Virtual Table
  2. How to: Install Language Modules
  3. How to: Add Translated Strings By Importing and Exporting Multilanguage Files
  4. How to: Add Translated Strings By Using the Multilanguage Editor
  5. How to: Uninstall Language Modules
  6. How to: Delete Translated Strings
  7. Multilanguage Development
  8. Viewing the Application in Different Languages

 

Translated User Interface Strings:

In Microsoft Dynamics NAV, the user interface includes the following types of translatable user interface strings:

Captions for application objects, such as pages, tables, reports, option fields, icons, menus, and so on, that are defined in the CaptionML property for an object. Text messages that are defined in the development environment, such as text constants and error messages that are defined in the C/AL Globals window or the C/AL Locals window.

Text messages and strings that are defined in Microsoft Dynamics NAV Server and Microsoft Dynamics NAV Windows client.

To add a language to the text messages that are defined in the resource files for Microsoft Dynamics NAV Server and Microsoft Dynamics NAV Windows client, special tools are required.

You can manage translations by using text files. In the development environment, you can export all strings for the specified objects to a text file, translate the strings in a translation tool of your choice, and then import the new translations. Then, when you compile the updated objects, the new translations are available to users in the Microsoft Dynamics NAV Windows client.

 

Multilanguage across Conflicting Text Encoding Formats:

To support users with translated strings across conflicting text encoding formats, you must save the translations to a text file in UTF-8 text encoding format.

This converts the file to Unicode, which Microsoft Dynamics NAV Development Environment cannot import. Instead, you add the files to a dedicated Translations folder on the Microsoft Dynamics NAV Server computer.

The default location of this folder is:

C:\Program Files\Microsoft Dynamics NAV\90\Service\Translations.

When you have more than one service instance, there is a Translations folder for each service instance, such as:

C:\Program Files\Microsoft Dynamics NAV\90\Service\Instances\MyInstance\Translations.

Microsoft Dynamics NAV Server adds any strings in text files that you place in the relevant Translations folder to the metadata for Microsoft Dynamics NAV.

 

To add translated strings for a conflicting text encoding format:

In the development environment, export the strings for the objects that you want to translate.

Translate the strings in the resulting text file into desired Language by using your preferred translation process.

When translations are complete, save the translated strings into a text file in the UTF-8 text encoding format. The extension of the file must be .txt.

It is recommend that you remove the other Language strings from the Unicode file before you copy it to the Microsoft Dynamics NAV Server computer.

Microsoft Dynamics NAV Server queries the Translations folder for updated strings, and for performance reasons the folder should only contain strings that you cannot import into the development environment because of conflicting codepages.

Copy the UTF-8 file to the Microsoft Dynamics NAV Server computer.

C:\Program Files\Microsoft Dynamics NAV\90\Service\Translations

When you have more than one service instance, there is a Translations folder for each service instance, such as:

C:\Program Files\Microsoft Dynamics NAV\90\Service\Instances\MyInstance\Translations.

Restart the Microsoft Dynamics NAV Server instance.

Microsoft Dynamics NAV Server adds the translated strings in the file to the metadata store for the Microsoft Dynamics NAV deployment.

Now Users of this Microsoft Dynamics NAV Server session can now change the user interface language from English to required Language.

The metadata store is updated whenever you add new strings to the Translations folder and then restart the Microsoft Dynamics NAV Server service instance. Cached strings are not deleted from the metadata store when you restart the service instance.

I will comeup with more details in my upcomming post soon.

Important

Most of the contents you find in this blog will be either inherited from MSDN or Navision Developer IT Pro Help. Some places images are also directly taken from these sites. Purpose is simple to try those stuffs and re-produce adding few things as per my understanding to make easy understanding for others and quick reference.

Here nothing under my own brand or authorship of the content. At any point of time we are just promoting Microsoft stuffs nothing personnel with same.

Hope stuffs used here will not violate any copyright agreement with them. In case by mistake or in-intestinally it happens and the Microsoft feels these should not be used Microsoft have full right to inform me about same and will be glad to take down any such content which may be violating the norms.

Purpose is to promote Navision and share with community.

FB Profile

Like FB Page

%d bloggers like this: