2017-05-08 107 views
0

我有一個產品的下列YAML文件(數學formulas.yml):本地化YAML文件的內容

Name: Math formulas 
Type: Book 
Description: A book with math formulas 
Price: 40 USD 

的名稱和說明需要本地化爲兩種語言:EN和FR。

本地化YAML文件內容的正確方法是什麼?

我應該有3個文件嗎?一個文件?

我將使用YAML文件將數據插入到我的應用程序數據庫中。

UPDATE

你怎麼看待這種做法(Yaml Parser Example)什麼:

Name: Math formulas 
Type: Book 
Description: 
    - EN: A book with math formulas 
    - FR: Un livre avec des formules mathématiques 
Price: 40 USD 

這是否有道理?

+0

是什麼讓你覺得有一個*正確*的方式?我可以想到幾種可能的方式。 – flyx

+0

我不知道是否有一個標準的方式。這就是爲什麼我問...你會建議什麼? –

回答

0

這裏有一些方法我能想到的:(注:我用谷歌翻譯例如文本。)在最低水平

  1. 分支。我使用本地標籤來識別語言。
Name: [!en Math formulas, !fr formules mathématiques] 
Type: Book 
Description: [!en A book with math formulas, 
       !fr Un livre avec des formules mathématiques] 
Price: 40 USD 
  • 使用一種語言作爲默認情況下,與另一個替換文本(這是例如gettext的做,保證你一回退)。對於可翻譯的值,我使用!t,對於包含替換的文檔,我使用!translations。根據您的數據模型,您可能不需要。
  • --- 
    Name: !t Math formulas 
    Type: Book 
    Description: !t A book with math formulas 
    Price: 40 USD 
    --- !translations 
    fr: 
        Math formulas: formules mathématiques 
        A book with math formulas: Un livre avec des formules mathématiques 
    
  • 分配ID,以可翻譯實體和其他地方定義它們。
  • --- 
    Name: !t 1 
    Type: Book 
    Description: !t 2 
    Price: 40 USD 
    --- !translations 
    en: 
        1: Math formulas 
        2: A book with math formulas 
    fr: 
        1: formules mathématiques 
        2: Un livre avec des formules 
    

    在這2和3,你也可以有,而不必在一個文件中的所有翻譯爲每種語言一個語言文件。爲了便於閱讀,我建議您使用解決方案2(您可以在原始文檔中看到英文文本,而不會與其他翻譯混雜在一起,並且在附加的翻譯文檔中,您直接看到正在翻譯的術語,並且消除了重複翻譯

    +0

    我剛剛在我的問題中增加了另一個選項......它看起來更具可讀性,不是嗎?您認爲如何? –

    +0

    沒有理由擁有序列,您可以使用'EN:'和'FR:'沒有破折號,另外,請在發佈答案後不要改變問題。 – flyx