2017-04-12 96 views
-2

我在getText中遇到了一些問題,因爲在不同的庫中它可能存在具有不同值的相同keyText。將名稱空間動態添加到區域設置文件

我意識到我可以使用命名空間來加載自己的文本,但我找不到與更改每個stringValue的鍵不同的方法。

有些想法?

實施例:

實際語言環境:

libOne /區域/ EN/index.json

{ 
    "libName": "LibOne" 
} 

libTwo /區域/ EN/index.json

{ 
    "libName": "LibTwo" 
} 

要獲取文字:

session.localizer.gettext(session.preferredLocale(), "libName"); 

爲了能有兩個圖書館與我已經意識到我可以使用的命名空間相同的密鑰文本:

libOne /區域/ EN/index.json

{ 
    "libOne:libName": "libOne" 
} 

libTwo /現場/ EN/index.json

{ 
    "libTwo:libName": "libTwo" 
} 

來獲取文本:

session.localizer.gettext(session.preferredLocale(), "libName", "libOne"); 
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo"); 

隨着時間的解決方案我已經命名空間添加到每個鍵的每個LIB,但我認爲應該有一些辦法做到這一點,而無需手動改變所有的按鍵,例如:

{ 
    "libOne": { 
    "libName": "libOne" 
    } 
} 

相反的:

{ 
    "libOne:libName": "libOne" 
} 
+0

這有點含糊。你能指定一個例子還是更好的解釋。 –

回答

0

有一種方法可以使它變得非常簡單,而不是在「:」之前添加名稱空間,可以添加名稱空間來更改文件名。

對於上面的例子:

libOne /區域/ EN/libOne.json

{ 
    "libName": "libOne" 
} 

libTwo /區域/ EN/libTwo.json

{ 
    "libName": "libTwo" 
} 

來獲取文本:

session.localizer.gettext(session.preferredLocale(), "libName", "libOne"); 
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo"); 
相關問題