Ipython: Notebook Jupyter torna-se RTL após a atualização

Criado em 14 jan. 2018  ·  34Comentários  ·  Fonte: ipython/ipython

Criei o ambiente python 3.6 no miniconda. O notebook Jupyter está funcionando agora da direita para a esquerda.

É impossível escrever um código assim.

Como posso consertar "

os pacotes instalados são:
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

metadados do notebook:
{ "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" } }

Comentários muito úteis

Pressione Ctrl-Shift-F para abrir a paleta de comandos. Pesquise por 'rtl' e selecione 'toggle rtl layout'. Deve mudar.

Se o primeiro idioma selecionado em seu navegador for árabe ou hebraico, ele atualmente seleciona RTL por padrão. CCing @samarsultan caso precise de refinamento.

Todos 34 comentários

Pressione Ctrl-Shift-F para abrir a paleta de comandos. Pesquise por 'rtl' e selecione 'toggle rtl layout'. Deve mudar.

Se o primeiro idioma selecionado em seu navegador for árabe ou hebraico, ele atualmente seleciona RTL por padrão. CCing @samarsultan caso precise de refinamento.

Obrigado @takluyver , entretanto isso funciona apenas para a sessão atual. Qualquer novo notebook começará com a opção RTL novamente. Além disso, a página da árvore (http: // localhost: 8888 / tree) também está em RTL ...

Existe algum sinalizador global para desativar a opção RTL completamente?

EDIT: OK, mudei o idioma padrão do navegador (Chrome) de hebraico para inglês, e agora tudo funciona.

Pelo que eu sei, atualmente a única maneira de alterá-lo permanentemente é alterar o idioma padrão do navegador. Se houver usuários suficientes com localidades árabe / hebraico que ainda possuem layout LTR, provavelmente devemos torná-lo configurável separadamente, talvez tornando a alternância existente permanente.

@takluyver ei, meu navegador Chrome está configurado para inglês, mas ainda estou tendo problemas com o layout RTL.
Existe outra solução possível?

Abra o console Javascript do seu navegador e verifique navigator.language - isso é o que nosso código analisa para decidir sobre RTL.

@takluyver ok ótimo, me mostra "he-IL"
então eu preciso mudar isso? quão?

Deve estar nas configurações do navegador em algum lugar. Se houver uma lista de idiomas, provavelmente será o primeiro da lista.

Eu mudei, agora o inglês é o primeiro idioma nas configurações. mas ainda navigator.languages ​​exibe "he-IL". :(
Você tem alguma ideia do que fazer?

Você fechou o navegador e o abriu novamente? Talvez as configurações de idioma afetem apenas quando você iniciá-lo da próxima vez. Se não for assim, não faço ideia ...

Você pode tentar chrome: // settings e ir para Configurações avançadas, clicar em idiomas e remover o idioma árabe assim
untitled

@ibraheemkhazbak Já tentei, ainda

Estou com o mesmo problema, o jupyter sempre abre com a chave rtl e preciso cancelar todas as vezes.
o idioma padrão do meu navegador é o inglês. Alguém tem uma ideia do que mais posso tentar resolver?

Qual versão do pacote de notebook você tem e o que navigator.language oferece no console Javascript do seu navegador?

Recentemente, encontrei o mesmo problema. Finalmente, a solução foi desinstalar o Chrome (com o iObit Uninstaller - não tentei uma desinstalação normal do Windows), reiniciar o computador (para boa sorte) e reinstalar o Chrome. Funciona perfeitamente.

@takluyver Meu navigator.language é hebraico, embora meu idioma padrão esteja definido como inglês.
Eu entendo agora que o problema vem do navegador e não do Jupyter, então vou consertar usando o método Efrat.
Obrigado pela ajuda

@Effrat
Tentei dessa forma e ainda não tive sorte (incluindo a reinicialização).
Outras recomendações? qualquer um?

Mesmo aqui /:
Existe uma maneira de substituir no bloco de notas ou linha de comando?

Isso funcionou para mim:

  1. removeu o hebraico (ou árabe) dos idiomas do Chrome (como mencionado antes)
  2. arquivos em cache do navegador excluídos

@takluyver , obrigado! Embora eu não ache que seja uma questão de usuários suficientes. O resto da interface do usuário do notebook está em inglês, portanto, não há motivo para o layout RTL, independentemente dos hábitos pessoais.

Para quem usa a solução @Effrat e ela não funciona:
Certifique-se de não sincronizar as configurações ao fazer login em sua conta do Google.
Sincronizar as configurações fará com que o jupyter vá rtl novamente

Isso funcionou para mim:

  1. removeu o hebraico (ou árabe) dos idiomas do Chrome (como mencionado antes)
  2. arquivos em cache do navegador excluídos

Funcionou para mim após limpar os dados de navegação do Chrome e reiniciá-lo.

A resposta de @LiranDan funcionou para mim, entretanto, alguém encontrou uma maneira de sincronizar a conta sem que o Jupyter no Chrome reconhecesse o navigator.language como HE? Quando tentei com um navegador diferente, como o FireFox, ele funcionou, basta localizar e o idioma padrão é En. Deve haver uma maneira de alterar o idioma padrão da conta do Google (eu já removi o hebraico dos idiomas da conta do Google e ainda não funciona).

EDITAR: depois de brincar um pouco mais com as configurações de idioma na minha conta, parece estar resolvido e he-IL não existe mais no meu navegador Chrome.

Consegui resolver isso para meu Windows 10 da seguinte maneira.

O único idioma nos idiomas do Chrome era o inglês.
No entanto, continuava mostrando o notebook em RTL independente do que eu fizesse.
(Você pode ver os idiomas atuais nas ferramentas de desenvolvimento do Chrome window.navigator.languages , ele escolhe o primeiro)

Por fim, abri a tela de idiomas do Windows 10 e reordenei os idiomas.
Especificamente, eu tinha primeiro o inglês e depois o hebraico, então reordenei o hebraico primeiro, depois o inglês e reordenei novamente.

Fechar o navegador e reabri-lo finalmente funcionou.

Existe intenção / apoio para mudar o comportamento padrão?
RTL para inglês é inútil, e mesmo que os menus estejam em uma linguagem RTL, o conteúdo do notebook ainda ficará distorcido se estiver em inglês, o que é 99,9% dos notebooks. Portanto, o RTL não é útil para quase ninguém.

Acredito que seria muito melhor padronizar para LTR, independentemente da localização, e permitir a alternância.

Há muito tempo suspeito que nossa lógica para mudar para RTL é um pouco exagerada. Mas como não leio nenhuma linguagem RTL, não considero muito meus pensamentos sobre o assunto.

É complicado obter uma opinião sobre um rastreador de problemas, porque ele seleciona fortemente pessoas que têm problemas com o comportamento atual. Mas se alguém que está familiarizado com os idiomas RTL deseja enviar um PR para deixar a interface LTR por padrão, eu estaria inclinado a mesclá-lo.

@ m2-farzan abriu vários PRs contra o notebook para melhorar o suporte RTL. Seria ótimo se outra pessoa familiarizada com as linguagens RTL pudesse dar uma olhada e verificar se elas fazem sentido:

Como uma pessoa RTL (hebraico), posso confirmar que ter um layout RTL em um ambiente de desenvolvimento é muito chato. Eu iria ainda mais longe e diria que _nunca_ é útil, nem mesmo como uma opção não padrão.

O único contexto em que a RTL é útil é quando você tem parágrafos completos da linguagem RTL ou quando toda a IU é traduzida (o que não pode acontecer em ambientes de desenvolvimento).

Atualmente, estou usando o Jupyter principalmente para analisar texto em hebraico. Eu adoraria poder imprimir exemplos de texto alinhados à direita aqui e ali, mas isso não tem nada a ver com toda a IU.

Aqui está uma captura de tela - não há nada útil em hebraico aqui, mas você obtém o ponto final no final da frase errado e o caminho é invertido.
image

Novamente, nenhuma informação útil em hebraico, os marcadores In [ ] estão do lado errado e você obtém RTL _somente_ quando não é útil. Se alguma coisa, eu gostaria que a palavra שלום fosse alinhada à direita, mas nada mais.
image

Alguns editores determinam a direcionalidade de um parágrafo automaticamente com base nos primeiros caracteres. Talvez faça sentido fazer algo semelhante para cada célula?

O bloco de notas CodeMirror como sua biblioteca de edição de texto. Portanto, o recurso de alterar automaticamente a direção de cada linha com base em seu primeiro caractere precisaria ser implementado no CodeMirror, que atualmente é uma solicitação de recurso aberta (https://github.com/codemirror/CodeMirror/issues/4006).

Observe que na versão do notebook Jupyter> = 6.1 você pode usar a paleta de comandos (Ctrl + Shift + P no cromo) para alterar a direção de uma célula ou de todo o notebook. Lá você pode encontrar dois comandos úteis: toggle current cell ltr/rtl e toggle notebook ltr/rtl . Descobri que esses comandos são apenas o suficiente para fins diários.

PS

Portanto, se você já conhece esses comandos, mas realmente precisa alterar automaticamente a direção de cada célula, pode ser desenvolvida uma extensão que use algo como esta essência para detectar a direção e, em seguida, definir dinamicamente a tag de metadados direction das células. Outra solução alternativa (não recomendada) é tentar a extensão hacky que escrevi no passado ( aqui ).

Obrigado @ m2-farzan. Para ser honesto, estou muito satisfeito com a configuração toggle rtl layout , já que normalmente trabalho com o cromo definido para o local RTL enquanto trabalho em notebooks totalmente LTR. Mas concordo que alterar cada célula com as configurações que você mencionou pode ser útil.

'Toggle rtl layout' resolve o problema, mas trata-se de padrões lógicos: os padrões atuais nunca estão corretos.
A maneira como isso é implementado força cada novo usuário jupyter de língua hebraica ou árabe a ter uma experiência terrível até encontrar este tópico.

Isso foi corrigido a partir do jupyter 6.1.0

Esta página foi útil?
0 / 5 - 0 avaliações