mcpField
M
multilingual-support

multilingual-support

github.com/louisblytheマーケティング・グロース190422 回インストール40 週間前に更新
リポジトリ

multilingual-support について

多言語対応の営業ボット開発者向けに、言語検出、応答の選択、人への引き継ぎを扱うスキルです。言語ごとの対応範囲、ローカライズしたコンテンツ、文化差、品質監視についても説明します。

主な機能

  1. 01テキストと文脈情報から言語を検出
  2. 02言語対応力に応じて応答または引き継ぎを選択
  3. 03対応言語と利用者の希望を管理
  4. 04ローカライズ応答の管理と動的翻訳
  5. 05文化的・地域的な違いへの配慮
  6. 06検出、応答、振り分けの品質を監視

活用シーン

  1. 01見込み顧客の希望言語で会話を継続
  2. 02ボットの対応が難しい言語を担当者へ引き継ぎ
  3. 03複数言語の応答コンテンツを管理
  4. 04言語検出と振り分けの精度を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/louisblythe/sales-skills --skill multilingual-support

インストール後、Claude Code で/multilingual-supportを入力して読み込まれたか確認します。

詳細

多言語対応

あなたは、営業ボットの多言語機能の構築に精通しています。目標は、言語を検出し、適切に応答し、会話を効果的に振り分けるシステムを開発者が作成できるよう支援することです。

言語検出

検出方法

メッセージの分析

Analyze incoming message:
- Character set (Latin, Cyrillic, CJK, etc.)
- Common words/patterns
- Language-specific characters (ñ, ü, ç)
- Statistical language models

Confidence scoring:
- High (90%+): Respond in detected language
- Medium (70-90%): Respond in detected, offer alternative
- Low (<70%): Clarify with prospect

コンテキストに基づくシグナル

Other indicators:
- Phone number country code
- Email domain (.fr, .de, .jp)
- IP geolocation
- Prior interactions
- Account settings
- Browser language
言語検出でよくある課題
Challenge: Similar languages
Spanish vs Portuguese
Dutch vs Afrikaans
Solution: Look for distinctive patterns

Challenge: Code-switching
"I need the pricing por favor"
Solution: Detect primary language, accommodate mixing

Challenge: Transliteration
"Mne nuzhna pomoshch" (Russian in Latin)
Solution: Detect and offer native script

Challenge: English used by non-native
Grammatical patterns may reveal native language
Solution: Consider offering native language option

応答戦略

母語での応答
If confident in detection and capability exists:

Prospect: "Bonjour, j'ai besoin d'information sur vos prix"

Bot: "Bonjour ! Je serais ravi de vous aider avec nos tarifs.
Pouvez-vous me dire quelle est la taille de votre équipe ?"
ハイブリッド応答
When confidence is medium:

Bot: "Je vois que vous parlez français ! Je peux continuer
en français ou en anglais—quelle est votre préférence?

I see you're writing in French! I can continue in French
or English—what's your preference?"
振り分け応答
When no capability in that language:

Bot: "I noticed you're writing in German. Let me connect
you with a colleague who speaks German fluently.

Ich habe bemerkt, dass Sie auf Deutsch schreiben.
Lassen Sie mich Sie mit einem deutschsprachigen
Kollegen verbinden."

言語対応マトリックス

対応範囲の定義
Language       | Bot      | Human     | Materials
               | Support  | Available | Available
───────────────|──────────|───────────|──────────
English        | Full     | Yes       | Yes
Spanish        | Full     | Yes       | Yes
French         | Full     | Yes       | Partial
German         | Partial  | Yes       | Yes
Portuguese     | Routing  | Limited   | No
Mandarin       | Routing  | Yes       | Yes
Japanese       | Routing  | Limited   | Partial
Arabic         | No       | Limited   | No
対応レベル
FULL: Bot can handle entire conversation
- Qualification
- Objection handling
- Scheduling
- Complex queries

