@@ -12,7 +12,8 @@ import {
1212 notebooks ,
1313 NotebookController ,
1414 CancellationTokenSource ,
15- Disposable
15+ Disposable ,
16+ l10n
1617} from 'vscode' ;
1718import { IExtensionSyncActivationService } from '../../platform/activation/types' ;
1819import { IDisposableRegistry } from '../../platform/common/types' ;
@@ -127,8 +128,10 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
127128 // Always try to ensure kernel is selected (this will reuse existing controllers)
128129 // Don't await - let it happen in background so notebook opens quickly
129130 void this . ensureKernelSelected ( notebook ) . catch ( ( error ) => {
130- logger . error ( `Failed to auto-select Deepnote kernel for ${ getDisplayPath ( notebook . uri ) } : ${ error } ` ) ;
131- void window . showErrorMessage ( `Failed to load Deepnote kernel: ${ error } ` ) ;
131+ logger . error ( `Failed to auto-select Deepnote kernel for ${ getDisplayPath ( notebook . uri ) } ` , error ) ;
132+ void window . showErrorMessage (
133+ l10n . t ( 'Failed to load Deepnote kernel. Please check the output for details.' )
134+ ) ;
132135 } ) ;
133136 }
134137
@@ -240,7 +243,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
240243 logger . info ( `Init notebook cancelled for project ${ projectId } ` ) ;
241244 return ;
242245 }
243- logger . error ( ` Error running init notebook: ${ error } ` ) ;
246+ logger . error ( ' Error running init notebook' , error ) ;
244247 // Continue anyway - don't block user if init fails
245248 } finally {
246249 // Always clean up the CTS and event listeners
@@ -253,7 +256,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
253256 return window . withProgress (
254257 {
255258 location : ProgressLocation . Notification ,
256- title : 'Loading Deepnote Kernel' ,
259+ title : l10n . t ( 'Loading Deepnote Kernel' ) ,
257260 cancellable : true
258261 } ,
259262 async ( progress , progressToken ) => {
@@ -277,7 +280,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
277280 notebook . uri
278281 ) } `
279282 ) ;
280- progress . report ( { message : 'Reusing existing kernel...' } ) ;
283+ progress . report ( { message : l10n . t ( 'Reusing existing kernel...' ) } ) ;
281284
282285 // Ensure server is registered with the provider (it might have been unregistered on close)
283286 if ( connectionMetadata . serverInfo ) {
@@ -317,7 +320,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
317320
318321 // No existing controller, so create a new one
319322 logger . info ( `Creating new Deepnote kernel for ${ getDisplayPath ( notebook . uri ) } ` ) ;
320- progress . report ( { message : 'Setting up Deepnote kernel...' } ) ;
323+ progress . report ( { message : l10n . t ( 'Setting up Deepnote kernel...' ) } ) ;
321324
322325 // Check if Python extension is installed
323326 if ( ! this . pythonExtensionChecker . isPythonExtensionInstalled ) {
@@ -327,7 +330,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
327330 }
328331
329332 // Get active Python interpreter
330- progress . report ( { message : 'Finding Python interpreter...' } ) ;
333+ progress . report ( { message : l10n . t ( 'Finding Python interpreter...' ) } ) ;
331334 const interpreter = await this . interpreterService . getActiveInterpreter ( notebook . uri ) ;
332335 if ( ! interpreter ) {
333336 logger . warn (
@@ -339,7 +342,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
339342 logger . info ( `Using base interpreter: ${ getDisplayPath ( interpreter . uri ) } ` ) ;
340343
341344 // Ensure deepnote-toolkit is installed in a venv and get the venv interpreter
342- progress . report ( { message : 'Installing Deepnote toolkit...' } ) ;
345+ progress . report ( { message : l10n . t ( 'Installing Deepnote toolkit...' ) } ) ;
343346 const venvInterpreter = await this . toolkitInstaller . ensureInstalled (
344347 interpreter ,
345348 baseFileUri ,
@@ -353,7 +356,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
353356 logger . info ( `Deepnote toolkit venv ready at: ${ getDisplayPath ( venvInterpreter . uri ) } ` ) ;
354357
355358 // Start the Deepnote server using the venv interpreter
356- progress . report ( { message : 'Starting Deepnote server...' } ) ;
359+ progress . report ( { message : l10n . t ( 'Starting Deepnote server...' ) } ) ;
357360 const serverInfo = await this . serverStarter . getOrStartServer (
358361 venvInterpreter ,
359362 baseFileUri ,
@@ -375,7 +378,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
375378 this . notebookServerHandles . set ( notebookKey , serverProviderHandle . handle ) ;
376379
377380 // Connect to the server and get available kernel specs
378- progress . report ( { message : 'Connecting to kernel...' } ) ;
381+ progress . report ( { message : l10n . t ( 'Connecting to kernel...' ) } ) ;
379382 const connectionInfo = createJupyterConnectionInfo (
380383 serverProviderHandle ,
381384 {
@@ -409,10 +412,15 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
409412
410413 if ( ! kernelSpec ) {
411414 logger . warn (
412- `⚠️ Venv kernel spec '${ expectedKernelName } ' not found! Falling back to generic Python kernel.`
415+ l10n . t (
416+ "⚠️ Venv kernel spec '{expectedKernelName}' not found! Falling back to generic Python kernel." ,
417+ { expectedKernelName }
418+ )
413419 ) ;
414420 logger . warn (
415- `This may cause import errors if packages are installed to the venv but kernel uses system Python.`
421+ l10n . t (
422+ 'This may cause import errors if packages are installed to the venv but kernel uses system Python.'
423+ )
416424 ) ;
417425 kernelSpec =
418426 kernelSpecs . find ( ( s ) => s . language === 'python' ) ||
@@ -429,7 +437,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
429437 await disposeAsync ( sessionManager ) ;
430438 }
431439
432- progress . report ( { message : 'Finalizing kernel setup...' } ) ;
440+ progress . report ( { message : l10n . t ( 'Finalizing kernel setup...' ) } ) ;
433441 const newConnectionMetadata = DeepnoteKernelConnectionMetadata . create ( {
434442 interpreter,
435443 kernelSpec,
@@ -467,7 +475,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
467475
468476 if ( project ) {
469477 // Create requirements.txt first (needs to be ready for init notebook)
470- progress . report ( { message : 'Creating requirements.txt...' } ) ;
478+ progress . report ( { message : l10n . t ( 'Creating requirements.txt...' ) } ) ;
471479 await this . requirementsHelper . createRequirementsFile ( project , progressToken ) ;
472480 logger . info ( `Created requirements.txt for project ${ projectId } ` ) ;
473481
@@ -504,7 +512,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
504512 controller . controller . updateNotebookAffinity ( notebook , NotebookControllerAffinity . Preferred ) ;
505513
506514 logger . info ( `Successfully auto-selected Deepnote kernel for ${ getDisplayPath ( notebook . uri ) } ` ) ;
507- progress . report ( { message : 'Kernel ready!' } ) ;
515+ progress . report ( { message : l10n . t ( 'Kernel ready!' ) } ) ;
508516
509517 // Dispose the loading controller once the real one is ready
510518 const loadingController = this . loadingControllers . get ( notebookKey ) ;
@@ -514,7 +522,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
514522 logger . info ( `Disposed loading controller for ${ notebookKey } ` ) ;
515523 }
516524 } catch ( ex ) {
517- logger . error ( ` Failed to auto-select Deepnote kernel: ${ ex } ` ) ;
525+ logger . error ( ' Failed to auto-select Deepnote kernel' , ex ) ;
518526 throw ex ;
519527 }
520528 }
@@ -526,7 +534,7 @@ export class DeepnoteKernelAutoSelector implements IDeepnoteKernelAutoSelector,
526534 const loadingController = notebooks . createNotebookController (
527535 `deepnote-loading-${ notebookKey } ` ,
528536 DEEPNOTE_NOTEBOOK_TYPE ,
529- 'Loading Deepnote Kernel...'
537+ l10n . t ( 'Loading Deepnote Kernel...' )
530538 ) ;
531539
532540 // Set it as the preferred controller immediately
0 commit comments