Autor Tópico: Alguém pode me dar uma mão?  (Lida 649 vezes)

0 Membros e 1 Visitante estão vendo este tópico.

Offline Alenônimo

  • Nível Máximo
  • *
  • Mensagens: 8.545
  • Sexo: Masculino
    • Alenônimo.com.br
Alguém pode me dar uma mão?
« Online: 03 de Outubro de 2007, 04:41:30 »
Alguém poderia me dar uma mão? Eu gostaria de saber se existe algum programa que pode fazer substituições em uma série de arquivos para trocar entidades HTML (´ por exemplo) por acentos reais.

É um pé no saco eu ter que fazer isso manualmente toda vez que precisar atualizar os arquivos de linguagem do SMF do site.

Qualquer coisa serve. Até um programa em linha de comando. Contanto que substitua automaticamente as entidades HTML para acentos e mantenha os arquivos em UTF-8.
“A ciência não explica tudo. A religião não explica nada.”

Offline Tash

  • Nível 32
  • *
  • Mensagens: 2.191
  • Sexo: Masculino
    • http://about.me/alganet
Re: Alguém pode me dar uma mão?
« Resposta #1 Online: 03 de Outubro de 2007, 06:11:04 »
Varre o diretório "/lang", abre todos os arquivos com extensão ".php" e faz a alteração. Acabei de fazer o script e não testei, é apenas uma idéia.. modifique pra extensão com a qual deseja trabalhar e diretório que pretende modificar. A função não trabalha os diretórios recursivamente.

Código: [Selecionar]
<?php

$dirname 
"./lang/";
foreach (
scandir($dirname) as $langfile) {
    if (
substr($langfile, -44) != ".php") continue; // Pula pro próximo caso não seja um arquivo php
    
file_put_contents($dirname.$langfilehtml_entity_decode(file_get_contents($dirname.$langfile), ENT_COMPAT"UTF-8")); // Faz a mágica
}

?>

file_put_contents (um atalho pra fopen, fwrite e fclose) funciona com dados binários, então deve teoricamente ser multibyte-safe.. html_entity_decode trabalha com UTF-8 especificado no terceiro parâmetro.

Offline Alenônimo

  • Nível Máximo
  • *
  • Mensagens: 8.545
  • Sexo: Masculino
    • Alenônimo.com.br
Re: Algu&eacute;m pode me dar uma m&atilde;o?
« Resposta #2 Online: 03 de Outubro de 2007, 06:28:33 »
Deixa pra lá. A tradução brasileira do SMF é horrível. Acabei procurando as diferenças na mão e editando só o que é necessário.

O problema é que isso também não é fácil. Não achei nenhum changelog até agora que me indicasse as linhas que eu precisava alterar.

Por que eles não usam gettext? Aff.
“A ciência não explica tudo. A religião não explica nada.”

Offline Ricardo RCB.

  • Nível 32
  • *
  • Mensagens: 2.226
  • Sexo: Masculino
Re: Algu&eacute;m pode me dar uma m&atilde;o?
« Resposta #3 Online: 03 de Outubro de 2007, 09:17:15 »
Tenho um programa que faz busca em arquivos texto (qualquer terminação, .txt; .php; .py. etc) e substitui o que você quer.

Se servir (o programa é para windows) me avise que quando entrar lá pela meia noite eu envio ele para você.
“The only place where success comes before work is in the dictionary.”

Donald Kendall

Offline Alenônimo

  • Nível Máximo
  • *
  • Mensagens: 8.545
  • Sexo: Masculino
    • Alenônimo.com.br
Re: Algu&eacute;m pode me dar uma m&atilde;o?
« Resposta #4 Online: 03 de Outubro de 2007, 09:35:08 »
Tenho um programa que faz busca em arquivos texto (qualquer terminação, .txt; .php; .py. etc) e substitui o que você quer.

Se servir (o programa é para windows) me avise que quando entrar lá pela meia noite eu envio ele para você.

O problema não é fazer as buscas. O Dreamweaver também faz e faz muito bem. O problema é alterar todas as entidades HTML para seus respectivos acentos, com exceção de &lt; &gt; &amp; &quot;.
“A ciência não explica tudo. A religião não explica nada.”

Offline Alenônimo

  • Nível Máximo
  • *
  • Mensagens: 8.545
  • Sexo: Masculino
    • Alenônimo.com.br
Re: Algu&eacute;m pode me dar uma m&atilde;o?
« Resposta #5 Online: 03 de Outubro de 2007, 09:40:19 »
Aliás, acho que o que eu preciso mesmo é de uma maneira mais eficiente para atualizar os arquivos de linguagem. Como eu faço para saber quais strings eu preciso atualizar em quais arquivos?
“A ciência não explica tudo. A religião não explica nada.”

Offline Ricardo RCB.

  • Nível 32
  • *
  • Mensagens: 2.226
  • Sexo: Masculino
Re: Algu&eacute;m pode me dar uma m&atilde;o?
« Resposta #6 Online: 03 de Outubro de 2007, 21:00:12 »
Ah, entendi a questão. Bom Boa sorte, não posso ajudar nesse caso.
“The only place where success comes before work is in the dictionary.”

Donald Kendall

 

Do NOT follow this link or you will be banned from the site!