projelerinizde Uluslararasılaşma

oy
44

Nasıl Uluslararasılaşma Üzerinde çalıştığınız gerçek projelerde (i18n) uygulamış?

Ben Joel ünlü yazıyı okuduktan sonra ben, yazılım kültürler arası yaparken bir ilgi aldı Mutlak Asgari Her Yazılım Geliştirici Kesinlikle, Olumlu Unicode ve Karakter Kümeleri hakkında bilmeniz gereken (No Excuses!) . Ancak, ben mümkünse ben Unicode dizeleri kullanılan emin yapmak dışında gerçek bir projede bu yararlanmak mümkün henüz. Ama tüm dizeleri Unicode yapma ve sağlama sen ne olduğu ile çalışmak her şeyi kodlayan sadece i18n buzdağının ucu olduğunu anlıyorum.

Bugüne kadar üzerinde çalışmış herşey insanları konuşan ABD İngilizcesi kontrollü bir kümesi tarafından kullanılmak üzere olan ya da i18n sadece biz canlı projeyi itmeden önce üzerinde çalışmak için zaman vardı bir şey değildi. Bu yüzden insanlar daha gerçek dünya projelerinde lokalize yazılım yapmak ilgili tüm ipuçları ya da savaş hikayeleri arıyorum.

Oluştur 04/08/2008 saat 01:08
kaynak kullanıcı
Diğer dillerde...                            


11 cevaplar

oy
48

Uzun zaman oldu, bu nedenle bu kapsamlı değildir.

Karakter Setleri

Unicode harika ama diğer karakter setleri görmezden paçayı olamaz. Windows XP (İngilizce) ayarlanmış varsayılan karakter CP1252 olduğunu. Web'de, (umarım konteyner bunun en işleyeceğini olsa da) bir tarayıcı sizi gönderecek bilmiyorum. Kullandığınız ne olursa olsun uygulama hatalar varken Ve şaşırmayın. onlar makineler arasında taşıdığınızda Karakter setleri dosya adlarına sahip ilginç etkileşimleri olabilir.

dizeleri çevirme

Çevirmenler genellikle kodlayıcılar, değil konuşma vardır. Eğer bir çevirmen bir kaynak dosyası gönderirseniz, onu kıracak. Dizeler (Visual C ++ gibi özellikleri dosyaları Java veya kaynak DLL) dosyaları kaynak ayıklanır edilmelidir. Çevirmenler onları onları kırmak izin vermeyin kırmak zor olan dosyaları ve araçlar verilmelidir.

dizeleri bir üründe nereden geldiğini Çevirmenler bilmiyorum. Bağlamda olmadan bir dize çevirmek zordur. Eğer rehberlik yoksa, çevirinin kalitesi yaşayacaktır.

bağlam konusunda yaparken, birden çok kez aynı dize "foo" ekin yukarı bakın ve aynı kaynağa UI noktasında tüm örneklerini olması daha verimli olacaktır düşünebilir. Bu kötü bir fikir. Kelimeler çok içeriğe duyarlı bazı dillerde olabilir.

dizelerin çevrilmesi masraf. Bir ürünün yeni bir sürümünü yayınlayacak, bu eski sürümleri kurtarmak için mantıklı. Eski kaynak dosyalarından dizeleri kurtarmak için araçlara sahip.

şeritlerinin String birleştirme ve manuel manipülasyon en aza düşürülmesi gerekmektedir. uygulanabildiği yerde biçim işlevlerini kullanın.

Çevirmenler kısayol tuşları değiştirmek mümkün olması gerekmektedir. Ctrl+ Pİngilizce baskı olduğu; Alman kullanımı Ctrl+ D.

Birinin elle herhangi bir zamanda kesme ve yapıştırma dizeleri gerektiren bir çeviri sürecini varsa, sorun için soruyorsunuz.

Tarihler, Times, takvimler, Para Birimi, Sayı Biçimleri, Saat Dilimleri

Bunların hepsi ülkeden ülkeye değişebilir. Virgül ondalık basamak belirtmek için kullanılabilir. Times 24 saatlik gösterimde olabilir. Herkes Gregoryen takvimi kullanır. Sen de kesin olması gerekir. Web sitenizde İngiltere için ABD ve GG / AA / YYYY için AA / GG / YYYY şeklinde tarihleri ​​görüntülemek için özen Eğer kullanıcı bunu yaptık bilmiyorsa, tarihler belirsiz.

