Ipython: Le notebook Jupyter devient RTL après la mise à niveau

Créé le 14 janv. 2018  ·  34Commentaires  ·  Source: ipython/ipython

J'ai créé l'environnement python 3.6 dans miniconda. Le bloc-notes Jupyter fonctionne maintenant de droite à gauche .

Il est impossible d'écrire un code comme celui-ci.

Comment puis-je le réparer "

les packages installés sont :
ipykernel 4.7.0 py36_0 conda-forge ipython 6.2.1 py36_1 conda-forge ipython_genutils 0.2.0 py36_0 conda-forge jupyter_client 5.2.1 py36_0 conda-forge jupyter_core 4.4.0 py_0 conda-forge nbconvert 5.3.1 py_1 conda-forge nbformat 4.4.0 py36_0 conda-forge notebook 5.2.2 py36_1 conda-forge

métadonnées du bloc-notes :
{ "celltoolbar": "Edit Metadata", "kernelspec": { "name": "python3", "display_name": "Python 3", "language": "python" }, "language_info": { "name": "python", "version": "3.6.4", "mimetype": "text/x-python", "codemirror_mode": { "name": "ipython", "version": 3 }, "pygments_lexer": "ipython3", "nbconvert_exporter": "python", "file_extension": ".py" } }

Commentaire le plus utile

Appuyez sur Ctrl-Maj-F pour afficher la palette de commandes. Recherchez « rtl » et sélectionnez « toggle rtl layout ». Il devrait basculer.

Si la première langue sélectionnée dans votre navigateur est l'arabe ou l'hébreu, il sélectionne actuellement RTL par défaut. CCing @samarsultan au cas où cela aurait besoin d'être affiné.

Tous les 34 commentaires

Appuyez sur Ctrl-Maj-F pour afficher la palette de commandes. Recherchez « rtl » et sélectionnez « toggle rtl layout ». Il devrait basculer.

Si la première langue sélectionnée dans votre navigateur est l'arabe ou l'hébreu, il sélectionne actuellement RTL par défaut. CCing @samarsultan au cas où cela aurait besoin d'être affiné.

