@ ember- intl/ vite
装入 v2 应用程序中的翻译 ember-intl
快速启动
1. 安装 @ember-intl/vite 作为发展依赖.页:1
pnpm add -D @ember-intl/vite
1. V2应用(英语:Embroider + Vite)需要这个包.
2.V2加通如果其测试应用与加通(不推荐)生活在同一个包中,就需要.
2. 在 vite.config.{mjs,mts},添加 loadTranslations 转到插件列表.
+ import { loadTranslations } from '@ember-intl/vite';
import { classicEmberSupport, ember, extensions } from '@embroider/vite';
import { babel } from '@rollup/plugin-babel';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [
classicEmberSupport(),
ember(),
babel({
babelHelpers: 'runtime',
extensions,
}),
+ loadTranslations(),
],
});
3. 在 tsconfig.json,添加 @ember-intl/vite/virtual 改为 compilerOptions.types。 。 。 .
{
"compilerOptions": {
"types": [
"ember-source/types",
"@embroider/core/virtual",
"@glint/ember-tsc/types",
- "vite/client"
+ "vite/client",
+ "@ember-intl/vite/virtual"
]
}
}
4. 导入所需翻译,然后拨打 addTranslations 把他们交给 intl 服务.
/* app/routes/application.ts */
import Route from '@ember/routing/route';
import { type Registry as Services, service } from '@ember/service';
+ import translationsForDeDe from 'virtual:ember-intl/translations/de-de';
+ import translationsForEnUs from 'virtual:ember-intl/translations/en-us';
export default class ApplicationRoute extends Route {
@service declare intl: Services['intl'];
beforeModel(): void {
this.setupIntl();
}
private setupIntl(): void {
+ this.intl.addTranslations('de-de', translationsForDeDe);
+ this.intl.addTranslations('en-us', translationsForEnUs);
+
this.intl.setLocale(['en-us']);
}
}
您也可在翻译和单位测试中提供翻译.
/* tests/helpers/index.ts */
import {
setupApplicationTest as upstreamSetupApplicationTest,
setupRenderingTest as upstreamSetupRenderingTest,
setupTest as upstreamSetupTest,
type SetupTestOptions,
} from 'ember-qunit';
+ import translationsForDeDe from 'virtual:ember-intl/translations/de-de';
+ import translationsForEnUs from 'virtual:ember-intl/translations/en-us';
function setupRenderingTest(hooks: NestedHooks, options?: SetupTestOptions) {
upstreamSetupRenderingTest(hooks, options);
// Additional setup for rendering tests can be done here.
+ hooks.beforeEach(function () {
+ const intl = this.owner.lookup('service:intl');
+
+ intl.addTranslations('de-de', translationsForDeDe);
+ intl.addTranslations('en-us', translationsForEnUs);
+ });
}
export { setupApplicationTest, setupRenderingTest, setupTest };
可选 : 创建配置文件。 。 。 .
兼容性
ember-intlv9.0.0 或以上 (中文(简体) )- 节点.js v22 或以上
捐款
见 捐款 详细指南.
许可证
本项目根据以下规定获得许可证: MIT 许可证。 。 。 .