Özellikle Para

sınıf kütüphaneleri temin Yerel fonksiyonları size yerel para birimi simgesini verecektir, ama sadece doları cinsinden bir fiyat veren bir değerin önüne bir pound (sterlin) veya Euro sembolü sopa olamaz.

Kullanıcı arayüzleri

Düzen dinamik olmalıdır. kontroller sağdan sola koşmak, böylece; (Arapça İbranice) Sadece çeviri üzerinde uzunluğu iki katına olasılığı dizeleri, tüm UI ters gerekebilir. Asya'da ulaşmadan Ve olmasıdır.

Çeviri için önce test edilmesi

  • sorunları bulmak için kod statik analizini kullanın. Çıplak En azından, IDE içine yerleşik araçlar kaldıraç. (Eclipse kullanıcıları Pencere> Tercihler> Java> derleyicisi> Hatalar / Uyarı gidip olmayan dışlanmışken dizeler için kontrol edebilirsiniz.)
  • Çeviri simüle ederek testi iç. Bir kaynak dosyası ayrıştırmak ve uzunluğunu iki katına ve acayip karakterler ekler sahte çevrilmiş sürümü ile dizeleri değiştirmek zor değildir. Bir yabancı işletim sistemi kullanmak için bir dil konuşmak zorunda değilsiniz. Modern sistemler çevrilmesini dizeleri ve yabancı yerel ayarıyla yabancı bir kullanıcı olarak giriş izin vermelisiniz. Eğer OS konusunda bilgi sahibi iseniz, dilin tek kelime bilmeden ne yaptığını anlayabiliriz.
  • Klavye haritalar ve karakter kümesi referansları çok yararlıdır.
  • Sanallaştırma burada çok faydalı olacaktır.

Teknik olmayan Sorunlar

Bazen kültürel farklılıkların (suç veya anlayışsızlık neden olabilir) karşı duyarlı olmak zorunda. sıklıkla gördüğünüz bir hata, bir web sitesi dili veya coğrafya seçerek görsel işareti olarak bayrakların kullanılmasıdır. Eğer yazılım küresel siyasette tarafını ilan etmek istemiyorsanız, bu kötü bir fikir. yabancı diller ve ülkeler ile ortaya çıkacak benzer sorunları varsayalım - Fransız ve St. George bayrağıyla İngilizce için seçenek sundu Eğer bu birçok İngilizce konuşanlar için karışıklığa neden olabilir, (İngiltere bayrağı beyaz zemin üzerinde kırmızı haç ise) . Simgeler kültürel alaka için incelenmesi gerekir. başparmağını yukarı veya yeşil bir kene ne anlama gelir? bir bölgede kabul edilebilir belirli bir biçimde kullanıcılara hitap ancak başka bir kaba olarak - Dil nispeten nötr olmalıdır.

kaynaklar

C ++ ve Java programcıları kullanışlı yoğun bakım web sitesi bulabilirsiniz: http://www.icu-project.org/

Cevap 04/08/2008 saat 18:58
kaynak kullanıcı

oy
15