Merci @takluyver , mais cela ne fonctionne que pour la session en cours. Tout nouveau bloc-notes démarrera avec l'option RTL à nouveau activée. De plus, la page de l'arborescence (http://localhost:8888/tree) est également en RTL...

Existe-t-il un indicateur global pour désactiver complètement l'option RTL ?

EDIT : OK, j'ai changé la langue par défaut du navigateur (Chrome) de l'hébreu à l'anglais, et maintenant tout fonctionne.

Pour autant que je sache, actuellement le seul moyen de le changer de façon permanente est de changer la langue par défaut du navigateur. S'il y a suffisamment d'utilisateurs avec des paramètres régionaux arabes/hébreu qui ont toujours la disposition LTR, nous devrions probablement la rendre configurable séparément, peut-être en rendant la bascule existante permanente.

@takluyver hé, mon navigateur Chrome est réglé sur l'anglais, mais j'ai toujours des problèmes avec la mise en page RTL.
Existe-t-il une autre solution possible ?

Ouvrez la console Javascript de votre navigateur et vérifiez navigator.language - c'est ce que notre code examine pour décider du RTL.

@takluyver ok super ça me montre "il-IL"
donc je dois le changer ? comment?

Cela devrait être quelque part dans les paramètres du navigateur. S'il existe une liste de langues, elle utilise probablement la première de la liste.

Je l'ai changé, maintenant l'anglais est la première langue dans les paramètres. mais toujours navigator.languages ​​affiche "he-IL". :(
Avez-vous une idée de quoi faire?

As-tu fermé le navigateur et l'as-tu rouvert ? Peut-être que les paramètres de langue ne l'affectent que lors du prochain démarrage. Si ce n'est pas ça, aucune idée...

Vous pouvez essayer chrome://settings puis aller dans Paramètres avancés, cliquer sur languges puis supprimer l'arabe languge comme ceci
untitled

@ibraheemkhazbak Déjà essayé, toujours des problèmes :(

J'ai le même problème, le jupyter s'ouvre toujours avec la bascule rtl et je dois l'annuler à chaque fois.
la langue par défaut de mon navigateur est l'anglais, quelqu'un a-t-il une idée de ce que je peux essayer de résoudre ?

Quelle version du package notebook avez-vous et que vous donne navigator.language dans la console Javascript de votre navigateur ?

J'ai récemment rencontré le même problème moi-même. Enfin, la solution consistait à désinstaller Chrome (avec iObit Uninstaller - je n'ai pas essayé de désinstaller Windows classique), à ​​redémarrer l'ordinateur (pour la bonne chance), puis à réinstaller Chrome. Fonctionne parfaitement.

@takluyver Mon navigator.language est l'hébreu bien que ma langue par défaut soit l'anglais.
Je comprends maintenant que le problème vient du navigateur et non de Jupyter, je vais donc le résoudre en utilisant la méthode Efrat.
Merci pour l'aide

@Effrat
J'ai essayé de cette façon et toujours pas de chance (y compris la réinitialisation).
D'autres recommandations ? n'importe qui?

Pareil ici /:
Existe-t-il un moyen de remplacer dans le bloc-notes ou la ligne de commande ?

Cela a fonctionné pour moi:

  1. supprimé l'hébreu (ou l'arabe) des langues Chrome (comme mentionné précédemment)
  2. fichiers mis en cache par le navigateur supprimés

@takluyver , merci ! Bien que je ne pense pas que ce soit une question d'utilisateurs suffisants. Le reste de l'interface utilisateur du portable est en anglais, donc aucune raison de mise en page RTL quelles que soient les habitudes personnelles.

Pour tous ceux qui utilisent la solution @Effrat et qui ne fonctionnent pas :
Assurez-vous que lorsque vous vous connectez à votre compte Google, ne synchronisez pas les paramètres.
La synchronisation des paramètres fera redevenir jupyter rtl

Cela a fonctionné pour moi:

  1. supprimé l'hébreu (ou l'arabe) des langues Chrome (comme mentionné précédemment)
  2. fichiers mis en cache par le navigateur supprimés

Cela fonctionne pour moi après avoir effacé les données de navigation de Chrome et l'avoir redémarré.

La réponse de @LiranDan a fonctionné pour moi, mais quelqu'un a-t-il trouvé un moyen de synchroniser le compte sans que Jupyter dans Chrome reconnaisse le navigateur.language comme HE ? Lorsque j'ai essayé avec un autre navigateur tel que FireFox, il suffit de rechercher et la langue par défaut est En. Il doit y avoir un moyen de changer la langue par défaut du compte Google (j'ai déjà supprimé l'hébreu des langues du compte Google et toujours pas bon).

EDIT : après avoir joué un peu plus avec les paramètres de langue de mon compte, cela semble être résolu et he-IL n'existe plus dans mon navigateur Chrome.

J'ai réussi à résoudre ce problème pour mon Windows 10 de la manière suivante.