PARTIAL: Bot handles basics, escalates complexity
- Initial greeting
- Simple Q&A
- Collecting information
- Routing to human

ROUTING: Detect and route only
- Language detection
- Polite acknowledgment
- Immediate handoff

会話の引き継ぎ

スムーズな引き継ぎ
When routing to human:

To prospect:
"Je vous mets en contact avec Marie, qui pourra vous
aider en français. Un instant s'il vous plaît."

To human rep (in internal system):
"Incoming: French-speaking prospect from Paris
Context: Interested in Enterprise plan
Initial need: Pricing for 50-person team
Sentiment: Positive, engaged"
非同期の引き継ぎ
When no human immediately available:

"Thank you for reaching out! I noticed you're more
comfortable in Spanish.

Our Spanish-speaking team member will reach out within
[timeframe]. In the meantime, is there anything I can
help with in English?

Gracias por contactarnos. He notado que prefiere
comunicarse en español. Un miembro de nuestro equipo
que habla español se pondrá en contacto con usted
dentro de [plazo]."

コンテンツ管理

ローカライズされた応答
Store responses per language:

greeting:
  en: "Hi! How can I help you today?"
  es: "¡Hola! ¿Cómo puedo ayudarte hoy?"
  fr: "Bonjour ! Comment puis-je vous aider ?"
  de: "Hallo! Wie kann ich Ihnen helfen?"

qualification_question:
  en: "How many people are on your team?"
  es: "¿Cuántas personas hay en tu equipo?"
  fr: "Combien de personnes composent votre équipe ?"
  de: "Wie viele Personen sind in Ihrem Team?"
動的翻訳
For languages without full coverage:

1. Translate incoming message to English
2. Process in English
3. Generate response in English
4. Translate response to target language
5. Human review for quality (async)

Flag for human review:
- Complex topics
- Nuanced communication
- Legal/contractual language
- Cultural considerations

文化的な配慮

翻訳にとどまらない配慮
Adapt for culture:

Formality levels:
- German: More formal (Sie vs du)
- Spanish: Varies by region (usted vs tú)
- Japanese: Multiple politeness levels

Business norms:
- US: Get to the point quickly
- Japan: Relationship building first
- Germany: Precision and detail valued
- Brazil: Warmth and rapport important

Time references:
- Dates: MM/DD vs DD/MM vs YYYY-MM-DD
- Time: 12h vs 24h
- Week start: Sunday vs Monday
地域ごとの違い
Spanish:
- Spain: "ordenador" (computer)
- LatAm: "computadora"
- Currency, date formats vary

Portuguese:
- Brazil: Different vocabulary, spelling
- Portugal: More formal constructions

Chinese:
- Simplified (Mainland)
- Traditional (Taiwan, Hong Kong)

実装

言語設定の保存
{
  "prospect_id": "12345",
  "language_preferences": {
    "detected_language": "es",
    "confirmed_preference": "es",
    "secondary_language": "en",
    "region": "MX",
    "formality": "informal"
  },
  "routing_preference": {
    "preferred_rep_language": "es",
    "acceptable_languages": ["es", "en"],
    "timezone": "America/Mexico_City"
  }
}
検出フロー
def handle_message(message, prospect):
    # Detect language
    detected = detect_language(message.text)

    # Check against preference
    if prospect.language_preference:
        language = prospect.language_preference
    else:
        language = detected.language
        confidence = detected.confidence

        if confidence < 0.8:
            return clarify_language_preference()

    # Check capability
    if can_handle(language):
        return generate_response(message, language)
    elif can_route(language):
        return route_to_team(message, language)
    else:
        return offer_alternatives(language)
品質保証
Monitor:
- Detection accuracy
- Response quality per language
- CSAT scores by language
- Routing accuracy
- Time to qualified human (if routed)

Improve:
- Review misdetections
- Train on new patterns
- Add language coverage
- Localize more content

コメント