Bazı eğlenceli şeyler:

  1. Alman ve Fransız ile iyi çalışıyor, ama şimdi Rusya ve Çin desteklemesi gerekir bir PHP ve MySQL Uygulaması olması. PHP'nin Unicode desteği olduğu gibi, .net en baştan taşımak düşünüyorum - Bence - gerçekten iyi değil. Tabii, utf8_de / kodlamak veya mbstring-fonksiyonları ile etrafında hokkabazlık eğlenceli. Neredeyse eğlenceli sahip olarak Freddy Krüger geceleri sizi ziyaret ...

  2. Bazı diller LOT daha Ayrıntılı diğerlerinden daha olduğunu fark etmek. Alman genellikle LOT daha ayrıntılı İngilizce dışında olduğunu ve çok az alan eğlenceli değildi tahsis çünkü Alman Versiyon Kullanıcı Arayüzü yok eder nasıl gördükten. Bazı ürünler Oblivion "Schw.Tr.d.Le.En.W." ile, yani geçici bir çözüm için yaratıcı yollar bazı ün kazandı varlık unutulmaz :-)

  3. , Woohoo tarih biçimleri ile oynamak! Evet, gün ortasında nereye gittiğini tarih biçimlerini kullanmak dünyada insanlar aslında orada ARE. Bazı kullanıcılar 2 Temmuz olabilirdi ... Ama sonra tekrar, gölet üzerinde siz koymak kullanıcılar hakkında aynı inanabilirler inanabilir sırf sooooo çok eğlenceli, 07/02/2008 demek şimdi ne olduğunu öğrenmek için çalışıyorum orta :-P ay, İngilizce olarak, 2 Temmuz 2 Temmuz'da, merdivenler diğer dillere için geçerli değildir şeye çok daha iyi sesler özellikle çünkü (yani Almanca, sen Juli 2 ama her zaman Zweiter Juli demezdim). Ben ne zaman 2008-02-07 mümkün kullanın. O 7 Şubat demektir ve düzgün sıralar fakat aa / gg vs gg / aa gerçekten zor sorun olabilir açıktır.

  4. Anoter eğlenceli şey, Sayı biçimleri ! 10.000,50 vs 10,000.50 vs 10 000,50 vs 10'000,50 ... Bu çok kültürlü Environent desteklemek zorunda ama güvenilir kullanıcı hangi sayıyı biçimini bilmek herhangi bir şekilde olmaması, şu anda benim en büyük kabusu kullanacak.

  5. Resmi veya resmi olmayan. Bazı dilinde insanlara hitap etmenin iki yolu, resmi bir yoldur ve daha gayri yolu vardır. İngilizce, sadece "You" demek, ama Almanca sen resmi "Sie" ve Fransız Tu / Vous için aynı gayrı "Du" arasında karar vermek zorunda. Genellikle resmi yolu seçmek güvenli bir bahis, ama bu kolayca gözardı edilir.

  6. Takvimler. ABD'de bugün Pazar oysa Avrupa'da, Haftanın ilk günü, Pazartesidir. Takvim Widget'lar güzel. Avrupa kullanıcıya solda ve sağda Cumartesi günü Pazar ile Takvim Gösterilen kadar güzel değil, onların kafasını karıştırır.

Cevap 04/08/2008 saat 01:35
kaynak kullanıcı

oy
8

Ben .NET kullanılan önceki işveren için bir proje üzerinde çalıştık ve kullanılan .Resx biçiminde yerleşik bir oldu. Biz temelde farklı çevirileri tüm .resx dosyasında çeviriler ve sonra birden fazla dosya vardı bir dosya var. Bunun sonucu uygulamanın görünen tüm dizeleri .resx saklanır ve her zaman bir sen destekleyen tüm dilleri güncellemek zorunda değiştirilir sağlamak konusunda çok gayretli olmak zorunda olmasıdır.

Eğer tembel olsun ve çevirileri sorumlu kişilerle bildirmeyen ya da lokalizasyon sistemi üzerinden gitmeden dizeleri katıştırırsanız, denemek ve daha sonra bunu düzeltmek için bir kabus olacaktır. yerelleştirme sonradan akla gelen bir Benzer şekilde, yerine koymak için çok zor olacaktır. Standart bir yerde dıştan saklanan tüm görünür dizeleri yoksa alt satırda, o lokalize edilmesi gerektiğini tüm bulmak çok zor olacaktır.

Bir diğer habere çok sıkı gibi, doğrudan görünür dizeleri bitiştirmek önlemek

String message = "The " + item + " is on sale!";

Bunun yerine, böyle bir şey kullanmalısınız

String message = String.Format("The {0} is on sale!", item);

Farklı diller genellikle farklı kelimeleri sipariş ve bitiştirmek dizeleri doğrudan düzeltmek için yeni bir yapı gerekir, ancak yukarıdaki gibi string değiştirme mekanizmasının bir çeşit kullanılırsa, ne olursa olsun yerelleştirme sizin .Resx dosyasını değiştirmek (veya anlamına Bunun nedeni dosyaları kelimeleri yeniden düzenlemek gerekiyor belirli bir dil için) kullanın.

Cevap 04/08/2008 saat 01:23
kaynak kullanıcı

oy
5

