Я использую библиотеку интернационализации в JS (https://github.com/format-message/format-message), которая содержит функцию, которая принимает литерал шаблона и объект. Литералы шаблона не имеют интерполированных переменных JS, но текст должен бытьзаключенные в кавычки, а не в кавычки, например, при переводе множественных вариантов в формате ICU. Есть ли способ проверить литеральные параметры шаблона внешних функций в Bucklescript?
Редактировать: код, который у меня есть в настоящее время, выглядит следующим образом:
[@bs.module] external i18n : (string, Js.Dict.t(string)) => string = "format-message";
let _getDisplayText = (~suffix, ~difference) => {
let differenceStr = string_of_int(difference);
let i18nMapArg = Js.Dict.empty();
Js.Dict.set(i18nMapArg, "difference", differenceStr)
switch (suffix) {
| Character => i18n([%bs.raw {|`{difference, plural, one {# character} other {# characters}}`|}], i18nMapArg)
| None => i18n([%bs.raw {|`{difference, number}`|}], i18nMapArg)
}
};
Неправильная подпись для i18n()
- первый параметр должен быть именно литеральной строкой шаблона, а не простой строкой. Могу ли я убедиться, что первый аргумент переносится в литеральную строку шаблона JSтипобезопасным способом?