Ipython: El portátil Jupyter se convierte en RTL después de la actualización

Creado en 14 ene. 2018  ·  34Comentarios  ·  Fuente: ipython/ipython

Creé el entorno Python 3.6 en miniconda. El cuaderno Jupyter ahora funciona de derecha a izquierda.

Es imposible escribir un código como este.

Cómo puedo arreglarlo "

los paquetes instalados son:
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

metadatos del cuaderno:
{ "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" } }

Comentario más útil

Presione Ctrl-Shift-F para que aparezca la paleta de comandos. Busque 'rtl' y seleccione 'alternar diseño rtl'. Debería cambiar.

Si el primer idioma seleccionado en su navegador es árabe o hebreo, actualmente selecciona RTL por defecto. Envíe un CC a refinarse .

Todos 34 comentarios

Presione Ctrl-Shift-F para que aparezca la paleta de comandos. Busque 'rtl' y seleccione 'alternar diseño rtl'. Debería cambiar.

Si el primer idioma seleccionado en su navegador es árabe o hebreo, actualmente selecciona RTL por defecto. Envíe un CC a refinarse .

Gracias @takluyver , sin embargo, eso solo funciona para la sesión actual. Cualquier portátil nuevo comenzará con la opción RTL activada nuevamente. Además, la página del árbol (http: // localhost: 8888 / tree) también está en RTL ...

¿Hay alguna bandera global para desactivar la opción RTL por completo?

EDITAR: OK, cambié el idioma predeterminado del navegador (Chrome) de hebreo a inglés, y ahora todo funciona.

Hasta donde yo sé, actualmente la única forma de cambiarlo de forma permanente es cambiar el idioma predeterminado del navegador. Si hay suficientes usuarios con configuraciones regionales árabe / hebreo que todavía tienen el diseño LTR, probablemente deberíamos configurarlo por separado, quizás haciendo que el conmutador existente sea permanente.

@takluyver hey, mi navegador Chrome está configurado en inglés, pero sigo teniendo problemas con el diseño RTL.
¿Existe otra posible solución?

Abra la consola Javascript de su navegador y marque navigator.language - eso es lo que nuestro código mira para decidir sobre RTL.

@takluyver ok genial, me muestra "he-IL"
¿Entonces necesito cambiarlo? ¿Cómo?

Debería estar en la configuración del navegador en algún lugar. Si hay una lista de idiomas, probablemente use el primero de la lista.

Lo cambié, ahora el inglés es el primer idioma en la configuración. pero aún así navigator.languages ​​muestran "he-IL". :(
¿Tienes idea de qué hacer?

¿Ha cerrado el navegador y lo ha vuelto a abrir? Tal vez la configuración de idioma solo lo afecte la próxima vez que lo inicie. Si no es así, ni idea ...

Puede probar la configuración de Chrome: // y luego ir a Configuración avanzada, haga clic en idiomas y luego elimine el idioma árabe como este
untitled

@ibraheemkhazbak Ya lo probé, todavía tengo problemas :(

Tengo el mismo problema, el jupyter siempre se abre con el conmutador rtl y necesito cancelarlo cada vez.
el idioma de mi navegador predeterminado es el inglés, ¿alguien tiene alguna idea de qué más puedo intentar para resolverlo?

¿Qué versión del paquete del cuaderno tiene y qué le ofrece navigator.language en la consola Javascript de su navegador?

Recientemente me encontré con el mismo problema. Finalmente, la solución fue desinstalar Chrome (con iObit Uninstaller; no probé una desinstalación normal de Windows), reiniciar la computadora (para buena suerte) y luego reinstalar Chrome. Funciona perfectamente.

@takluyver Mi navigator.language es hebreo, aunque mi idioma predeterminado es el inglés.
Ahora entiendo que el problema proviene del navegador y no del Jupyter, así que lo solucionaré usando Efrat.
gracias por la ayuda

@Effrat
Intenté de esta manera y todavía no tuve suerte (incluido el reinicio).
¿Otras recomendaciones? ¿alguien?

Aquí igual /:
¿Hay alguna forma de anular en el cuaderno o en la línea de comandos?

Eso funcionó para mí:

  1. eliminado el hebreo (o árabe) de los idiomas de Chrome (como se mencionó anteriormente)
  2. archivos borrados en caché del navegador

@takluyver , ¡gracias! Aunque no creo que sea cuestión de suficientes usuarios. El resto de la interfaz de usuario del portátil está en inglés, por lo que no hay motivo para el diseño RTL, independientemente de los hábitos personales.

Para cualquiera que use la solución @Effrat y no funciona:
Asegúrese de que cuando inicie sesión en su cuenta de Google, no sincronice la configuración.
Sincronizar la configuración hará que jupyter vuelva a rtl

Eso funcionó para mí:

  1. eliminado el hebreo (o árabe) de los idiomas de Chrome (como se mencionó anteriormente)
  2. archivos borrados en caché del navegador

Me funcionó después de borrar los datos de navegación de Chrome y reiniciarlo.

La respuesta de @LiranDan funcionó para mí, sin embargo, ¿alguien encontró una manera de sincronizar la cuenta sin que Jupyter en Chrome reconozca el navigator.language como HE? Cuando probé con un navegador diferente, como FireFox, funciona simplemente buscar y el idioma predeterminado es En. Debe haber una forma de cambiar el idioma predeterminado de la cuenta de Google (ya eliminé el hebreo de los idiomas de la cuenta de Google y todavía no es bueno).

EDITAR: después de jugar un poco más con la configuración de idioma en mi cuenta, parece estar resuelto y he-IL ya no existe en mi navegador Chrome.

Logré resolver esto para mi Windows 10 de la siguiente manera.

El único idioma en los idiomas de Chrome era el inglés.
Sin embargo, seguía mostrando el portátil en RTL sin importar lo que hiciera.
(Puede ver los idiomas actuales en las herramientas de desarrollo de Chrome window.navigator.languages , elige el primero)

Finalmente, abrí la pantalla de idiomas de Windows 10 y reordené los idiomas.
Específicamente, primero aprendí inglés y luego hebreo, así que reordené primero el hebreo y luego el inglés y luego reordené nuevamente.

Cerrar el navegador y volver a abrirlo finalmente funcionó.

¿Existe la intención / apoyo para cambiar el comportamiento predeterminado?
RTL para inglés es inútil, e incluso si los menús están en un idioma RTL, el contenido de la libreta aún se alterará si está en inglés, que es el 99,9% de las libretas. Entonces RTL no es útil para casi nadie.

Creo que sería mucho mejor utilizar LTR de forma predeterminada, independientemente de la localización, y permitir la alternancia.

Durante mucho tiempo tuve la sospecha de que nuestra lógica para cambiar a RTL es un poco ansiosa. Pero como no leo ningún lenguaje RTL, no cuento mucho mis pensamientos sobre el tema.

Es complicado tomar una muestra de opinión sobre un rastreador de problemas, porque selecciona fuertemente a las personas que tienen un problema con el comportamiento actual. Pero si alguien que está familiarizado con los lenguajes RTL quiere enviar un PR para dejar la interfaz LTR por defecto, me inclinaría a fusionarlo.

@ m2-farzan ha abierto varias relaciones públicas contra el portátil para mejorar el soporte RTL. Sería genial si otra persona familiarizada con los lenguajes RTL pudiera echar un vistazo y comprobar que tienen sentido:

Como persona RTL (hebreo), puedo confirmar que tener un diseño RTL en un entorno de desarrollo es muy molesto. Yo iría aún más lejos y diría que _nunca_ es útil, ni siquiera como una opción no predeterminada.

El único contexto en el que RTL es útil es cuando tiene párrafos completos del lenguaje RTL, o cuando se traduce toda la interfaz de usuario (lo que no puede suceder en entornos de desarrollo).

Actualmente estoy usando Jupyter principalmente para analizar texto hebreo. Me encantaría poder imprimir ejemplos de texto alineados a la derecha aquí y allá, pero esto no tiene nada que ver con toda la interfaz de usuario.

Aquí hay una captura de pantalla: aquí no hay nada útil en hebreo, pero aparece el punto en el extremo incorrecto de la oración y la ruta se invierte.
image

Nuevamente, no hay información útil en hebreo, las viñetas In [ ] están en el lado equivocado y obtienes RTL _sólo_ cuando no es útil. En todo caso, me gustaría que la palabra שלום esté alineada a la derecha, pero nada más.
image

Algunos editores determinan la direccionalidad de un párrafo automáticamente basándose en los primeros caracteres. ¿Quizás tendría sentido hacer algo similar para cada celda?

El cuaderno CodeMirror como su biblioteca de edición de texto. Por lo tanto, la función de cambiar automáticamente la dirección de cada línea en función de su primer carácter debería implementarse en CodeMirror, que actualmente es una solicitud de función abierta (https://github.com/codemirror/CodeMirror/issues/4006).

Tenga en cuenta que en la versión del cuaderno Jupyter> = 6.1 puede usar la paleta de comandos (Ctrl + Shift + P en cromo) para cambiar la dirección de una celda o de todo el cuaderno. Allí puede encontrar dos comandos útiles: toggle current cell ltr/rtl y toggle notebook ltr/rtl . He descubierto que esos comandos son suficientes para los propósitos diarios.

PD

Entonces, si ya conoce esos comandos pero realmente necesita cambiar automáticamente la dirección de cada celda, se puede desarrollar una extensión que use algo como esta esencia para detectar la dirección y luego establecer dinámicamente la etiqueta de metadatos direction de las celdas. Otra solución alternativa (no recomendada) es probar la extensión hacky que escribí en el pasado ( aquí ).

Gracias @ m2-farzan. Para ser honesto, estoy mayormente satisfecho con la configuración toggle rtl layout , ya que normalmente trabajo con Chrome configurado en la configuración regional RTL mientras trabajo en portátiles totalmente LTR. Pero estoy de acuerdo en que cambiar cada celda con la configuración que mencionaste podría ser útil.

'Toggle rtl layout' resuelve el problema, pero se trata de valores predeterminados cuerdos: los valores predeterminados actuales nunca son correctos.
La forma en que esto se implementa obliga a cada nuevo usuario de jupyter que hable hebreo o árabe a tener una experiencia terrible hasta que encuentren este hilo.

Esto está arreglado a partir de jupyter 6.1.0

¿Fue útil esta página
0 / 5 - 0 calificaciones