Find all incomplete ML captions

greysgreys Member Posts: 29
edited 2015-04-23 in NAV Three Tier
Hello NAV enthousiasts!

We are in the process of making our solution ready for deployment in other languages than german. Hence the ML-captions throughout the application must be ENU and DEU. I want to check for inconsistencies concerning the MultiLanguage captions throughout the application.

Is there some tooling available to check if all fields have ENU as well as DEU captions? That would save me a lot of time!

Regards,

Greys

Comments

  • mohana_cse06mohana_cse06 Member Posts: 5,504
    Please check Object manager tool. in that we have an option check missing translations
  • lvanvugtlvanvugt Member Posts: 774
    Here find some tips including reference to another translation tool: How-to: Efficiently Translate UI.

    In the olden days when moving to Navision Solutions (i.e. v3.0) a simple command line tool was available which exactly did what you are looking for. Unfortunately this 32 bits exe is not running any longer on Windows since we left XP. I mention this one also in the post I refer to above.

    Follow this link to my blog to see more on posts translations.
    Luc van Vugt, fluxxus.nl
    Never stop learning
    Van Vugt's dynamiXs
    Dutch Dynamics Community
  • KowaKowa Member Posts: 924
    There is also a cmdlet Test-NAVApplicationObjectLanguage which can be used for all current object types (i.e. not Forms, Dataports, Classic Reports)
    https://msdn.microsoft.com/en-us/library/dn762388%28v=nav.80%29.aspx

    If you want to use that, make sure that only the cmdlets supplied with NAV 2015 Cumulative Update 2 or higher are employed, the initial versions had some bugs.
    Kai Kowalewski
  • KSP_NAVKSP_NAV Member Posts: 68
    Also you can use Mergetool (www.mergetool.com) to find the missing translations.
  • wakestarwakestar Member Posts: 207
    I just played around with Test-NAVApplicationObjectLanguage cmdlet.

    It looks like it shows the Object Type, Object ID, LCID and the TranslateLine... which is something like "R123456-Q1102112541-P54215P-A2055"

    And now what? How am I supposed to know where the missing caption actually is in that report?
  • KowaKowa Member Posts: 924
    edited 2016-04-20
    wakestar wrote: »
    And now what? How am I supposed to know where the missing caption actually is in that report?
    No, you add the missing caption(s) to a new text file, mark the object(s) in question in the object designer and import that file as described here via Tools>Translate>Import:
    https://msdn.microsoft.com/en-us/library/dd301161(v=nav.90).aspx

    Kai Kowalewski
  • greatscott001greatscott001 Member Posts: 32
    edited 2017-10-20
    In NAV 2017 Build 17501 (CU8), this does not seem to find missing CaptionML for Fields. It finds missing OptionCaptionML but not CaptionML? Is this a bug? Expected functionality? I thought that in NAV 2016 these were found
  • guidorobbenguidorobben Member Posts: 157
    wakestar wrote: »
    I just played around with Test-NAVApplicationObjectLanguage cmdlet.

    It looks like it shows the Object Type, Object ID, LCID and the TranslateLine... which is something like "R123456-Q1102112541-P54215P-A2055"

    And now what? How am I supposed to know where the missing caption actually is in that report?

    R = Report
    Q = TextConstant
  • Slawek_GuzekSlawek_Guzek Member Posts: 1,690
    edited 2017-10-23
    wakestar wrote: »
    It looks like it shows the Object Type, Object ID, LCID and the TranslateLine... which is something like "R123456-Q1102112541-P54215P-A2055"
    You know that a caption is missing because you have "R123456-Q1102112541-P54215P-A2055"
    but there is no "R123456-Q1102112541-P54215P-A1033" :) (or whatever language ID you are using)

    The NAV translation "tool" was designed for specific process
    1. Export current language (usually EN-US, LangID 1033)
    2. Translate EVERYTING in the text file, replace LangID with new lang id
    3. Import translated language file

    There was no sophistication assumed, finding/translating only missing etc.

    The file structure as you've probably notices is not realy suitable for easy processing in Excel

    I am personally using another trick. I am exporting objects into a text file, loading text definition into Notepad++ and then marking all the lines where CaptionML (or OptionCaptionML) looks like *CaptionML=E*

    That marks for me all the lines where the caption has only one language. Then I can manually update the object text file and import it back

    This is still tedious manual work. But I guess when it comes to translation no matter what tool you use it always ends up at someone manually doing the translation

    Slawek
    Slawek Guzek
    Dynamics NAV, MS SQL Server, Wherescape RED;
    PRINCE2 Practitioner - License GR657010572SG
    GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03
  • guidorobbenguidorobben Member Posts: 157
    This is the powershell script I use tot check for ENU and NLD in a text export.

    Import-Module 'C:\Program Files\Microsoft Dynamics NAV\100\Service\NavAdminTool.ps1'
    Import-Module 'C:\Program Files (x86)\Microsoft Dynamics NAV\100\RoleTailored Client\Microsoft.Dynamics.Nav.Model.Tools.psd1' #-WarningAction SilentlyContinue
    Import-Module 'C:\Program Files (x86)\Microsoft Dynamics NAV\100\RoleTailored Client\Microsoft.Dynamics.Nav.Apps.Tools.psd1' #-WarningAction SilentlyContinue

    $File = 'D:\Merge\forms.txt'

    $Result = Test-NAVApplicationObjectLanguage –Source $File -LanguageId ENU,NLD -PassThru

    write-host '# T=Tabel, N=Page, R=Report, X=XMLPort'
    write-host '# C=Control, Q=Textcontstant, G=Page Action, N=RequestPage, T=Label, F=Field, D=DataItem'
    write-host '# 1033=ENU, 1043=NLD'

    ForEach ($Line in $Result){
    #write-host
    $C = ($Line.TranslateLines) -split ':'
    foreach ($L in $C){
    write-host $L
    }
    }
  • greatscott001greatscott001 Member Posts: 32
    To my 2017/10/20 post, the Test-NAVApplicationObjectLanguage does not return an error when ALL CaptionML are missing. That is, if I add a field to a table and don't specify ANY caption (ENU, ENG, SVE, ENC, etc) then Test-NAVApplicationObjectLanguage does not list this as an error. I think it should.

    Am I missing something?
Sign In or Register to comment.