Se o WPML não deixar você escolher os diretórios para cada idioma (por exemplo, http://exemplo.com/es/ para Espanhol), é porque tentou acessar essa URL e recebeu um erro.

Aqui está a configuração necessária para os diretórios por idioma funcionarem:

  1. Habilite a reescrita de URL (vamos mostrar como em um minuto).

Como você pode ver, não há necessidade de criar diretórios físicos no servidor. O recurso de idiomas em diretórios é viabilizado através da reescrita do URL.

Como o WPML determina se pode habilitar idiomas nos diretórios

O WPML tenta acessar uma chamada teste que verifica se os diretórios por idioma irão funcionar. A chamada é:

yourdomain/LANGUAGE/?____icl_validate_domain=1

Por exemplo, para verificar se o Espanhol está ativado em nosso domínio (wpml.org), poderíamos usar a seguinte chamada:

http://wpml.org/es/?____icl_validate_domain=1

Quando você fizer essa chamada, obterá uma página em branco. Seu conteúdo (que pode ser visto visualizando o código fonte da página) é:

<!--http://wpml.org-->

Isso diz ao WPML que o WordPress permite o acesso a essa estrutura de URL. Se a chamada funcionar, o WPML permitirá o uso de idiomas por diretório. Caso contrário, você receberá algum tipo de mensagem explicando (basicamente) qual o problema.

Se o WPML recebe uma página com erros, ele desabilita essa funcionalidade e exibe a mensagem de erro em vermelho, com possíveis explicações sobre a razão de estar desabilitada.

Importante: O WPML acessa a URL de validação usando uma chamada fopen. Normalmente, é similar ao que os navegadores fazem, mas nem sempre. Assegure-se de que fopen está habilitada em seu servidor. Você pode adicionar o seguinte ao seu arquivo de configuração PHP para garantir que ela não está bloqueada:

SecFilterEngine Off

Verifique se o WordPress está com reescrita de URL ativada

Para habilitar a reescrita de URL, o WordPress cria um arquivo chamado .htaccess no diretório em que está instalado. O WordPress irá criar esse arquivo se você estiver usando qualquer formato de URL diferente do padrão. Esse arquivo deve conter o seguinte:

# BEGIN WordPress

<IfModule mod_rewrite.c>

  RewriteEngine On

  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f

  RewriteCond %{REQUEST_FILENAME} !-d

  RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Caso ele não exista, tente criá-lo. Se existe mas está vazio, copie esses conteúdos e salve.

O que significa conseguir reescrever uma URL?

A reescrita de URL é um mecanismo complexo, muito usado pelo WordPress. Para que funcione, o servidor web (normalmente o Apache) precisa conseguir reescrever as URLs e o WordPress precisa ter permissão para controlar a lógica de reescrita.

No Apache, o módulo mod-rewrite faz a reescrita de URL. É um módulo usual, ativado por padrão. Se você está usando apache e não consegue habilitar os diretórios por idioma, verifique se o mod-rewrite está habilitado em seu site. Se você não sabe como, envie um e-mail à sua empresa de hospedagem. Você pode usar o seguinte modelo:

Olá!

Um plugin WordPress que quero usar necessita que o módulo mod-rewrite esteja ativado. Poderia verificar para mim e dizer se o mod-rewrite está habilitado para o meu site? http://exemplo.com

Assumindo que está habilitado, o WordPress precisa controlar as regras de escrita de URL. Para que isso aconteça, o WordPress precisa ter permissão de escrita no diretório em que está instalado.

Novamente, se está usando Apache, descubra com qual usuário o Apache está rodando e dê permissão de leitura e escrita ao diretório em que o WordPress está instalado. Você pode fazer isso através de seu programa FTP, linha de comando, ou e-mail:

Oi de novo,

Preciso de outro favor. Instalei o WordPress neste diretório:

DIRETORIO_DE_INSTALACAO_WORDPRESS

Poderia mudar as permissões do diretório (recursivamente), para que o servidor web tenha permissão de leitura e escrita nesse diretório? Preciso que o WordPress consiga escrever em alguns dos arquivos.

Agora verifique novamente.

Se ainda assim não funcionar, fique à vontade para entrar no fórum e relatar o problema.

<!--http://wpml.org-->