i18next interpolation
Bài đăng này đã không được cập nhật trong 7 năm
Bài viết được dịch từ nguồn: https://www.i18next.com/interpolation.html
Interpolation
Interpolation là một trong những chức năng được sử dụng nhiều nhất. Nó cho phép bạn tích hợp các giá trị động vào các định nghĩa translator của bạn. Theo mặc định, những nội suy này sẽ bảo vệ bạn khỏi các vấn đề về xss có thể xảy ra. Nếu bạn không thích các chức interpolation suy cung cấp bạn có thể sử dụng i18next-sprintf-postProcessor cho sprintf hỗ trợ nội suy. (https://github.com/i18next/i18next-sprintf-postProcessor)
Basic
Interpolation là một trong những chức năng được sử dụng nhiều nhất.
keys
{
"key": "{{what}} is {{how}}"
}
Sample
i18next.t('key', { what: 'i18next', how: 'great' });
// -> "i18next is great"
Working with data models
Bạn có thể chuyển toàn bộ các mô hình dữ liệu trong các tùy chọn.
keys
{
"key": "i am {{author.name}}"
}
sample
const author = {
name: 'Jan',
github: 'jamuhl'
};
i18next.t('key', { author });
// -> "i am Jan"
Unescape
Theo mặc định các giá trị được thoát để an toàn từ các cuộc tấn công xss có thể. Bạn có thể bật / tắt chế độ escaped.
keys
{
"keyEscaped": "no danger {{myVar}}",
"keyUnescaped": "dangerous {{- myVar}}"
}
sample
i18next.t('keyEscaped', { myVar: '<img />' });
// -> "no danger <img />"
i18next.t('keyUnescaped', { myVar: '<img />' });
// -> "dangerous <img />"
i18next.t('keyEscaped', { myVar: '<img />', interpolation: { escapeValue: false } });
// -> "no danger <img />" (obviously could be dangerous)
Additional options
Prefix / Suffix cho nội suy và các tùy chọn khác có thể được tùy chọn trong init hoặc bằng cách chuyển các tùy chọn bổ sung đến từng chức năng:
sample
i18next.init({
interpolation: { ... }
});
i18next.t('key', {
interpolation: { ... }
});
option | default | description |
---|---|---|
escape | function | thoát chức năng chức function escape(str) { return str; } function escape(str) { return str; } |
escapeValue | true | thoát qua các giá trị để tránh xss injection |
prefix | "{{" | tiền tố để nội suy |
suffix | "}}" | hậu tố để nội suy |
All interpolation options
option | default | description |
---|---|---|
format | noop function | định dạng chức năng cho các chi tiết |
formatSeparator | "," | được sử dụng để định dạng riêng biệt từ giá trị nội suy |
escape | function | thoát chức năng chức function escape(str) { return str; } function escape(str) { return str; } |
escapeValue | true | thoát qua các giá trị để tránh xss injection |
prefix | "{{" | tiền tố để nội suy |
suffix | "}}" | hậu tố để nội suy |
prefixEscaped | undefined | tiền tố thoát cho nội suy (regexSafe) |
suffixEscaped | undefined | hậu tố thoát cho nội suy (regexSafe) |
unescapeSuffix | undefined | hậu tố để chế độ unescaped |
unescapePrefix | "-" | tiền tố để chế độ unescaped |
nestingPrefix | "$t(" | tiền tố nesting |
nestingSuffix | ")" | hậu tố nesting |
nestingPrefixEscaped | undefined | tiền tố nesting escaped |
nestingSuffixEscaped | undefined | hậu tố nesting escaped |
defaultVariables | undefined | các biến toàn cầu để sử dụng trong việc thay thế nội suy |
maxReplaces | 1000 | sau khi có bao nhiêu interpolation chạy để thoát ra trước khi stack orver flow |
Cảm ơn và hi vọng bài viết có ích cho công việc của ban.
All rights reserved