La seule langue dans les langues Chrome était l'anglais.
Cependant, il a continué à montrer le cahier en RTL, peu importe ce que je faisais.
(Vous pouvez voir les langues actuelles dans les outils window.navigator.languages Chrome

Finalement, j'ai ouvert l'écran des langues de Windows 10 et réorganisé les langues.
Plus précisément, j'avais d'abord l'anglais, puis l'hébreu, alors j'ai réorganisé l'hébreu d'abord, puis l'anglais, puis j'ai réorganisé à nouveau.

La fermeture du navigateur et sa réouverture ont finalement fonctionné.

Existe-t-il une intention/un soutien pour modifier le comportement par défaut ?
RTL pour l'anglais est inutile, et même si les menus sont dans une langue RTL, le contenu du cahier sera toujours mutilé s'il est en anglais, ce qui est le cas de 99,9% des cahiers. Donc RTL n'est utile à presque personne.

Je pense qu'il serait bien mieux de passer par défaut à LTR quelle que soit la localisation, et de permettre le basculement.

Je soupçonne depuis longtemps que notre logique de passage à RTL est un peu trop pressée. Mais comme je ne lis aucun langage RTL, je ne compte pas beaucoup mes pensées sur le sujet.

Il est difficile d'échantillonner l'opinion sur un outil de suivi des problèmes, car il sélectionne fortement les personnes qui ont un problème avec le comportement actuel. Mais si quelqu'un qui connaît les langages RTL veut soumettre un PR pour quitter l'interface LTR par défaut, je serais enclin à le fusionner.

@m2-farzan a ouvert plusieurs PR contre le notebook pour améliorer la prise en charge RTL. Ce serait formidable si une autre personne familière avec les langages RTL pouvait jeter un œil et vérifier qu'ils ont du sens :

En tant que personne RTL (hébreu), je peux confirmer qu'avoir une mise en page RTL dans un environnement de développement est très ennuyeux. J'irais encore plus loin et je dirais que ce n'est _jamais_ utile, même pas en tant qu'option par défaut.

Le seul contexte dans lequel RTL est utile est lorsque vous avez des paragraphes complets du langage RTL ou lorsque l'intégralité de l'interface utilisateur est traduite (ce qui ne peut pas se produire dans les environnements de développement).

J'utilise actuellement Jupyter principalement pour analyser du texte hébreu. J'aimerais pouvoir imprimer des exemples de texte alignés à droite ici et là, mais cela n'a rien à voir avec l'ensemble de l'interface utilisateur.

Voici une capture d'écran - il n'y a rien d'utile en hébreu ici, mais vous obtenez le point à la mauvaise fin de la phrase et le chemin est inversé.
image

Encore une fois, aucune information utile en hébreu, les puces In [ ] sont du mauvais côté, et vous obtenez RTL _only_ quand ce n'est pas utile. Si quoi que ce soit, je voudrais que le mot שלום soit aligné à droite, mais rien d'autre.
image

Certains éditeurs déterminent automatiquement la directionnalité d'un paragraphe en fonction des premiers caractères. Il serait peut-être logique de faire quelque chose de similaire pour chaque cellule ?

Le bloc- notes CodeMirror comme bibliothèque d'éditeur de texte. Par conséquent, la fonctionnalité consistant à changer automatiquement la direction de chaque ligne en fonction de son premier caractère devrait être implémentée dans CodeMirror, qui est actuellement une demande de fonctionnalité ouverte (https://github.com/codemirror/CodeMirror/issues/4006).

Veuillez noter que dans la version du bloc-notes Jupyter >= 6.1, vous pouvez utiliser la palette de commandes (Ctrl+Maj+P en chrome) pour changer la direction d'une cellule ou de l'ensemble du bloc-notes. Vous y trouverez deux commandes utiles : toggle current cell ltr/rtl et toggle notebook ltr/rtl . J'ai trouvé que ces commandes étaient juste suffisantes pour les besoins quotidiens.

PS

Donc, si vous connaissez déjà ces commandes mais que vous avez vraiment besoin de changer cet essentiel pour détecter la direction, puis définir dynamiquement la balise de métadonnées direction des cellules. Une autre solution de contournement (non recommandée) consiste à essayer l'extension hacky que j'avais écrite dans le passé ( ici ).

Merci @m2-farzan. Pour être honnête, je suis principalement satisfait du paramètre toggle rtl layout , car je travaille généralement avec Chrome défini sur la locale RTL tout en travaillant sur des ordinateurs portables entièrement LTR. Mais je suis d'accord que changer chaque cellule avec les paramètres que vous avez mentionnés pourrait être utile.

« Toggle rtl layout » résout le problème, mais il s'agit de valeurs par défaut saines : les valeurs par défaut actuelles ne sont jamais correctes.
La façon dont cela est mis en œuvre oblige chaque nouvel utilisateur de jupyter parlant hébreu ou arabe à vivre une expérience terrible jusqu'à ce qu'il trouve ce fil.

Ceci est corrigé à partir de jupyter 6.1.0

Cette page vous a été utile?
0 / 5 - 0 notes