【问题标题】:i18Next - NodeJS - How to change translations without reloading serveri18Next - NodeJS - 如何在不重新加载服务器的情况下更改翻译
【发布时间】:2013-06-17 06:50:45
【问题描述】:

我正在使用 NodeJS 的 i18next 包来启用翻译。我将它作为标准使用,每个语言-国家对都有一个 json 文件。

我想建立一个管理页面来编辑翻译,而不必深入研究代码;那么,如何在管理员编辑后“重新加载”json文件,而无需重新启动服务器?

另外,是否可以使用数据库(我正在使用 mongodb)而不是 JSON 文件?在这种情况下会更合适吗?

【问题讨论】:

    标签: node.js mongodb i18next


    【解决方案1】:

    我希望我知道如何在不完全重新初始化 i18next-node 的情况下重新加载 JSON 文件的答案。

    在将翻译存储在数据库中方面,i18next-node 可以连接到 MongoDB(以及 Redis 和 CouchDB):http://i18next.com/node/pages/doc_init.html#backend

    【讨论】:

      【解决方案2】:

      你可以设置

      i18next.sync.resStore = {}
      

      然后调用

      i18next.init(callback)
      

      强制重新加载您的预加载语言。

      【讨论】:

        【解决方案3】:

        最好使用i18n的官方API和reloadResources

        // reload all
        i18next.reloadResources();
        
        // reload languages
        i18next.reloadResources(['de', 'fr']);
        
        // reload namespaces for all languages
        i18next.reloadResources(null, ['ns1', 'ns2']);
        
        // reload namespaces in languages
        i18next.reloadResources(['de', 'fr'], ['ns1', 'ns2']);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-04
          • 2016-08-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多