Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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 如何在nestjs mvc中使用任何i18n包?_Node.js_Nestjs_Nestjs I18n - Fatal编程技术网

Node.js 如何在nestjs mvc中使用任何i18n包?

Node.js 如何在nestjs mvc中使用任何i18n包?,node.js,nestjs,nestjs-i18n,Node.js,Nestjs,Nestjs I18n,我发现了这个包nest-18n,但那个家伙认为nestjs只用于api而不是mvc 所以肯定?lang=en或?lang=de起作用,它会改变语言,但问题是如何在视图中使用它 我的第一个想法是,这是一个开箱即用的\uuu(“要翻译的东西”)。但这是行不通的(\uuuuuu未定义) 由于i18Service.translate方法是异步的,所以不能将其添加到视图中(有pug then但这是一个可怕的想法)。在视图上添加任何异步内容的想法根本没有意义。所以原则上他们制作了一个不能在api之外使用的包

我发现了这个包
nest-18n
,但那个家伙认为nestjs只用于api而不是mvc

所以肯定
?lang=en
?lang=de
起作用,它会改变语言,但问题是如何在视图中使用它

我的第一个想法是,这是一个开箱即用的
\uuu(“要翻译的东西”)
。但这是行不通的(
\uuuuuu未定义)

由于
i18Service.translate
方法是异步的,所以不能将其添加到视图中(有
pug then
但这是一个可怕的想法)。在视图上添加任何异步内容的想法根本没有意义。所以原则上他们制作了一个不能在api之外使用的包

我能做的另一件事就是

class AppController extends BaseController() {
   @Get("/")
   index() { 
      return {
         someTranslation: await this.getTranslation("give me something to translate"),
         // IMAGINE NOW Having 1000 OF TRANSLATION ON INDEX PAGE
      }
   }
}
其中
BaseController
为:

class BaseController() {
    
    constructor(private readonly i18n: I18nService, lang: string) {
    }
    async protected getTranslation(stringToTranslate: string) {
       return await this.i18n(stringToTranslate, {lang});
    }
}

有人知道如何在nestjs mvc中使用i18n吗?

最后我放弃了使用native express i18n。nestjs真的不喜欢回答:)