0

i18next interpolation

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 &lt;img &#x2F;&gt;"

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

Viblo
Let's register a Viblo Account to get more interesting posts.