Adding additional language to Microsoft Dynamics AX 2012
Disclaimer
Microsoft Dynamics AX 2012 ships with certain languages that are supported by Microsoft.
Adding other languages or modifying existing languages, though possible, is NOT supported by
Microsoft. Users assume full responsibility for any localizations or translations they create
pursuant to the terms of the Partner Localization and Translation Licensing Program. Microsoft
does not provide any warranties or guarantees for localizations or translations created by
channel partners or other third parties.
This document is for information purposes only. It is provided “as is”. . MICROSOFT MAKES
NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION
IN THIS DOCUMENT. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR
OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS
DOCUMENT.
Introduction
Microsoft Dynamics AX 2012 ships with 39 languages out of the box. Though language packs
are no longer monetized, they are still controlled by license keys that Microsoft issues. In certain
situations, channel partners or independent software vendors (ISVs) may add languages to
Microsoft Dynamics AX 2012 that Microsoft does not ship. This document describes multiple
approaches for enabling languages that do not ship with Microsoft Dynamics AX 2012.
Requirements
This process only applies to Microsoft Dynamics AX 2012, Microsoft Dynamics AX
2012 Feature Pack, and Microsoft Dynamics AX 2012 R2.
Only languages listed under Developable Languages can be added.
Translated languages must contain labels to specify these are third party developed
languages.
You must have following license code enabled to be able to develop new license file for
languages – “Enable license code authoring and editing”.
Technical Architecture
There are 3 core concepts that control enabling additional languages in Microsoft Dynamics AX
2012. To develop new languages all 3 artifacts must be present.
1. KTD Files – kernel files that contain a list of:
Available languages in the product (localized)
Kernel error messages for client
Localized labels for property description in AOT
Non-localizable symbols like property name in AOT
2. ALD Files – files that contain localized app labels
3. Language License Codes – codes that control availability of languages in Microsoft
Dynamics AX 2012
Creating new language files:
In this approach we’ll add new language files to the system and create license code to enable the
language. Identify supported language From the developable list of languages below identify
the language you want to add.
We will take the Faroese “FO” language as an example.
1051 Fo Faroese
Create test certificates:
1. Create an “AX” folder under your C:\ drive to save your files
2. Create test certificate by using the Certificate Creation tool, makecert.exe. To generate
test certificates, follow these steps:
3. Go to Start/ All Programs/Visual Studio 2010/Command prompt
4. Launch the Visual Studio Command Prompt as Administrator
5. Create a test code signing certificate. Run following command:
"makecert –len 2048 -r -n CN=FOLanguage -eku 1.3.6.1.5.5.7.3.3 -pe -ss FOLanguage FO.cer"
This will generate a certificate file “FO.cer” under:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
6. Go to C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC and copy the “FO.cer”
file to “AX” folder (Created under step1)
7. Run command certmgr.msc.
8. You will find a “FOLanguage” node, expand it and click on “Certificates” sub-node.
9. Drag and drop the “FOLanguage” certificate to “Trusted Root Certification..”
“Certificates” node
10. You need to export a private certificate key
11. Go to “Trusted Root Certification..” > “Certificates” node and right click
12. Select “All Tasks” > “Export”
13. Follow the below addressed wizard steps:
1)
2)
3)
4)
5)
Enter a password (You have to remember it )
6)
Save it in “AX folder and name it “FO”
7)
8)
14. Now the Certificate .cer and the Private Key .pfx files should be created and ready
Generate license code and license file:
1. Configure AX client on ISV layer using your own ISV layer codes
2. Launch the AX client (In ISV layer)
3. Open development workspace
4. Go to “Tools” > “Model management” > “Create model” and create a new Model, give it
a name e.g. “FOLanguage” and make it the active model
5. In the Application Object Tree (AOT) > Data Dictionary > License Codes, right-click,
and then click New License Code.
6. In the license Code properties : Name=FOLanguage, Label: Faroese, Group:=Language,
PublicKey: 1051, Package:BusinessEssential, Legacy: 1051
CertificateName : Browse to the generated certificate file “FO.cer”
7. Save, Synchronize and restart AOS and Client
8. Export FOLanguage.axmodel model using the AXUtil tool
Command = “axutil export /model:FOLanguage /file:C:\AX\FOLanguage.axmodel”
9. Generate the License file by the AXUtil tool
10. Start a Command DOS prompt as Administrator and run following command
Axutil genlicense /file:filename /certificatepath:filepath /licensecode:name
/customer:name /serialnumber:number /password:value /expirationdate:date
Where:
“file” = The License file name that will be generated
“certificate” = Path to the generated certificate .cer file (in this example the FO.cer file)
“licensecode” = The License code name generated in AX
“customername” = License holder name from AX License code
(Customer’s name where the License code to be loaded into his environment)
“Serialnumber” = License serial number from AX License code
(Customer’s serial number where the License code to be loaded into his environment)
“password” = Password entered on the Private Key generation wizard
“expirationdate” = The license code expire date
11. Now, you should have the “SEV.txt” license code and a Model files ready:
12. Send files to Customer
On Customer AX environment side:
1. Save provided files on their Local drive
2. Open Dev Workspace AX client and go to:
\Data Dictionary\Tables\LanguageTable\Fields\LabelFile field.
Right click and select “Properties”. Change the “Visible” to “Yes”, save and
synchronize.
3. Open table in table browser and check mark the “LabelFile”
4. Save and synchronize the table
Create ktd/ald files and the license code:
1. Create a .ktd file
Create .ktd translation for that particular language and save it using AxSysFO.ktd format
Copy the file into AX Client and Server bin directories:
C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin
C:\Program Files\Microsoft Dynamics AX\60\Server\[Instance Name]\bin
2. Create .ald file
Create .ktd translation for that particular language and save it using AxSysFO.ald format
Copy the label file for the language and save the file in the server application folder:
C:\Program Files\Microsoft Dynamics AX\60\Server\[Instance
Name]\bin\Application\Appl\Standard
3. Open Dev Workspace AX client and go to:
\Data Dictionary\Tables\LanguageTable\Fields\LabelFile field.
Right click and select “Properties”. Change the “Visible” to “Yes”, save and
synchronize.
4. Import Model file using the AXUtil tool
5. Restart AX AOS and Client
6. Load provided language license code into AX license information
7. Restart AX AOS and Client
8. Verify the “FO” language functionality
Developable Languages
ID Code Description
1003 af Afrikaans
1004 sq Albanian
1005 ar Arabic
1006 ar-sa Arabic(Saudi Arabia)
1007 ar-iq Arabic(Iraq)
1008 ar-eg Arabic(Egypt)
1009 ar-ly Arabic(Libya)
1010 ar-dz Arabic(Algeria)
1011 ar-ma Arabic(Morocco)
1012 ar-tn Arabic(Tunisia)
1013 ar-om Arabic(Oman)
1014 ar-ye Arabic(Yemen)
1015 ar-sy Arabic(Syria)
1016 ar-jo Arabic(Jordan)
1017 ar-lb Arabic(Lebanon)
1018 ar-kw Arabic(Kuwait)
1019 ar-ae Arabic(U.A.E.)
1020 ar-bh Arabic(Bahrain)
1021 ar-qa Arabic(Qatar)
1022 eu Basque
1023 bg Bulgarian
1024 be Belarusian
1025 ca Catalan
1026 zh-hant Chinese(Traditional)
1027 zh-hans Chinese(Simplified)
1028 zh-hk Chinese(Hong Kong S.A.R)
1029 zh-sg Chinese(Singapore)
1030 hr Croatian
1031 cs Czech
1032 da Danish
1033 nl Dutch
1034 nl-be Dutch(Belgian)
1035 en English
1036 en-us English(United States)
1037 en-gb English(United Kingdom)
1038 en-au English(Australian)
1039 en-ca English(Canadian)
1040 en-nz English(New Zealand)
1041 en-ie English(Ireland)
1042 en-za English(South Africa)
1043 en-jm English(Jamaica)
1044 en-029 KJ:our own extension,
standard is en
1045 en-bz English(Belize)
1046 en-tt English(Trinidad & Tobago)
1047 en-in English(India)
1048 en-my English(Malaysia)
1049 en-sg English(Singapore)
1050 et Estonian
1051 fo Faroese
1052 fa Farsi
1053 fi Finnish
1054 fr French
1055 fr-be French(Belgian)
1056 fr-ca French(Canadian)
1057 fr-ch French(Swiss)
1058 fr-lu French(Luxembourg)
1059 de German
1060 de-ch German(Swiss)
1061 de-at German(Austrian)
1062 de-lu German(Luxembourg)
1063 de-li German(Liechtenstein)
1064 el Greek
1065 he Hebrew
1066 hi Hindi
1067 hu Hungarian
1068 is Icelandic
1069 id Indonesian
1070 it Italian
1071 it-ch Italian(Swiss)
1072 ja Japanese
1073 ko Korean
1074 lv Latvian
1075 lt Lithuanian
1076 mk Macedonian
1077 ms Malay
1078 mt Maltese
1079 nb-no Norwegian(Bokmal)
1080 nn-no Norwegian(Nynorsk)
1081 pl Polish
1082 pt-br Portuguese(Brazil)
1083 pt Portuguese
1084 ro Romanian
1085 ru Russian
1086 sr Serbian(Cyrillic)
1087 sr-la Serbian(Latin) KJ: our own
envention, was sr
1088 sk Slovak
1089 sl Slovenian
1090 es-tr Spanish(Spain - Traditional
Sort)
1091 es-mx Spanish(Mexican)
1092 es Spanish(Spain - Modern Sort)
1093 es-gt Spanish(Guatemala)
1094 es-cr Spanish(Costa Rica)
1095 es-pa Spanish(Panama)
1096 es-do Spanish(Dominican Republic)
1097 es-ve Spanish(Venezuela)
1098 es-co Spanish(Colombia)
1099 es-pe Spanish(Peru)
1100 es-ar Spanish(Argentina)
1101 es-ec Spanish(Ecuador)
1102 es-cl Spanish(Chile)
1103 es-uy Spanish(Uruguay)
1104 es-py Spanish(Paraguay)
1105 es-bo Spanish(Bolivia)
1106 es-sv Spanish(El Salvador)
1107 es-hn Spanish(Honduras)
1108 es-ni Spanish(Nicaragua)
1109 es-pr Spanish(Puerto Rico)
1110 sv Swedish
1111 sv-fi Swedish(Finland)
1112 th Thai
1113 tn Tswana
1114 tr Turkish
1115 uk Ukrainian
1116 ur Urdu
1117 vi Vietnamese
1118 xh Xhosa
1119 zu Zulu
Top Related