i18n()
國際化權杖查詢。
描述
此方法旨在供基於 DataTables 建構的外掛程式和擴充功能開發人員使用,其中軟體會向最終使用者顯示語言字串。它提供使用 language
組態物件作為語言字串的單一組態點,然後從該物件中查詢值的功能。對於開發人員未提供他們自己的字串的情況,應提供預設值。
i18n()
方法還提供對單數、複數、雙數等形式的基本支援,這些形式在考慮國際化時必須加以考慮。這是透過提供一個包含要使用的形式的鍵以及預設值的物件來完成的。
例如,考慮以下物件
{
_: "%d rows selected",
0: "Click a row to select",
1: "1 row selected"
}
在將 0
作為數值(第三個參數)傳入的情況下,將使用 "點擊列以選取" 字串。對於 1
,將使用 "已選取 1 列" 字串。對於所有其他值,將使用預設的 _
參數的值,並將 %d
替換為數值。對於使用雙數形式的語言,請新增一個 2
參數,依此類推。
應注意的是,國際化(簡稱 i18n)/本地化(簡稱 l10n)很困難。此方法為 DataTables 及其元件中的基本國際化提供了良好的支援,但並非完整支援。完整支援超出 DataTables 函式庫目前範圍,且本身就是一個完整的專案!
類型
函式 i18n( token, def [, numeric ] )
- 描述
查詢 DataTables
language
初始化物件中定義的語言權杖。- 參數
名稱 類型 選用 1 token
否 要從 language 物件中查詢的語言權杖。權杖應以 Javascript 點式物件表示法(作為字串)給定,DataTables 將使用它來查詢結果值。此值遵循與作為字串的
columns.data
相同的規則。2 def
否 如果 DataTables 初始化未指定值,則使用的預設值。對於簡單的情況,這可以是字串,對於複數,則可以是物件。
在複數的情況下,必須定義一個名為
_
的參數 - 這是預設值。對於您希望具有特殊字串的數字(例如英文的單數形式或阿拉伯文的雙數形式),應將該數字定義為參數名稱。如果沒有為要求的數字定義參數,則將使用預設值。字串中的字元
%d
將替換為傳遞給此函式的numeric
參數的值。3 numeric
是 如果處理數值輸出,則應在此參數中給出要顯示的數字。如果不需要數值運算符(例如按鈕標籤文字),則不需要此參數。
- 傳回
產生的國際化字串
範例
簡單字串查詢,不使用已定義的字串(即使用預設值)
var table = new DataTable('#myTable');
// Will show "Copy to clipboard"
alert(table.i18n('buttons.copy', 'Copy to clipboard'));
如上,但使用開發人員定義的值
var table = $('#myTable').DataTable({
language: {
buttons: {
copy: 'Click to copy'
}
}
});
// Will show "Click to copy"
alert(table.i18n('buttons.copy', 'Copy to clipboard'));
不使用開發人員定義選項的複數形式
var table = new DataTable('#myTable');
// Will show "0 rows selected"
alert(
table.i18n(
'select.rows',
{
_: '%d rows selected',
1: '1 row selected'
},
0
)
);
// Will show "1 row selected"
alert(
table.i18n(
'select.rows',
{
_: '%d rows selected',
1: '1 row selected'
},
1
)
);
// Will show "4 rows selected"
alert(
table.i18n(
'select.rows',
{
_: '%d rows selected',
1: '1 row selected'
},
4
)
);
使用開發人員定義選項的複數形式
var table = $('#myTable').DataTable({
language: {
select: {
rows: {
_: '%d rows selected',
0: 'Click a row to select',
1: 'Just one row selected'
}
}
}
});
// Will show "Click a row to select"
alert(
table.i18n(
'select.rows',
{
_: '%d rows selected',
1: '1 row selected'
},
0
)
);
// Will show "Just one row selected"
alert(
table.i18n(
'select.rows',
{
_: '%d rows selected',
1: '1 row selected'
},
1
)
);
// Will show "4 rows selected"
alert(
table.i18n(
'select.rows',
{
_: '%d rows selected',
1: '1 row selected'
},
4
)
);
相關
下列選項直接相關,在您的應用程式開發中也可能很有用。