Skip to content

localization files packaged with a doubled .js.js extension #194

Description

@JeyDim

Describe the bug

In BlazorMonaco 3.5.0, all 14 Monaco localization files under
staticwebassets/lib/monaco-editor/min/vs/ are packaged with a doubled
.js.js extension. In 3.4.0 the same files were packaged correctly:

3.4.0 (correct) 3.5.0 (broken)
nls.messages.ru.js nls.messages.ru.js.js
nls.messages.de.js nls.messages.de.js.js
nls.messages.js nls.messages.js.js
… (all locales) … (all 14 files)

nls.messages-loader.js itself is packaged correctly — only the
nls.messages* payload files are affected. The rest of the package
(loader.js, editor bundle, workers) is intact.

To Reproduce

  1. Reference BlazorMonaco 3.5.0 and enable localized UI strings the way
    Monaco's AMD loader expects, e.g.:

    require.config({                                                                                                                                                                                                                                                                                               
        paths: { vs: '_content/BlazorMonaco/lib/monaco-editor/min/vs' },                                                                                                                                                                                                                                           
        'vs/nls': { availableLanguages: { '*': 'ru' } }                                                                                                                                                                                                                                                            
    });                                                                                                                                                                                                                                                                                                            
  2. Load the editor. The NLS loader plugin requests
    _content/BlazorMonaco/lib/monaco-editor/min/vs/nls.messages.ru.js
    404, because the file in the package is named
    nls.messages.ru.js.js.

You can also verify without running anything — just inspect the nupkg:

  $ ls ~/.nuget/packages/blazormonaco/3.5.0/staticwebassets/lib/monaco-editor/min/vs/nls.messages*                                                                                                                                                                                                                  
  nls.messages-loader.js                                                                                                                                                                                                                                                                                            
  nls.messages.cs.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.de.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.es.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.fr.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.it.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.ja.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.js.js                                                                                                                                                                                                                                                                                                
  nls.messages.ko.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.pl.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.pt-br.js.js                                                                                                                                                                                                                                                                                          
  nls.messages.ru.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.tr.js.js                                                                                                                                                                                                                                                                                             
  nls.messages.zh-cn.js.js                                                                                                                                                                                                                                                                                          
  nls.messages.zh-tw.js.js                                                                                                                                                                                                                                                                                          

Expected behavior

Localization files keep their original names
(nls.messages.<locale>.js), as in 3.4.0, so Monaco's NLS loader can
fetch them.

Impact

Any non-English editor UI is broken on 3.5.0 — the locale file request
404s and Monaco falls back to English (or errors, depending on setup).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions