2012-07-19 25 views
9

Şu anda yalnızca İngilizce olan bir web sitesinin yerelleştirmesi üzerinde çalışıyorum. Bir üçüncü taraf şirket çevirileri yaptı ve çevirilerle bir excel dosyası sağladı. Görünümlerimde kullanabileceğim bir PHP dizisine başarıyla dönüştürdüm. PHP dosyalarımı düzenlemek için Eclipse for Windows kullanıyorum.Eclipse ile PHP'de arapça dizgeyi kullan

Bütün benim dizeleri değişken eklemek için gereken durum dışında gayet iyi, örn:

'%1 is now following %2' 
Arapçada

Ben bu bir benzeri dizeleri ile sağlandı: Ben değiştirilmesi bulmak

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

_ _% 1 ve% 2 ile son derece zordur, çünkü arapça bölüm sol dizeye bir haktır ve %1, %2 soldan sağa veya sağdan sola olarak kabul edilir. emin . Paramın emriyle beklediğim sonuçlara neredeyse hiç sahip değilim, çünkü yazmaya başladığım yere göre% 1 bazen kordonun soluna, bazen sağa gider. Değiştirme dizelerini kopyalayıp yapıştırmak da aynı garip etkilere sahip olabilir.

bunun gibi bir dize ile bitirmek Çoğu zaman:

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

% 1 sağ yerinde olmalı, sol el sahasında% 2. %1 açıkça sağdan dize olarak kabul edilir çünkü% sağda görünür. %2, soldan sağa olarak kabul edilir.

Bundan önce birilerinin bu konu olduğundan eminim. Eclipse'de kolayca yapılabilecek bir yolu var mı? Ya da arapça konular için daha akıllı bir editör kullanıyor musunuz? Ya da belki bir Windows sorunu nedir? Bir çözüm var mı?

GÜNCELLEME

Ben de birden dizeleri içine benim dize bölme çalıştı, ancak bu da parametrelerin sırasını değiştirir:

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

GÜNCELLEME 2

Değişen görünüyor yedek dize işleri daha iyi yapar. Muhtemelen sayıların Arapça dizilerde nasıl ele alındığı ile bağlantılıdır. Bu dize, herhangi bir sorun olmadan Eclipse'de düzenlendi. parametresinin sırası dize PHP tarafından doğru ele alınır, doğrudur: Başka bir çözüm bulunursa

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

, bu iyi bir alternatif olabilir.

+0

Ben de RTL, ve tüm verileri ele benim durumumda İbranice ile programlama olduğum bir veritabanı olduğunu dahilinde çok daha kolay. Ancak. Çoğu IDE'nin bu diller için yerel desteğe sahip olmadığı doğrudur. Bir veritabanındaki verileri neden işlemeye çalışmıyorsunuz? –

+0

Arapça bir konuşmacı olarak birçok yerelleştirme görevi alıyorum. Özellikle bu problemle yüzleşmemiş olmama rağmen, düzenleme yaparken birçok soldan sağa/sağdan sola sorunum vardı. Notepad ++ ile çalışırken başarılı oldum. Bu değişim için herhangi bir kural var mı? Belki de senaryo olabilir. – Adi

+0

@NadavS. Veritabanından kaçınmaya çalışıyorum çünkü gereksiz adımlardan kaçınmak istiyorum. Yeni işlevsellikler uygularken yeni çevirilere ihtiyacım varsa, excel dosyasını yerelleştirme şirketine gönderebilirim. Veritabanımı bir excel dosyasına aktarmam gerekmeyecek, şirkete göndermem gerekecek, daha sonra dosyayı tekrar reimport etmek zorunda kalmayacağım. Aslında Navicat'ta aynı dizeyi düzenlemeyi denedim ve aynı sorunları yaşadım. – Tchoupi

cevap

3

@Adnan, Latince sayıları Arapça metinle karıştırırken sorunların olduğunu fark ettim ve daha sonra onayladı. Bu sonuca göre, çözüm, %1, %2, %3, ... yer tutucuları kullanılarak durdurulmalıdır. Bunun yerine daha açıklayıcı anahtar kelimeler kullanacağım, örneğin {USER}, {ALBUM}, {PHOTO}, ...

Bu PHP dosyasında beklenen sonucu gösterir ve kolayca düzenlenebilir:

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

Arapça bir konuşmacı olarak birçok yerelleştirme görevi alıyorum. Özellikle bu problemle yüzleşmemiş olmama rağmen, düzenleme yaparken birçok soldan sağa/sağdan sola sorunum vardı. Notepad++ ile çalışma başardım.Yani burada

Genellikle ben

  • Seti kodlama UTF-8'e Arapça metni

    1. boş Notepad ++ * düzenlemek istediğinizde böyle yapar (Kodlama -> UTF-8 kodlama)
    2. Dizeleriniz

    Ve h yapıştır -

  • RTL modunu (> Metin yönü RTL Görünümü) etkinleştirme ere senin dize düzenleme ediyorum nasıl gösteren bir ekran görüntüsü var

    enter image description here

    *: Ben zaten varolan bir dosya işler muz gitmek açtığınızda Bazı sebeplerden dolayı,. Yani belki batıl inançlıyım ama bu her zaman benim için çalıştı.

    Güncelleme: dizeleri yanlış görünüyordu çünkü bunu İlk kez şüpheliydim ama sonra bunu:

    print_r(str_split($string)); 
    

    ve onlar doğru sırayla gerçekten olduğunuzu gördük.

  • +0

    RTL modunu kullanmak kesinlikle işleri kolaylaştırır. Ama aslında garip bir sorunla karşılaşıyorum. Aslında ekran görüntüsü ile aynı. % 2'si iyi görünüyor, çünkü RTL’si,% 1’i de '% 1' yazmamalı mı? – Tchoupi

    +0

    @MathieuImbert, evet aynı şey ilk kez başıma geldi. Yanlış görünüyor (ve IDE'ye geri kopyalayana kadar bekle, korkunç olacak) ama aslında iyi. İlk kez bunu yaptım ki, "char" dizgisi olan "char" dizgimi sadece doğru sırada olduğuna inanıyorum. Düzenleme: aslında iyi bir fikir, cevabı güncelleyeceğim. – Adi

    +0

    Belki haklısınız. Mathieu şu anda en iyi fotoğraflarını takip ediyor, 'Mathieu الآن يتتبع En iyi fotoğraflar' olarak tercüme ediliyor mu? Parametreler ters sırada olduğu için bana benziyor. – Tchoupi

    0

    Bu tür bir görev için orijinal Not Defteri'ni tercih ederim.

    1. Not Defteri'ni açın, CTRL + SHIFT
    2. düzenleyiciye arap dize yapıştırın basarak LTR modunda RTL
    3. Tip %1
    4. değiştirme modu olduğunuzdan emin olun.
    5. Tekrar CTRL + SHIFT tuşlarına basarak LTR'ye geri dönün. %2
    6. Tip CTRL + A tüm seçip IDE içine CTRL + C
    7. Yapıştır kopyalayın. 'un garip görünmesi beklenir, ancak beklendiği gibi yürütülür. Not Defteri'ni kullanarak

    Sebep: Daha karmaşık editörü Not Defteri gibi ++, Sublime, Coda (Mac) ve bazı IDE - senin durumunda Eclipse doğru kodlamayı kullanamaz ve Not Defteri basit olduğunu henüz çok dilli görevler için iyi çalışıyor.

    +0

    Tam adımları açıkladığınız için teşekkür ederiz. Adnan'ın çözümü ile aynı sonucu veriyor. Parametreler ters sırada görünüyor. – Tchoupi