Manipular a corda árabe em PHP com o Eclipse

Atualmente, estou trabalhando na localização de um site, que foi o primeiro em inglês. Uma empresa terceirizada fez as traduções e nos forneceu um arquivo excel com as traduções. O que eu converti com sucesso em uma matriz PHP que posso usar nas minhas visualizações. Estou usando o Eclipse para Windows para editar meus arquivos PHP.

Tudo está bem, exceto que eu preciso adicionar variables ​​nas minhas strings, ex:

'%1 is now following %2' 

Em árabe, me forneceram cordas como essa:

 '_______الآن يتتبع _______' 

Acho que replace _ _ com% 1 e% 2 é incrivelmente difícil porque a parte árabe é uma corda direita a esquerda, e %1 , %2 serão considerados de esquerda para a direita ou de direita para a esquerda e Não tenho certeza . Eu quase não tenho os resultados que espero com a ordem do meu param, porque% 1 às vezes vai para a esquerda da string, às vezes à direita, dependendo de onde eu começar a digitar. Copiar-colar as cordas de substituição também pode ter os mesmos efeitos estranhos.

A maioria das vezes acabo com uma string como essa:

 %2الآن يتتبع %1 

O% 1 deve estar no lado direito, o% 2 no lado esquerdo do site. O %1 é obviamente considerado string à direita para a esquerda porque o% aparece à direita. O %2 é considerado de esquerda para a direita.

Tenho certeza de alguém como esse problema antes. Existe alguma maneira de fazer isso facilmente no Eclipse? Ou usando um editor mais inteligente para problemas árabes? Ou talvez seja uma questão do Windows? Existe uma solução alternativa?

ATUALIZAR

Eu também tentei dividir minha string em várias seqüências de caracteres, mas isso também altera a ordem dos parâmetros:

 '%1' . 'الآن تتبع' . '%2' 

UPDATE 2

Parece que a mudança da cadeia de substituição torna as coisas melhores. Provavelmente está ligado à forma como os números são tratados em cordas árabes. Esta string foi editada no Eclipse sem nenhum problema. A ordem do parâmetro está correta, a string é tratada corretamente pelo PHP:

 '{var2} الآن يتتبع {var1}' 

Se nenhuma outra solução for encontrada, esta poderia ser uma boa alternativa.

Sendo um falante árabe, tenho muitas tarefas de localização. Embora eu não tenha enfrentado esse problema em particular, mas eu tive muitos problemas de esquerda para direita / direita para a esquerda durante a edição. Tive sucesso trabalhando com o Notepad ++ .

Então, aqui é o que eu costumo fazer quando eu quero editar o texto em árabe

  1. Abrir vazio Notepad ++ *
  2. Defina a codificação para UTF-8 (Codificação -> Codificação em UTF-8)
  3. Ativar o modo RTL (Ver -> Direção do Texto RTL)
  4. Cole suas cordas

E aqui está uma captura de canvas mostrando como eu estou editando sua string

insira a descrição da imagem aqui

*: por algum motivo, sempre que abro um arquivo já existente, as coisas vão bananas. Então, talvez eu seja supersticioso, mas isso sempre funcionou para mim.

Atualização: primeira vez que fiz isso, fiquei cético porque as cordas pareciam erradas, mas depois fiz isso:

 print_r(str_split($string)); 

e eu vi que eles estão realmente na ordem correta.

@Adnan me ajudou a perceber e depois confirmou que há problemas ao misturar números latinos com texto árabe.

Com base nessa conclusão, a solução é simplesmente parar de usar %1 , %2 , %3 , … como espaços reservados. Estarei usando mais palavras-chave descritivas, por exemplo {USER} , {ALBUM} , {PHOTO} , …

Isso mostra o resultado esperado no arquivo PHP e é facilmente editável:

 'ar' => '{USER} الآن يتابع {ALBUM}' 

Eu preferiria o bloco de notas original para esse tipo de tarefa.

  1. Abra o bloco de notas, verifique se você está no modo LTR
  2. Tipo %1
  3. Altere o modo para RTL pressionando CTRL + SHIFT
  4. Cole o fio árabe no editor.
  5. Volte a LTR pressionando CTRL + SHIFT novamente.
  6. Tipo %2
  7. Selecione tudo com CTRL + A e copie com CTRL + C
  8. Cole no IDE. Deve parecer estranho, mas executar como esperado.

Razão para usar o Notepad: editor mais complexo, como Notepad ++, Sublime, Coda (Mac) e alguns IDEs – no seu caso, o Eclipse não pode usar a codificação correta e o Notepad é simples, mas funciona bem para tarefas multilanguais.

Intereting Posts