我可以在javascript中调用t()而不是I18n.t()吗?

时间:2016-04-25 07:32:07

标签: javascript function module internationalization

我正在使用i18n-js将区域设置加载到我的js应用中。当我在视图中使用翻译功能时,我希望能够只说t('Hello')而不是I18n.t('Hello')。我怎样才能让这样的别名起作用?

import I18n from 'i18n';

const Hello = () => {
  return (
    <div>{I18n.t("hello", {name: "John"})}</div>
  )
}

1 个答案:

答案 0 :(得分:0)

可以t功能分配给window

window.t = I18n.t;

然后你可以使用t('Hello')。但是,作为@ Thilo mentioned,这可能会导致一些并发症。

更好的选择是编写一个小包装器:

function t(key){
    return I18n.t(key);
}

@ suggested最佳选项deceze就是这一行:

var t = I18n.t.bind(I18n);

单行,无论调用的范围如何,都应该有效。