2017-09-17 3 views
0

Ich möchte alle Abschrift-Zellen, die ich sowohl in Spanisch und Englisch habe, und haben nur die spanischen angezeigt, wenn das als Hauptsprache des laufenden Systems oder vielleicht eine Sprache ausgewählt ist oben umschalten? Gibt es eine Jupiter-Erweiterung, die dies ermöglichen würde? Oder einige arbeiten herum? Ich habe noch nichts gefunden.Unterstützung mehrerer menschlicher Sprachen in Jupyter-Notebooks

Antwort

0

Sie könnten Ihre eigene Erweiterung schreiben, die auf die Zell-Tags funktioniert. Sie können die englischen Zellen mit #english und Spanisch mit # spanish markieren (unter View > Cell Toolbar > Tags)

Hier ist ein funktionierendes Beispiel für einen Code, der ein Dropdown-Menü für die verschiedenen Sprachen hinzufügt (in diesem Fall nur ich Englisch und Spanisch kodiert, aber es ist erweiterbar) und registriert die Aktionen in der Befehlspalette von Jupyter. Dadurch werden alle Zellen ausgeblendet, die Tags enthalten, die nicht mit Ihrem speziellen Sprach-Tag versehen sind. Daher sollten Sie diese möglicherweise an Ihre Anforderungen anpassen. Oder lassen Sie es ist, als ob es in Ordnung ist :)

define([ 
    'base/js/namespace' 
], function(
    Jupyter 
) { 
    console.log("Language switcher working!"); 
    var show_selected_language = function(language) { 
     language = String.toLowerCase(language); 
     console.log("switching languages..."); 
     // Find all cells with specific language 
     var cells = Jupyter.notebook.get_cells(); 

     cells.forEach(function(cell) { 
      if(cell.hasOwnProperty("metadata") && cell.metadata.hasOwnProperty("tags") && cell.metadata.tags.indexOf(language) !== -1) { 
       cell.element.show('slow'); 
      } else if (cell.hasOwnProperty("metadata") && cell.metadata.hasOwnProperty("tags") && cell.metadata.tags.indexOf(language) === -1) { 
       cell.element.hide('slow'); 
      } 
     }); 
    }; 

    var load_ipython_extension = function() {   
     var lang_dropdown = $("<div/>").addClass("dropdown btn-group").attr("id","lang-menu"); 
     var lang_button = $("<button/>") 
         .addClass("btn btn-default dropdown-toggle") 
         .attr("type","button") 
         .attr("data-toggle","dropdown") 
         .attr("title", "Switch Language") 
         .text("Lang"); 
     var lang_caret = $("<span>").addClass("caret"); 
     lang_button.append(lang_caret); 

     var lang_dropdown_ul = $("<ul/>") 
      .attr("id","lang_menu") 
      .addClass("dropdown-menu"); 

     lang_dropdown.append(lang_button).append(lang_dropdown_ul); 

     $(Jupyter.toolbar.selector).append(lang_dropdown); 

     function add_new_item(menu, display_text, id) { 
      menu.append($("<li/>").attr("id",id) 
               .append($("<a/>") 
                 .attr("href","#") 
                 .text(display_text)) 
                 .click(function() { show_selected_language(display_text);})); 
     } 
     add_new_item(lang_dropdown_ul, "English", "switch-lang-english"); 
     add_new_item(lang_dropdown_ul, "Spanish", "switch-lang-spanish"); 


     var english_action = { 
      help: "Switch language to English", 
      help_index: "a", 
      icon: "fa-language", 
      handler : function() { show_selected_language("english");}, 
     }; 

     var english_prefix = "language_switcher"; 
     var english_action_name = "switch-lang-english"; 

     Jupyter.actions.register(english_action, english_action_name, english_prefix); 

     var spanish_action = { 
      help: "Switch language to Spanish", 
      help_index: "a", 
      icon: "fa-language", 
      handler : function() { show_selected_language("spanish");}, 
     }; 

     var spanish_prefix = "language_switcher"; 
     var spanish_action_name = "switch-lang-spanish"; 


     Jupyter.actions.register(spanish_action, spanish_action_name, spanish_prefix); 
    }; 

    return { 
     load_ipython_extension : load_ipython_extension 
    }; 
}); 

speichern es als eine JavaScript-Datei und dann installieren und aktivieren sie wie jede Frontend-Erweiterung.

Verwandte Themen