2012-06-20 17 views
5

En iyi hangisi, i18n kaynak anahtarlarını bileşen ile düzenler?i18n kaynak anahtarlarını düzenlemenin en iyi yolu hangisidir?

FILE_TAB_TITLE: 'Files' 
FILE_FIELD_TITLE: 'File' 
GROUP_TAB_TITLE: 'Group' 
GROUP_FIELD_TITLE: 'Group' 
SAVE_MENU_ITEM: 'Save' 
SAVE_AS_MENU_ITEM: 'Save as...' 
SAVE_BUTTON:  'Save' 

Ya da ne anlama gelir?

FILE: 'File' 
FILES: 'Files' 
GROUP: 'Group' 
SAVE: 'Save' 
SAVE_AS: 'Save as...' 

cevap

2

Bu bir kuraldan ziyade bir sözleşmedir, bu yüzden cevap "daha mantıklı görünüyorsa" olabilir.

benim i18n kaynak anahtarlarını oluşturmak için başlatılan ettik ve şu kuralı kabul ettik: Dot hiyerarşik gösterimi ayrılmış #

  • ile başlayan, "title bölümünde" ile

    1. Başlığı
    2. Daha kolay erişim için alfabetik
    3. Tuşlar

    Örnek:

    #File access 
    file.field.title = File 
    file.field.subtitle = Click here 
    file.tab.title = Files 
    
    #User 
    user.name = First and last name 
    user.password = Password 
    user.username = Username 
    
  • 2

    İngilizce sözcük öbeklerinin büyük harfli sürümlerini kullanıyorum. (JavaScript) Örneğin:

    SAVE: "Save", 
    LOAD: "Load", 
    PLEASE_SELECT_ITEM: "Please select an item.", 
    PRESS_NEXT_TO_PROCEED: "Please press the Next button to proceed." 
    

    Bu arada, geliştirici aslında ne anlama geldiğini anlamak için bir belirteci içeriğini aramak zorunda değildir.

    'un farklı bölümlerde görülebilmesi için farklı yerlerde görüntülenen öğeler için yedek girişlerim yok (örneğin, bir menüde "Kaydet" gibi bir menüde vb. Gibi görünen). Ayrıca, başlık/altyazı, komut istemi ve hata mesajı belirteçleri farklı dosyalarda düzenlenmiştir.

    1

    Ben, bir hiyerarşi içinde benim yardımcıları, yolları ya da haml dosyalarında gibi

    ui: 
        choose: choose... 
        save: save 
        cancel: cancel 
        preview: preview 
    
    season: 
        summer: summer 
        autumn: autumn 
        winter: winter 
        spring: spring 
    
    people: !!pl 
        0: no people 
        1: one person 
        n: "%1 people" 
    
    is_are_people: !!pl 
        0: are no people 
        1: is one person 
        n: "are %1 people" 
    

    ve sonra işlevi tarafından mayın düzenlemek benim 'Kaydet' düğmesini Unicode::capitalize(t.ui.save) başvurabilirsiniz (çoğunlukla Sinatra kullanın) ve "There #{t.is_are_people some_people.count}." başlığımda, vb.

    İlgili konular