Sadece dinliyordum Scott Hanselman'ın gelen Podcast ve Tay (dört ı sorunu olur ile) o Türk gibi uluslararası, özellikle gerçekten zor şeyler hakkında konuşur bu sabah. Ayrıca, Jeff Atwood bir vardı yazı :

Cevap 04/08/2008 saat 16:04
kaynak kullanıcı

oy
3

Önceki tüm ipuçlarının yanı sıra, sadece özellikle sağdan sola doğru yazılan Latin olmayan diller alfabeler (kore, Arapça) için, diğer dillerde onların eşdeğer kelimeleri değiştirme konusunda o kadar zor olmadığını i18n hatırlamak, böylece bütün UI gibi, uymak zorunda kalacak

  • madde 1
  • madde 2
  • madde 3

olması gerekir

arap metin 1 -

arap metin 2 -

arap metni 3 -

(Ters mermi liste çalışmak görünmüyor: P)

sistem kullanıcı kullanılmakta olan dil değiştirir kez dinamically değişiklikleri uygulamak zorunda kalırsa hangi bir UI kabus olabilir.

Başka bir çok zor bir şey değil, sadece kelime doğruluğundan, farklı dilleri test etmektir, ama Korece gibi diller genellikle karakterleri için büyük yazı türü var çünkü bu daha büyük olan bir düğmeye "KAYDET" metin gibi (dil özgü hatalar yol açabilir düğmesine kendisi bazı dil için).

Cevap 22/09/2008 saat 00:44
kaynak kullanıcı

oy
2

komik şeylerden biri keşfetmek için: italik ve kalın metin makrup CJK (Japonca / Çince / Korece) karakterlerle çalışmaz. Onlar sadece okunamaz hale gelir. (Tamam, gerçekten de daha önce onları okumak olamazdı, ama özellikle kalınlaştırma sadece mürekkep lekelerini oluşturur)

Cevap 14/10/2008 saat 13:39
kaynak kullanıcı

oy
1

Diğer zorluk da kullanıcılardan giriş kabul edilebilir olacaktır. Birçok durumda, bu tür yaygın metin widget'larla şeffaf çalışır Windows, IME olarak işletim sistemi tarafından sağlanan girdi işleme ile hafifletti, ancak bu tesisin olası her ihtiyacı için kullanılabilir olmayacak.

Cevap 27/12/2008 saat 07:48
kaynak kullanıcı

oy
1

Ben böyle bir şey kullanmak önermek 99translations.com Çevirilerinizi korumak için. Aksi takdirde her dilde güncel Çevirilerinizden ne söylemek mümkün olmayacaktır.

Cevap 27/12/2008 saat 05:05
kaynak kullanıcı

oy
1

Ben uluslararası çalışan herkes şimdi Unicode bir alt projedir Ortak Yerel Veri Deposu, aşina olması gerektiğini düşünüyorum:

Ortak Yerel Veri Deposu

para, coğrafi isimler, malzeme ton: Bu millet i18n konularda her türlü standart kaynak kurmaya çalışıyoruz. Bu proje bulunduğunu verilen kendi çekirdek yerel verileri koruyor herhangi bir proje IMHO, oldukça kaçık olduğunu.

Cevap 18/09/2008 saat 20:25
kaynak kullanıcı

oy
0

Bir şey henüz belirtmiştik kimse "birimi 5 gün içinde arive edecek" veya olduğu gibi bazı warying bölümü ile dizeleri olan "Pazartesi şey olur üzerinde." nerede 5 ve pazartesi durumuna bağlı olarak değişecektir. Ikisi olanlar bölünmüş ve bunları bağlamak için iyi bir fikir değildir. tek değişen parçası ve iyi dokümantasyon ile bunların sırasını değiştirmek için preferes bazı dil olacak orada iki farklı parçalarla, onunla uzak alabilirsiniz.

Cevap 07/10/2008 saat 11:56
kaynak kullanıcı

oy
0

Kullandığım Bir web sitesi sahibi "wiki + makine çevirisi" olarak adlandırdığı bir çeviri yöntemi vardır. Bu bir topluluk tabanlı site böylece şirketlerin ihtiyaçlarına açıkça farklı olmasıdır.

http://blog.bookmooch.com/2007/09/23/how-bookmooch-does-its-translations/

Cevap 10/09/2008 saat 16:12
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more