- English(en)
- Chinese (Simplified)(zh)
- Chinese (Traditional)(zh-TW)
- French(fr)
- Korean(ko)
- Russian(ru)
- Spanish(es)
- Japanese(ja)
- Arabic(ar)
ディレクトリ構造
カスタムノードの下にlocales フォルダを作成します。これは複数のタイプの翻訳ファイルをサポートしています。
your_custom_node/
├── __init__.py
├── your_node.py
└── locales/ # i18n サポートフォルダ
├── en/ # 英語翻訳(基準として推奨)
│ ├── main.json # 一般的な英語翻訳コンテンツ
│ ├── nodeDefs.json # 英語ノード定義翻訳
│ ├── settings.json # オプション:設定インターフェース翻訳
│ └── commands.json # オプション:コマンド翻訳
├── zh/ # 中国語翻訳ファイル
│ ├── nodeDefs.json # 中国語ノード定義翻訳
│ ├── main.json # 一般的な中国語翻訳コンテンツ
│ ├── settings.json # 中国語設定インターフェース翻訳
│ └── commands.json # 中国語コマンド翻訳
├──...
nodeDefs.json - ノード定義翻訳
例として、i18n-demo ノードの Python 定義例を以下に示します。class I18nTextProcessor:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"text": ("STRING", {
"multiline": True,
"default": "Hello World!",
"tooltip": "The original text content to be processed"
}),
"operation": (["uppercase", "lowercase", "reverse", "add_prefix"], {
"default": "uppercase",
"tooltip": "The text processing operation to be executed"
}),
"count": ("INT", {
"default": 1,
"min": 1,
"max": 10,
"step": 1,
"tooltip": "The number of times to repeat the operation"
}),
},
"optional": {
"prefix": ("STRING", {
"default": "[I18N] ",
"multiline": False,
"tooltip": "The prefix to add to the text"
}),
}
}
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("processed_text",)
FUNCTION = "process_text"
CATEGORY = "I18n Demo"
DESCRIPTION = "A simple i18n demo node that demonstrates text processing with internationalization support"
def process_text(self, text, operation, count, prefix=""):
try:
result = text
for _ in range(count):
if operation == "uppercase":
result = result.upper()
elif operation == "lowercase":
result = result.lower()
elif operation == "reverse":
result = result[::-1]
elif operation == "add_prefix":
result = prefix + result
return (result,)
except Exception as e:
print(f"I18nTextProcessor error: {e}")
return (f"Error: {str(e)}",)
{
"I18nTextProcessor": {
"display_name": "I18n テキストプロセッサ",
"description": "国際化サポートを示すテキスト処理機能を持つシンプルな i18n デモノード",
"inputs": {
"text": {
"name": "テキスト入力",
"tooltip": "処理対象の元のテキストコンテンツ"
},
"operation": {
"name": "操作タイプ",
"tooltip": "実行するテキスト処理操作",
"options": {
"uppercase": "大文字化",
"lowercase": "小文字化",
"reverse": "テキスト逆順",
"add_prefix": "プレフィックス追加"
}
},
"count": {
"name": "繰り返し回数",
"tooltip": "操作を繰り返す回数"
},
"prefix": {
"name": "プレフィックステキスト",
"tooltip": "テキストに追加するプレフィックス"
}
},
"outputs": {
"0": {
"name": "処理済みテキスト",
"tooltip": "最終的な処理済みテキスト結果"
}
}
}
}
0、2 番目の出力は 1 となります。
メニュー設定
例として、i18n-demo カスタムノードでは以下の 2 つのメニュー設定を登録しています。app.registerExtension({
name: "I18nDemo",
settings: [
{
id: "I18nDemo.EnableDebugMode",
category: ["I18nDemo","DebugMode"], // This matches the settingsCategories key in main.json
name: "Enable Debug Mode", // Will be overridden by translation
tooltip: "Show debug information in console for i18n demo nodes", // Will be overridden by translation
type: "boolean",
defaultValue: false,
experimental: true,
onChange: (value) => {
console.log("I18n Demo:", value ? "Debug mode enabled" : "Debug mode disabled");
}
},
{
id: "I18nDemo.DefaultTextOperation",
category: ["I18nDemo","DefaultTextOperation"], // This matches the settingsCategories key in main.json
name: "Default Text Operation", // Will be overridden by translation
tooltip: "Default operation for text processor node", // Will be overridden by translation
type: "combo",
options: ["uppercase", "lowercase", "reverse", "add_prefix"],
defaultValue: "uppercase",
experimental: true
}
],
})
main.json ファイルに追加する必要があります。
{
"settingsCategories": {
"I18nDemo": "I18n デモ",
"DebugMode": "デバッグモード",
"DefaultTextOperation": "デフォルトテキスト操作"
}
}
settings.json ファイルで個別に更新することをお勧めします。
{
"I18nDemo_EnableDebugMode": {
"name": "デバッグモードを有効化",
"tooltip": "i18n デモノードのデバッグ情報をコンソールに表示"
},
"I18nDemo_DefaultTextOperation": {
"name": "デフォルトテキスト操作",
"tooltip": "テキストプロセッサノードのデフォルト操作",
"options": {
"uppercase": "大文字",
"lowercase": "小文字",
"reverse": "逆順",
"add_prefix": "プレフィックス追加"
}
}
}
. を _ に置き換える必要があることに注意してください。例えば:
"I18nDemo.EnableDebugMode" -> "I18nDemo_EnableDebugMode"