Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在网站中引入组件的最佳实践?_Node.js_Reactjs_Localization - Fatal编程技术网

Node.js 在网站中引入组件的最佳实践?

Node.js 在网站中引入组件的最佳实践?,node.js,reactjs,localization,Node.js,Reactjs,Localization,我必须维护一个包含大量javascript UI内部组件的网站。为了减少维护和使用经过大量测试的框架所需的代码量,我想将一些组件迁移到React/JSX。到目前为止,这似乎不是一件痛苦的事 但是,这些组件是本地化的。在将组件发送到客户端之前,将在服务器端呈现它们的翻译 为了保持相同的体系结构原则,我的想法是使用Node.js作为中间件,动态地将任何“{…}”替换为其本地化版本,并向客户端提供“呈现的”react组件。 但这更像是一次黑客攻击,我很确定这可能会导致性能问题 是否有一种常见(或最佳)

我必须维护一个包含大量javascript UI内部组件的网站。为了减少维护和使用经过大量测试的框架所需的代码量,我想将一些组件迁移到React/JSX。到目前为止,这似乎不是一件痛苦的事

但是,这些组件是本地化的。在将组件发送到客户端之前,将在服务器端呈现它们的翻译

为了保持相同的体系结构原则,我的想法是使用Node.js作为中间件,动态地将任何“{…}”替换为其本地化版本,并向客户端提供“呈现的”react组件。 但这更像是一次黑客攻击,我很确定这可能会导致性能问题


是否有一种常见(或最佳)的做法来处理这种情况?

常见的最佳做法是将可本地化的字符串包装到React组件中,并随应用程序包提供翻译,这样用户就可以随时切换语言和日期/数字格式

您可能希望查看最流行的组件,以使其开箱即用:

以下是
react-i18next
中的一个示例:

<div>Just simple content</div>
<div>
  Hello <strong title="this is your name">{name}</strong>, you have {count} unread message(s). <Link to="/msgs">Go to messages</Link>.
</div>


<div>{t('simpleContent')}</div>
<Trans i18nKey="userMessagesUnread" count={count}>
  Hello <strong title={t('nameTitle')}>{{name}}</strong>, you have {{count}} unread message(s). <Link to="/msgs">Go to messages</Link>.
</Trans>
只是简单的内容
您好{name},您有{count}封未读邮件。转到消息。
{t('simpleContent')}
你好{strong title={t('namettitle')}>{{name}},您有{{count}}封未读邮件。转到消息。

常见的最佳实践是将可本地化字符串包装到React组件中,并随应用程序包提供翻译,这样用户就可以动态切换语言和日期/数字格式

您可能希望查看最流行的组件,以使其开箱即用:

以下是
react-i18next
中的一个示例:

<div>Just simple content</div>
<div>
  Hello <strong title="this is your name">{name}</strong>, you have {count} unread message(s). <Link to="/msgs">Go to messages</Link>.
</div>


<div>{t('simpleContent')}</div>
<Trans i18nKey="userMessagesUnread" count={count}>
  Hello <strong title={t('nameTitle')}>{{name}}</strong>, you have {{count}} unread message(s). <Link to="/msgs">Go to messages</Link>.
</Trans>
只是简单的内容
您好{name},您有{count}封未读邮件。转到消息。
{t('simpleContent')}
你好{strong title={t('namettitle')}>{{name}},您有{{count}}封未读邮件。转到消息。