国际化
Stream Dock 支持多语言。
清单包含多个可以国际化的字符串。您可以在位于manifest.json
旁边的 JSON en.json
{
"Description": "Test",
"Name": "Test",
"Category": "Test",
"com.mirabox.demo.action1": {
"Name": "Test",
"Tooltip": "Test"
},
"Localization": {
"test": "Test"
}
}
请注意,如果您不提供本地化字符串,则将使用manifest.json
文件中的字符串。Stream Dock 支持以下语言:
简体中文: zh_CN.json
德语: de.json
英语: en.json
法语: fr.json
日语: ja.json
韩语: ko.json
西班牙语: es.json
您还可以在 JSON 文件中提供自己的字符串。
这些文件必须保存在插件的目录中(文件下方)。您将在模板插件中找到一个示例。下面是该文件的一个示例en.json
如何在 Property Inspector 中自动本地化字符串,请参阅 Property Inspector 文档以获取更多信息。
{
"Description": "Test",
"Name": "Test",
"Category": "Test",
"com.mirabox.demo.action1": {
"Name": "Test",
"Tooltip": "Test"
},
"Localization": {
"test": "Test"
}
}
对于普通的 js 模板如果您在插件中需要以国际化形式显示这些字符串,您只需要将Localization中对应的键直接写在您属性检查器的html中并设置$local = true
,SDK会自动翻译
export const useI18nStore = () => {
const language = window.argv[3].application.language;
const localString = {
en: {
test: 'test'
},
zh_CN: {
test: '测试'
}
};
return localString[language] || localString['en'];
};
对于 Vue 模板是使用的 pinia 来实现的国际化,需要在src/hooks/i18n.ts
中定义这些字符串,并在需要使用的地方手动引入useI18nStore
并使用
示例:
<script setup lang="ts">
import { usePropertyStore, useWatchEvent } from '@/hooks/property';
import { useI18nStore } from '@/hooks/i18n';
const i18n = useI18nStore();
const property = usePropertyStore();
useWatchEvent({
didReceiveSettings(data) {},
sendToPropertyInspector(data) {}
});
</script>
<template>
<div>{{ i18n.test }}</div>
</template>