Wikisource:Esplanada/MediaWiki:Common.js
Ao acessar a página Elementos de Arithmetica o Firefox 3.6.6 está reportanto este erro no console de erros:
Erro: td is not defined Arquivo-fonte: http://pt.wikisource.org/w/index.php?title=-&action=raw&smaxage=0&gen=js&useskin=vector&283j Linha: 540
A linha 540 corresponde ao código negritado abaixo, que está definido na função DisplayFooter() do MediaWiki:Common.js
} tr.appendChild(td); //create the 'top' link td = document.createElement('td');
Alguém poderia corrigir? (provavelmente acrescentando um "if (td)" em algum lugar irá resolver...) Helder 01h18min de 1 de Julho de 2010 (UTC)
- Atualizei o código conforme o código da en.wp, e o problema foi corrigido. Giro720 msg 03h20min de 2 de Julho de 2010 (UTC)
Seria bom fazer mais algumas atualizações nos scripts do commons.js:
- A TransformeEnDiscussion foi movida para o monobook.js. A aparência das discussões fica ruim quando estamos nos demais skins (não lembro)? Não seria melhor só adaptar a formatação, mas manter no common.js?
- As funções addOCR, addOCRButton são definidas/mantidas no Wikisource multilingual (oldwikisource:MediaWiki:OCR.js), então em vez de termos uma cópia (que poderá ficar desatualizada - e acho que já está) é melhor usar um importScript, como é feito nos demais Wikisources (francês, inglês, italiano).
- Há vários outros scripts que costumam ser hospedados no wikisource multilingual e que podem ser simplesmente importados (o DisplayFooter é mais um exemplo que atualmente está copiado em vez de importado), e ter suas mensagens traduzidas localmente. Uma boa ideia seria adicionar o que está na seção
/*scripts imported from wikisource.org*/
do en:MediaWiki:Common.js, que inclui em particular o código que falta para fazer os números das páginas aparecerem em páginas como Elementos_de_Arithmetica/Capítulo_1 (isto é, a importacão do oldwikisource:MediaWiki:PageNumbers.js). Os estilos dinâmicos (dynamic layouts) para a exibição das páginas também são uma novidade que é interessante termos aqui.- Aqui está a tradução das mensagens:
/* Tradução das mensagens usadas pelos diversos JavaScripts */
self.ws_messages = {
'optlist':'Opções de exibição',
'hide_page_numbers':'Ocultar links para as paginas',
'show_page_numbers':'Links para as paginas',
'layout':'Estilo',
'author':'Autor',
'translator':'Tradutor',
'editor':'Editor',
'publisher':'Editora',
'place':'Local',
'volume':'Volume',
'school':'Escola',
'book':'Livro',
'collection':'Coleção',
'journal':'Jornal ou revista',
'phdthesis':'Tese, relatório',
'dictionary':'Dicionário',
'progress':'Progresso',
'progress_T':'Pronto',
'progress_V':'A ser validado',
'progress_C':'A ser revisto',
'progress_MS':'Pronto para corresponder e dividir',
'progress_OCR':'Precisa de uma camada de OCR',
'progress_X':'O arquivo-fonte é um excerto de um volume maior, ou uma mistura de várias fontes',
'progress_L':'O arquivo-fonte está incorreto (faltando páginas, com páginas fora de ordem, etc)',
'▲':'Votar ao topo da página',
'corr_list':"Lista de correções realizadas nesta página" ,
'corr_link':"Correções" ,
'corr_one':"Um erro de digitação</a> foi corrigido." ,
'corr_many':" erros de digitação</a> foram corrigidos." ,
'corr_close':"Fechar." ,
'iwtrans':'O texto vem de',
'iwtrans2':'O texto vem de outros subdomínios do Wikisource.',
}
- Há algumas funções comuns (como SetCookie, GetCookie, OptionText e displayOptionText que atualmente estão copiadas no nosso common.js), que podem ser usadas por vários scripts, no oldwikisource:MediaWiki:Base.js. Então pode-se tirar ele do gadget de modernização (no qual já não é necessário), colocar um import no Commons.js (a minha subpágina pode ser apagada também, pois acho que não precisarei dela).
- Está a parecendo este erro desde que o Common.js sofreu as últimas atualizações:
wgWikiEditorEnabledModules is not defined http://pt.wikisource.org/w/index.php?title=-&action=raw&smaxage=0&gen=js&useskin=vector&283t Line 614
- É importante dar crédito aos autores do
/* Correlatos na lateral */
(by wikt:de:User:Melancholie aparentemente), e movê-lo para o monobook.js, já que ainda não parece ser compatível com o vector. - A função getElementsByClassName do nosso commons.js está sobrescrevendo a do wikibits.js (que é uma versão bem melhor, já que usa uma implementação nativa dos browsers quando possível). Sendo assim, é bom removê-la, para que quando os scripts tentem usá-la, tenham a versão mais aprimorada a disposição.
Helder 14h29min de 24 de Setembro de 2010 (UTC)
- PS: Vejo que estávamos pensando a mesma coisa =P. Helder 14h32min de 24 de Setembro de 2010 (UTC)
Respondendo:
- Ok (a fazer). Não vi efeito no vector, por isso movi ao monobook.js. Mas mesmo no monobook não está funcionando agora.
- Estava planejando fazer as importações desses scripts do oldwikisource, mas como eu mudei outros detalhes no common.js, eu estava esperando para ver se o resto continua a funcionar normalmente. Importei essas mensagens na minha subpágina mas nenhuma mágica aconteceu (e tudo permaneceu como estava) =/.
Estou com dificuldades para corrigir o wgWikiEditorEnabledModules. Essa é uma variável que só aparece no modo de edição de páginas. Alguma sugestão?Aparentemente resolvido.- A barra de projetos correlatos aparece normalmente mas passa a ser uma "filha" da barra imediatamente acima (se a barra acima é fechada, fecha-se também a de correlatos).
- getElementsByClassName ok.
Giro720 msg 15h35min de 24 de Setembro de 2010 (UTC)
- A "transformação em páginas de discussão" consiste apenas em formatar os comentários conforme o nível de indentação, e é visível por exemplo nesta página. O estilo atualmente está definido somente no MediaWiki:Monobook.css, então não funcionaria para o vector até que o css fosse movido para o MediaWiki:Common.css (ou que se criasse um análogo no MediaWiki:Vector.css). Como a formatação baseada na indentação é aplicada por padrão somente às páginas de discussão (detectáveis pela classe
ns-talk
), o script que estava no commons.js permite que marquemos páginas específicas do projeto como sendo de discussão (no caso em que elas não estejam em tal domínio - e por isso não tenhamns-talk
por padrão). A classe que o script procura para saber se deve "converter" a página é a "transformeEnPageDeDiscussion" mas no Wikilivros a gente optou por traduzir para "PaginaDeDiscussao". Assim, adicionando {{Página de Discussão}} a página deveria ser formatada como se fosse uma de discussão. Só falta arrumar uma coisa: o script está inserindo "ns-1" mas o css está tentando usar "ns-talk". Se o CSS for alterado funcionará direito (eu fui o culpado indiretamente, pois fui eu quem pediu esta alteração - só não tinha notado que ns-1 estava sendo mudado para ns-talk =/). Helder 16h51min de 24 de Setembro de 2010 (UTC) - Parece que sua edição resolveu o erro no js mesmo.
- Na verdade, nós já temos o jQuery há uns tempos! Mas quase ninguém está usando ainda (o Wikimedia Commons usa). Helder 17h16min de 24 de Setembro de 2010 (UTC)
- O MediaWiki:PageNumbers.js funcionou: Elementos_de_Arithmetica/Capítulo_1 exibe os números de página e aparece um menu lateral para quem quiser ocultá-los. Agora que está lá, achei que o texto exibido ficou meio longo. Talvez fique melhor assim:
- A "transformação em páginas de discussão" consiste apenas em formatar os comentários conforme o nível de indentação, e é visível por exemplo nesta página. O estilo atualmente está definido somente no MediaWiki:Monobook.css, então não funcionaria para o vector até que o css fosse movido para o MediaWiki:Common.css (ou que se criasse um análogo no MediaWiki:Vector.css). Como a formatação baseada na indentação é aplicada por padrão somente às páginas de discussão (detectáveis pela classe
'hide_page_numbers':'Ocultar numeração', 'show_page_numbers':'Ocultar numeração',
- As opções de estilo são visíveis no texto inglês en:The Elizabethan People/Chapter 1 (clique no menu lateral). Falta copiar a seção "self.ws_layouts" do en:MediaWiki:Common.js (e posteriormente adaptarmos conforme nosso gosto ;-) ), para que as opções de estilos dinâmicos fiquem visíveis por aqui também... Helder 17h30min de 24 de Setembro de 2010 (UTC)
- Feito. Se não estou enganado, está pendente apenas a parte dos correlatos. O base.js implementa corretamente o código semelhante para 'opção de exibição'. Mas é uma pena que não possa ser aproveitado diretamente (o código terá que ser "duplicado" e alterado para os correlatos). Eu estava errado; o append do jQuery não iria ajudar (não é trivial colocar divs logo após um determinado div do html). Giro720 msg 21h27min de 24 de Setembro de 2010 (UTC)