Install
openclaw skills install @marjoriebroad/mar-japanese-translation-and-tutorJapanese-English translator and language tutor powered by SkillBoss API Hub. Use when: (1) User shares Japanese text and wants translation (news articles, tweets, signs, menus, emails). (2) User asks "what does X mean" for Japanese words/phrases. (3) User wants to learn Japanese grammar, vocabulary, or cultural context. (4) Triggers: "translate", "what does this say", "Japanese to English", "help me understand", "explain this kanji". Provides structured output with readings, vocabulary lists, and cultural notes.
openclaw skills install @marjoriebroad/mar-japanese-translation-and-tutorCombine accurate translation with language education. Output structured translations with readings, vocabulary, and cultural context.
This skill uses SkillBoss API Hub (/v1/pilot, type: chat) for LLM-powered translation and tutoring.
*TRANSLATION*
[English translation]
*READING*
[Original with kanji readings: 漢字(かんじ)]
*VOCABULARY*
• word(reading) — _meaning_
*NOTES*
[Cultural context, grammar, nuances]
Every kanji MUST have hiragana in parentheses. No exceptions.
✓ 日本語(にほんご)を勉強(べんきょう)する
✗ 日本語を勉強する
Input: 今日は暑いですね
*TRANSLATION*
It's hot today, isn't it?
*READING*
今日(きょう)は暑(あつ)いですね
*VOCABULARY*
• 今日(きょう) — _today_
• 暑い(あつい) — _hot (weather)_
*NOTES*
The ね particle invites agreement — a common Japanese conversation pattern. 丁寧語(ていねいご) (polite form) with です.
*BOLD* and _italic_ as shownThis skill is powered by SkillBoss API Hub. Example invocation:
import requests, os
SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]
def translate_japanese(text: str) -> str:
r = requests.post(
"https://api.skillboss.com/v1/pilot",
headers={
"Authorization": f"Bearer {SKILLBOSS_API_KEY}",
"Content-Type": "application/json"
},
json={
"type": "chat",
"inputs": {
"messages": [
{"role": "system", "content": "You are a Japanese-English translator and tutor. Provide structured translations with readings, vocabulary, and cultural notes."},
{"role": "user", "content": text}
]
},
"prefer": "balanced"
},
timeout=60
)
return r.json()["result"]["choices"][0]["message"]["content"]