2010-06-28 25 views
5

Veritabanında saklanan verilerin yerelleştirilmesi için en iyi uygulamalarla ilgili tavsiye almak istiyorum. Tüm statik metinlerin dosyalar kullanılarak yerelleştirildiği bir web uygulaması üzerinde çalışıyorum. Yöneticinin, veritabanında saklanan ve bu değerleri yerelleştirmesi gereken UI'yi kullanarak yapılandırabileceği çeşitli seçeneklere sahibiz.Dinamik verilerin lokalizasyonu

Birkaç olası fikirle karşılaştık. Bu çözümler hakkında düşünceleriniz nelerdir? Tamamen daha iyi bir seçenek mi yoksa standart bir en iyi uygulama mı?

Başına Saha Uzmanlaşmış Yerelleştirme

Bu best practices for multilanguage database design için önerilen çözümdür. Her yerelleştirilmiş alan için ayrı bir tablo oluşturacağız. Örneğin, color_id, color_name ve color_description sütunlu tablo colors vardı varsayalım, biz olmayan lokalize verileri ile bir color_translations tablo color_id, locale, color_name ve color_description alanları ile bir color tabloya patlak olabilir. Bununla birlikte, müşterilerimiz çeviri işlemini yapmak için genellikle yerelleştirme dosyalarını üçüncü tarafa gönderirler.

Tek Masa Yerelleştirme

Diğer bir seçenek veritabanı yerelleştirme tüm temsil edecek bir tek tablo oluşturmak olacaktır:

CREATE TABLE localized_text 
(
    key   VARCHAR(256) NOT NULL, 
    locale  CHAR(5) NOT NULL, 
    value  VARCHAR(256), 
    PRIMARY KEY (key, locale) 
); 

Bu off-site yerelleştirme için ihracat kolay olurdu ama ekler bir dolaylılık seviyesi.

+0

Bu "birkaç seçeneğin" yalnızca DB'deki kodlar olarak depolanmadığından ve uygulama sunumu düzeyinde çevrilmemesinin bir nedeni var mı? Her neyse, seçenek çok daha temiz olduğunu düşünüyorum, çünkü birçok fark için birçok farklı çeviriye sahip dev bir masa. modeller hızla cehennemi dönüştürebilir –

+1

Veritabanındaki kodları depolamak için ana itirazın, kullanıcının daha sonra bunu kurmak için iki farklı yere gitmesi gerektiğidir. Yerelleştirme dosyalarını çeviri için gönderen, ancak daha küçük müşteriler için ideal olmayan büyük müşterilerimiz için sorun değil. Daha büyük şirketler bile UI'den anahtarları çeviri için dosyaya kopyalamak zorunda kalacaklardı. Olası bir çözüm, yerelleştirme dosyalarını gerektiği gibi değiştirmek için kullanıcı arayüzünü güncellemek olabilir. Bunun hakkında herhangi bir fikri var mı? – Ross

+1

# 1 numaralı seçeneği yapın ve müşterilerinizin özel içeriği uygulama dışında çevirmek için kullanması için basit bir içe/dışa aktarma aracı uygulayın. –

cevap

1

Her yerelleştirilmiş alan için ayrı bir tablo oluştururduk. Örneğin,

sizin colors tablo sadece statik metindir varsayarsak .... biz color_id, color_name ve color_description sütunlu tablo renklerini vardı varsayalım, bariz seçim buna bir sütun eklemek için, belki de adlandırılmış locale ve önem verdiğiniz her yer için satır ekleyin. Ardından, istediğiniz tek açıklamayı üretmek için müşterinin bulunduğu yere katılın.

Bunun çalışması için, yerel açıklamaların çoktan çoğa ilişkisi içerdiğinden, statik açıklamaları yerelden bağımsız verilerden ayırmanız gerekir. Bir durma noktası olarak, İngilizce açıklamaları ana tabloda bırakıp, tüm referansları geçtikten sonra bırakabilirsiniz.

İlgili konular